Aug. 3, 2018
This blog has been mostly technical. Every post I’ve made so far has been either a book review, course review, a project overview, or in-depth explanation of how I solved a technical problem. Today that changes. I’m going to write about myself.
In January, I started pursuing North Carolina State University’s Computer Programming Certificate. This program is intended for people with a bachelor’s degree in an unrelated field who want to make a career change and/or pursue a master’s degree in Computer Science. I’m at least one of those things, and my employer will help pay for education, so I figured this was worth a try.
I’m halfway through the coursework for the program. Now seems like a good time to collect my thoughts and put them out there. School work has basically halted this blog in place for the last 4 months, so it’s time to get back on the horse. The writing horse. Horses can’t write, but I can.
Before starting this program I had been studying on my own and working on personal projects for about a year and a half. That self-study included books, free online courses, and personal projects both successful and not-so-successful. I went into the first course of the program fairly confident that I was prepared to do well in CSC 116 (Introduction to Programming in java).
I won’t mention any assignment specifics (to avoid honor code violations), but CSC 116 was about what I thought it would be. The material was all familiar from self-study. Somehow my Calculus credit from 14 years ago was valid for the program’s Calc requirement (no complaints here), so I only had one course in the first semester. I made it through CSC 116 without a scratch. This whole going back to school thing didn’t seem so hard anymore.
I was motivated by my good start in the spring semester to do two courses over the summer. I enrolled in CSC 216 (Programming Concepts in Java) and CSC 226 (Discrete Math for Computer Scientists). These two courses are the pre-reqs that unlock the rest of the courses in the program, and I wanted to get them out of the way. Unfortunately there were several factors I failed to consider.
First, CSC 216 was a course with a Lab. In addition to the normal projects, lectures, and exams I’d have an additional programming lab to complete each week. Second, CSC 226 was the first math class I’d taken in 14 years. I needed to refresh on a considerable amount of material just to be ready to start the class. Third, and worst of all, the summer sessions are only 10 weeks long but the courses cover the same amount of material as the normal 16 week semester. I hadn’t even considered the increased workload per week for a summer course.
I knew I was in trouble when I got my course syllabi and saw that CSC 216 warned students to plan for 8-15 hours a week to complete the out-of-class programming projects. This number didn’t include the lab assignments, and I had only budgeted 15 hours a week total to spend on school work. The 8-15 hour estimate in the syllabus proved to be not too far off. Being successful in both of these courses required me to prioritize how I spent my time to a degree I’ve never had to do before.
In 10 weeks I would have to write 6 desktop applications, take 7 exams, read over 700 pages of textbooks, and fill an 80 page binder front and back with math homework and programming project outlines.
Where am I now?
Those 10 weeks were very difficult. I have a full time job that requires frequent travel (30 days on the road during these 10 weeks), and a family. Somehow I was able to survive with my GPA intact without missing any personal, professional, or academic deadlines.
I learned a lot about myself and my priorities over the summer semester. I learned that I am not willing to give up family dinner time for anything. I learned that procrastination is not an option when your plate is full. I learned that I can handle more than I thought I could. I learned exactly what it feels like when my brain has had enough for one sitting. I learned that I can be insanely productive. I learned that even when I am under a great amount of stress, I still really like solving problems and writing code.
For School: This fall I’ll be taking courses in C and Assembly. I learned some C in a free online course a while ago, but Assembly will be totally new for me. This time I've thoroughly reviewed past Syllabi for each course to make sure the workload will be manageable, and I have a much more solid plan going in that I did previously.
For Life: By some miracle, my already set vacation from work lined up with the break between the Summer and Fall semesters in school. My goals for vacation were to upgrade my blog from Django 1.11 to Django 2.0 and write at least one blog post. If you’re reading this, I’ve already done both of those things. I guess I’ll have to come up with some new ideas. This summer made me too productive.