11 minutes
On Education
Introduction
You know, something i’ve pondered as I’ve entered the workforce is the value of my education. Something i’m slowly coming to agree with is that I actually may seriously regret going to college and achieving my Bachelors in Information Technology, even with the good fortune enough that I got it for <18000$ of my own personal expense. Let me explain why.
Firstly, I would like to ramble a bit about the social aspect of college. I’m not much of a party-goer, I don’t drink, I don’t smoke, I don’t really partake in any behaviors like that and I never have; but currently I think that the biggest benefit of college was my social skills due to my reclusive behavior in my youth. I very distinctly remember a couple months before I started that I would quite literally shake and grit my teeth when I had to interact with others. After four years of college through unintentional conditioning therapy, it’s safe to say that I no longer suffer from any of that and I actually have friends. I exercise extreme gratitude for that and I would actually argue that this is one of the most beneficial positives not only of a life standpoint, but of a career one, even though I question if it was worth the cost.
Onto the main point though and that is that college did ultimately nothing to prepare me for a job. I understand that this is a stereotype, but it’s certainly not an outdated one by any means. I’m excluding all of my pre-requisite courses as I firmly believe that every single one had no value in anything I do day to day (excluding some parts of my upper level maths), i’d also even go so far as to argue that they were simply a waste of time as I hardly ever got the impression that the professor was seriously interested in teaching those low level pre-req courses. With major courses however, the problems were: the material, the teaching methodologies used, and the course structure. Also, for the sake of this blog post, i’m going to avoid the (true) and stereotypical trope of cost, thats a whole different can of worms in and of itself and could technically be in another post.
Educational/Course Material
The material is a very straightforward problem. It’s extremely outdated for most of the classes simply due to beaurocracy. I remember in my Systems Administration class, we spent a large portion of the time studying Solaris using softwares from extremely outdated mirrors that were 5-10 years out of date and when it comes to actual practical practice, we ended up working and studying that what felt like longer than anything else we covered in the course. I can understand that there are many companies running legacy software, but the question becomes: What is the likelihood that I, as a newcoming employee, would find myself in a situation post-graduation where my extremely limited experience with very legacy hardware land me a job over having more recent experience with something else? There were also many instances where we were simply using really outdated software for little to no reason when updated, maintained, and recommended alternatives were freely available and what is by far my largest gripe with the material of these courses were the “labs/hands-on” centric courses.
These labs/hands-on style courses were actually what I had looked forward to most when pursuing my degree and every single time they were a huge letdown. I had the expectation that we would be able to get hands-on with hardware and actually solve a problem, really learn and cement something new, or create something new with it, but boy was I wrong. A prime example was my Advanced Networking course, where students for the first time were granted access to a server room with racks assigned to your group, loaded with a pretty nice server, relatively modern Cisco equipment (switches, firewall, etc). Sounds good right? Well, heres the problem: Our interaction with this equipment was limited in scope. You and your group were assigned a word document with instructions that you had to follow to a tee. You were discouraged from doing anything else, extremely so, and you literally had no room for error because the instructions given to you were in such a manner that there was no problem solving. It was quite literally a set of “copy and paste this command, in this order” type of instructions. Very boring, unrewarding course, that I ultimately took little to nothing away from, and that’s really sad. The other type of labs/hands-on experience we had was shifted outside of the classroom and given to a third-party provider such as Ascend Education where they provide you with some videos, powerpoints, and sandboxes. Each chapter is given a quiz, and the sandboxes also have extremely detailed, copy and paste instructions where you ultimately learn nothing, and much unlike the other example given, you essentially cannot fail the class or have poor performance at all. I question why it was like this, why this was approved, and I don’t think that it did much of anything to benefit me, which is extremely unfortunate.
It’s clear those courses didn’t have to be this way because there was two prime examples of courses that were structured in a way that actually yielded benefit. I’m foregoing a couple of others that were beneficial simply because, at least based on RMP ratings, the professors I had for those courses taught it in a pretty different way from other professors which I did actually find to be very well done; but in an attempt to be critique agnostic, i’m going to continue with just the two that are taught the same with most professors. I’m also going to bar mentioning the capstone course, as the projects we had to pick in that course were self-selected, so the difficulty and learning one engaged was ultimately self-determined.
The first was a course aptly named Cloud Computing. The premise of the course? To learn about, get experience with, and actually perform cloud computing. For the purposes of the class, we primarily used AWS, but we got to explore the Azure alternative at the end of the semester. With this class we were given pretty much an all-access pass to our own AWS sandbox that we could play around in, break stuff, do stuff, and fiddle at will. We were also given assignments sorted into chapter with labs that taught towards the Cloud Certified Practicioner exam. This was amazing for a few reasons:
- The professor enabled us to try things out, play with things, fail, and break things.
- The instructions given for the labs were not exact, copy-paste, we actually had to learn things and refer to notes to accomplish tasks.
- The course material was up to date, using something that is modern, in use today, and has immediate applicable benefit.
The other course was an Intro to Networking course. This was your standard lecture and note course with a couple of labs, but ultimately all of the material here was iron-clad foundational stuff that was important for most people to at least have understanding of. It was clear the material was not extremely dated, there were not unused, dated, we will likely never see this material type of stuff being covered. The instructor also was able to give immediate real world experiences of why you would need to use or know X or Y for multiple fields, be it Administration, Security, or SofDev. As an added bonus, the labs she gave were small, you were more than able to tinker and fail, and each had an immediate use. A primary example was the lab where we got to play around with and modify ethernet cables.
All of this brings me to my second point, and my ultimate point. The methodology in which things were taught.
Teaching Methodology & Course Structure
A lot of my IT knowledge is self-taught and with that comes a couple of things. Obviously, when you are learning anything the immediately extractable obvious value is the material you are learning. For example, If i’m studying how to write scripts in bash, the immediately extractable obvious value is bash itself. A not so immediately obvious value is the process in which you use to learn that material. The problem is that the process in which you use to learn it is often far more valuable than the material itself.
The CS courses at many schools, and the IT courses I took at my school were primarily focused on the material. It’s clear that whatever was done in order to get these courses put in place were planned out as if it was a standard traditional course where you teach explicitly to the material. I find this be flawed with what I conclude to be the direct challenge of any IT professional: to solve problems. If you are a professional problem solver, what you continuously improve is the process of learning, deducing, elimination, and problem solving.
For instance, if we take that Advanced Networking course I had mentioned in the previous section and applied a process-first methodology to the material versus its current material-first methodology, we would end up with a course where the students were allowed to tinker and fail by simply giving them a rough goal to strive for and achieve. The goal has to be provable, for grading purposes obviously, but, at least to me it is immediately obvious that by allowing students to seek out help/solutions and try and solve problems independently with their groups away from a copy-pasted, step-by-step sheet, they would have extracted much more value from the course in such a way that despite material possibly being dated or extermely dated that they still derived massive value from the course.
A bigger problem arises when you combine this archaic material first methodology with course structure. You might ask what I mean by that and it’s actually simple. When you pursue an I.T/C.S. degree, you are typically given a set of major courses. You end up having a slight focus on something, at least in my case I was able to specialize in something, but ultimately that is only a handful more courses in a direction than an alternative; but largely most of your courses are a bunch of “get-your-feet-wet” introductions to literally every facet of technology possible.
So combining this material-first methodology with courses structured in such a way that you never actually achieve true material specialization in anything, you actually wind up in a way where most of what you learned gives you little to no demonstrable value for your resume, no confidence or serious practice with the material you did learn, and you barely developed a problem solving process if you developed one at all.
I was fortunate enough that I was always obsessive enough to have my own side-projects because I was obsessed with I.T. from a young age. When you looked at the rigorous interview process I went through when it came to applying to many hundreds of jobs, almost all of my side projects were questioned and garnered interest over my school ones. Why? Well, because it was clear it was independent, it required extensive problem solving and demonstrated that I was able to lay out a plan, solve the problems in the way, and demonstrate a viable product. When you look at my college projects, all of them were introductory and the material was not well understood because the classroom environment did not faciliate learning it. A prime example is the advanced networking lab, because again, no student in that course ever really learned a whole lot as the entire structure of the course was outright encouragement (and maybe force) of simply following the provided copy-paste command sets. It’s immediately clear when you compare the two which one could be talked about at length and which one couldn’t be.
Even with those projects, I felt comfortable doing personal stuff but I was very green in a work environment where I did not have the ability to seriously interact with or use a lot of what I use on the day to day because I could not afford enterprise level services and equipment as a student. I can only imagine the irritation somebody must feel when they make the decision to pursue a career in IT without the personal projects either because they may not have the time due to external circumstances, may not know how to self-teach and self learn simply because they’ve never had to and their courses discourage it inadverently, or people transferring into the degree who have never had to do it before.
Conclusion & Recommendations
In an effort to cut short my massive wall of text, i’ll end it here.
I ultimately feel, because of the reasons above that I would have been better off expanding my list of personal projects and experiences while pursuing certificates. I have a strong impression that if I had done that, ignoring the social benefits, I could have accomplished literally every single thing I learned from college in 1/4th the time, or less. wonder if anyone feels the same way, or if there are any outstanding flaws in my thought process here. Please let me know if there is by emailing me here.
I personally have a strong distaste for showing problems and not being able to propose solutions, so here is a recap/some recommendations:
- Structure courses so that they teach a demonstrable problem solving/learning process over teaching to the material.
- Don’t be afraid to let students fail. Let them seek help, give them rough instructions to a goal over giving them every single command an exact step by step process with a video and screenshots.
- When possible, actually use up to date material.
- I know I didn’t touch on it here, but try to implement the use of something like Git or other collaboration software in courses.
I wish everyone the very best.