Two weeks ago, I announced my plan to get a Bachelor’s degree within a year, and mentioned I had already completed three courses within a week of starting. Naturally, that sort of speed inspires some skepticism, of the “what worthwhile material could possibly move that fast?” variety. In light of that, and in line with the general principle of as much openness about specifics as possible, I intend to provide periodic “workload reviews” of the time, effort, and substance of my courses. As such, I’m afraid this may be a bit drier than my announcement post if you’re not dying to understand the specifics of a software development degree, but it needs to be done.
First off, what have I been doing the past two weeks? Not nearly as much as I did that first week, frankly. This was mostly because I learned that my exams wouldn’t open until I officially enrolled on May 1st, so I didn’t want to push it by studying for more than four courses at once. I spent another few days working through the fourth course and final course required for this semester, then mostly limited myself to Anki reviews until my tests. The tests finally opened last week, though, so I worked my way through at a rate of one per weekday, completing the last one today (Tuesday, May 7th). That makes now an ideal time to review my first “semester”.
Let’s start with broad numbers: This “semester” lasted from 15 April to 7 May 2019. I took Intro to IT (C182), Network and Security Foundations (C172), Web Development Foundations (C779), and Business of IT — Project Management (C176), for a total of 14 credit hours. I passed each test on the first attempt, acquiring the COMPTIA Project+ and CIW Site Development Associate certificates. I created 750 spaced repetition flashcards, reviewing 212 per day for a total of 4891 reviews, which sounds like a lot but took only 36 minutes a day. Overall, I estimate I studied around 5 hours per day for the first 10 days, then 1 hour daily for the next. Call it 60 hours total for the semester, give or take.
Since each course was mostly knowledge-based, not performance-based, my basic strategy for each was the same: pre-test immediately, complete each section quiz before and after reading the section, read each section in order, add whatever useful-seeming new information I found to my spaced repetition system, push my way through all the quizzes I could find, call it a day as soon as everything seemed to stick. With a couple weeks’ delay between reading course material and taking the final, I was a bit worried that I would struggle to retain some info, but spaced repetition is basically magic and I experienced sparse memory decay at worst.
So — what was each course like?
Intro to IT
This course was exactly how it sounds, and was the easiest of the four by far. It goes over just about everything IT-related on a surface level, being sure to “reassure” students — a bit ominously, in my book — that they wouldn’t need to do much math or detailed programming to work in IT. Hardware, software, networks, scripting, data management, and business all get their brief time in the sun. I passed the pre-assessment with a score of 78% before starting the material, mostly missing jargon-heavy business & project management questions. Not terribly surprising — I have a basic foundation in computers, and this was all basic stuff.
I read through the textbook in a day, added some thirty flashcards for the concepts that were new to me, and pretty much called it a day. It’s a good overview course, and the textbook and exercises prepare students thoroughly for the final. By the end, I got 89% on a retake of the pre-assessment just prior to the final and 93% on the final, all multiple choice. My main long-term takeaway from the course was a proper high-level understanding of computer hardware, since I’d never bothered to learn how to identify parts of a motherboard or much about the specific functions of some computer parts. Solid use of a day, glad I didn’t spend much more time on it.
Network & Security Foundations
This, on the other hand, was full of technical material, jargon, and other nastiness. I scored a cool 41% on the pre-assessment, better than chance but not much. The course went into thrilling detail on, let’s see… the OSI model of networks, cabling, wireless networks, LANs, routers, switches, TCP/IP, network security, and regulations. The level of detail was generally useful, but mind-numbing at times — my 350 Anki cards for the course include a reminder that TCP ports 860 and 3260 are used for iSCSI protocol and another to remind me about the maximum data rate of what I now know is called CAT5 cabling (100MHz). Super granular, definition-heavy stuff. Lots of random details about Cisco routers, too, so if you want someone to enable a DHCP relay on a Cisco router via command line, I’m your guy.
Getting it all down took some heavy reading and self-quizzing over about two and a half days, then significantly more Anki review than my other courses. In the end, I probably could have stripped out a lot of the specifics, and would have done better if I had paid attention when the pre-assessment reminded me that the single chapter on network security was about half of what I was expected to take away from the course, but almost everything about networks was new material for me and I was happy to get a better idea of what’s going on there even if it’s not too central for what I want to do. The course had a lot of labs that showed promise but ended up being mostly “follow this step-by-step instruction sheet and watch as it does exactly what we say it will”, which I fear may become a recurring theme.
The final was harder than I expected and I really didn’t do great — maybe 80%? Some of that was multiple choice silliness.
Some of it was because I didn’t think, based on the course material, to prioritize security as highly as it expected me to. Not a huge deal, though. It was a useful course but, again, not terribly central to my aims.
Web Development Foundations
Web development, on the other hand, is exactly central to my aim, and so I took this course rather more seriously than I strictly needed to if my intent had been only to pass. Passing, by the way, is barely an issue. The certification exam it’s built around requires a score of 63% to pass, and the only part an average tech-savvy reader should struggle on is justifying the $150 exam fee. Since that fee was included in the price of tuition, and I passed my pre-assessment with the sky-high score of 66%, I wasn’t particularly concerned. Anyway, I had some limited prior experience with HTML and CSS, and was excited to dive back into them, but perhaps I shouldn’t have gotten my hopes up too high. It covers the basics of HTML about as well as W3Schools, but it doesn’t go nearly as deep into CSS, spending (wasting? Not my call. I don’t design the certificate) some time instead teaching you how to use GUI HTML editors and on web development for business.
The instructor reached out to me on May 1st, when I officially started class. Since I went through the material before being assigned an instructor, there was only so much that was necessary, but he was proactive about setting up and pointing towards a lot of real-time training sessions, which was good to see in case that stuff proves important for later courses. I haven’t asked for or needed much communication yet, but it’s good to see it’s there for when I or others need it.
The worked examples are always going to be the meat of an HTML/CSS course, and this one had plenty, but — as with the Network & Security labs — a lot were pretty paint-by-number. I spent a couple days playing around with it and starting to work on potential designs for my own currently theoretical site. The readings, quizzes, and exercises took another day and a half or so, plus another couple hours of quizzing and concept review later. In the end, the certification exam had plenty of delightfully vague, pedantic multiple-choice questions, as multiple-choice certification tests without strong incentives for quality control are wont to do, but again, it’s a 30-question multiple-choice test that takes 63% to pass. I got 83% and have retained just enough self-dignity to feel a mite embarrassed about not improving more from my pre-test.
I’m not unhappy with the course in the end, especially if the web development applications course I’ll be starting soon goes well, but I wouldn’t have minded some encouragement towards more intensive, hands-off labs and a bit heavier focus on CSS. Probably the biggest benefit was the chance to stick a lot of the basics of HTML and CSS into Anki to reduce my need to rely on look-ups later. I created some 200 cards, mostly for that purpose, and would like to toss in maybe another 50–100 to really nail down the basics. The best way to approach this course, I think, is as a framework that gives you an excuse to play around with front-end web design for a while. Not a bad time.
…which takes me to the one that, I’m afraid, is a bad time unless you have more of a taste for business jargon than I do.
It’s like this: some courses of learning cover something that aspires towards a fundamental, objective truth — say, physics or chemistry. Others delight in encouraging students to develop a deep aesthetic sense or critical thinking and analysis — art, or English. Some, like computer science and math courses, encourage precise and creative problem-solving within complex systems that have clearly established rules.
And then you have business courses, which go a dozen or so layers up from all of that, pick and choose a few ideas to toss the label of “truth” onto, create thoroughly arbitrary systems and ask you to remember trivia about them, load you up with exciting acronyms, and occasionally have you do some highly complex — ehh — addition problems.
In this case, all of that builds up to another vague, pedantic multiple choice exam that would have cost me between $300 and $600 if I wanted to take it on my own.
This is not to say that the project management course contained no useful information or that it doesn’t belong in the degree plan, only to whinge that it was not, personally, to my taste. It gives a solid overview of, well, business project management: the stages of a project, team roles, creating a work breakdown structure, scheduling and resource planning, cost estimation methods, and an overview of the Agile methodology. Most of it was new to me, but educated guessing gets you pretty far in business courses: I got 59% on the pre-assessment, then spent a solid two days reading through the material and going through the quizzes to learn what I couldn’t guess. The certification exam has plenty of artificial difficulty with deliberately ambiguous questions and an opaque scoring system, but it wasn’t too bad after going through the course material.
What will I take away from this particular course, in the end? The jury’s still out, but I loaded up 137 Anki cards just in case. I do like some of the planning tools like the work breakdown structure, and I’ve caught a surprising amount of terms from this course popping up in the wild, so I suppose it’s done a pretty good job of acquainting me to the framework and common language of the corporate world, which I can’t complain about for an entry-level course.
In a sentence, this “semester” provided some welcome immersion into the basic terminology and frameworks of software development, but provided little in the way of building real programming skill or applied knowledge. I’m told those are coming down the line, and in the meantime, I’m happy to play around with HTML and CSS. I’m not sure when just yet, but within the next few months I’d like to build a personal website and toss these reflections and experiments with web development up as I go. The first semester was a little easier than I expected going in, certainly easier than I would have liked, but I expect that to change as I move deeper into this degree path. The rigor feels comparable to most first-year courses at non–highly selective universities.
The courses are uniformly fantastic about providing active recall opportunities, and between them and Anki, I’ve felt very well equipped so far to acquire and retain the material I’m asked to learn. Each course provides a completion percent tracker and enough incentives to keep me consistently motivated to progress even through dry or businessy material, and the whole thing feels clear and fair. The workload is manageable and the learning process mostly satisfying even at points where I don’t anticipate needing the material. I’m learning, I’m progressing. Things are going well.
Onward to week four, and semester two.
This is still a new project and remains very much experimental. I intend to provide regular updates analyzing my successes and failures in this game of learning. If you’d like to follow along or read my meandering thoughts on education, optimization, and whichever other topics catch my eye, you’re welcome to follow me here, on reddit, and maybe even on Twitter if I’m feeling particularly careless.