Last month I completed my bachelor’s degree in computer science from Oregon State University’s post-baccalaureate program. This program is tailored to students who already have an undergraduate degree, so there are no concerns about transferring general education classes and you only focus on the courses for the major. It is offered entirely online and follows the curriculum of their on-campus program.
Overall, I had a very positive experience. I started out taking a few CS classes years ago as prerequisites for classes in my master’s in information science program, developed an interest, and discovered how helpful my CS knowledge was in my work and for opening up opportunities in my career. I knew I wanted to continue down this road, but it was a difficult decision to commit myself to another time-consuming and expensive degree.
There are other options out there (coding bootcamps, certificate programs) that are appealing for those that want to make a quick professional move or don’t have financial assistance through their employer/scholarships to alleviate the cost. But I found in the last 3 years that my lack of an official CS degree has been the main roadblock in my career. I can easily find new and interesting projects and work; however, my job title and salary never matches the labor. I wanted to remove this last obstacle before I put a serious effort towards pushing my career further.
Complaints: My complaints, and most of those I’ve heard from other students, seem to match the general grumpiness you would expect any program, including an on-campus one, to elicit:
“Group projects are awful.” “This class is too hard/unfair.” “This class is a waste of my time.” “The professor’s instructions are unclear/I don’t like this professor.” “The short trimesters give no breathing room for assignments.”
Benefits: There are benefits to taking classes online that on-campus students miss out on. The lectures are pre-recorded and can be watched at your leisure. So, if you aren’t focusing, stop the video and come back when you’re ready to study. If a concept is difficult or you need to review before a test, re-watch the specific sections you need.
Student Interaction: Between the professors and TAs’ feedback, discussion boards, Piazza for assignment help, and group projects, I don’t think I would have interacted more with my peers in the on-campus version, except to sit quietly next to them during lectures. The school also provides opportunities and funding for online students to attend career days and project showcases. They collect resumes to share with tech companies and let senior students apply to TA the intro courses.
Group Projects: The group projects were basically a nightmare, but aren’t all school group projects? There is a quote that gets circulated online every now and then from Fred Brooks that sums up every group project I experienced, “What one programmer can do in one month, two programmers can do in two months.”
Group members usually fit into one of the following categories:
The Free Rider: This group member logs into the chat for the first time two hours before a giant project is due and acts offended that you started without them.
The Helpless Helpful: This group member struggles with the basics, such as debugging their own code or using collaborative tools like git. All of their “help” requires constant babysitting or you’ll log in to code that doesn’t compile.
The Absolutely Delusional: This group member is the big ideas guy. They want to create an impressive project that neither meets the actual assignment requirements nor is possible within the time frame. They will hold up the project by arguing with the group.
Towards the end of the program, I started to be very direct with my groups and stopped trying to accommodate those group members listed above. I swear I’m a tactful, collaborative co-worker in my 9-5, but I lost the patience and time to cater to those group members that clearly weren’t going to contribute.
“Hardest Class”: The most dreaded class in the program is Analysis of Algorithms. So much so that many students leave it to their last semester. I decided to take it early, directly following Data Structures and Discrete Math since those were its prerequisites, and was surprised by how much I enjoyed it. Many fellow students suffered from some type of existential crisis from having to do math for the first time in years, but it really wasn’t all that bad. Getting an A in this course boosted my confidence and removed doubts that I was an imposter in this field.
Actual Hardest Classes: I struggled the most in Computer Architecture and Assembly, Data Structures, and Computer Networks. It was frustrating because I felt that I understood the concepts and nearly always earned full marks on homework and programming assignments, but had difficulty with the exams. Sometimes I felt we weren’t given enough time to complete the problems – only having 2-3 minutes per question when you were expected to convert between binary, hex, and decimal before calculating an answer – other times I didn’t memorize enough or the right facts from the textbook.
Personal Portfolio: A few of the classes had final projects that could be included in a portfolio. The capstone course, which allows you to select your project and technologies to work on for the semester, also provides a large project that could be showcased to potential employers.
What’s Next: I plan on using my degree to advance my career by seeking a more challenging position and by completing my master’s degree in Computer Science/Machine Learning from Georgia Tech. This program has more than satisfactorily prepared me for both goals and I look forward to what the future holds for me professionally in the next few years.