TL;DR:
Do I go for the post-baccalaureate degree in CS, or do I double down on self-teaching?
- I won't have student loans because paying out-of-pocket.
- Complete the program = full-fledged B.S. in Computer Science, no caveats.
- I work in software as a technical writer currently and have a liberal arts degree.
I've been working in the software industry as a technical writer for a little over a year now, and I was recently accepted to Oregon State University's online post-baccalaureate Computer Science degree program.
I applied to Oregon State's program because I've been teaching myself some computer science fundamentals over the last year or so, and it's a subject that really interests me. Learning some web development in 2020 helped me switch from being a marketing copywriter at a government contractor to technical writer at a software company.
Before I applied to Oregon State, I was finding information on computer science wherever I could: free university courses on YouTube, Udemy courses, software engineers' blogs, textbooks I bought or rented from my local library, you name it. I've learned a lot, but my self-imposed learning plans can get a little scatterbrained because there's so much to learn.
Oregon State's program is all-online and costs about $36K start to finish. I've got a pretty flexible job schedule as is, so I'd be working full-time and taking a class or two every quarter. I'd pay out of pocket for the degree, so no loans.
A few things I like about the Oregon State option:
- I don't have to take all the core education requirements. It's basically a few lower-division intro CS courses, but the rest are all upper-division CS.
- I know there are great online master's programs in CS, like Georgia Tech's, but Oregon State's would make me learn the fundamentals that I didn't get in my first degree (which is in liberal arts). I know it seems odd to go back for a second bachelor's degree, but I wouldn't want to be overwhelmed by graduate-level courses I'm not ready for in a post-grad program.
- If I complete the program, I'll end up with a full-fledged Bachelor of Science in Computer Science degree from Oregon State. No asterisks; I'll have the same credential as any other CS undergrad from Oregon State.
I'd like to take my career into a more technical area, partially because I'm interested in technology and partially for financial growth opportunities. I know I can learn about the technical stuff for free (mostly), but there are some jobs that literally require a CS degree. On top of that, I don't want to be unprepared for highly technical problems in future roles.
Any guidance/perspective will help. Thanks!
One primary reason is, bereft of an intensely close relationship with the professor(s), they have zero reason to tailor the curriculum to your interests. You're a paying customer.
That said, aim for the Masters along with the undergrad. I feel there is a larger "perception gap" between a Masters candidate and a non-Masters, versus unskilled-but-talented against a CS degree +/- certs. You would be separating yourself into a more favorable pool by having the Masters.
I'll be honest: CS undergrad left in me a hunger that I didn't know I had, and a bit of regret at not diving deep into math. All the really amazing stuff that is CS-related comes after the academics: compilers, concurrency, operating systems, data structures & algorithms, constraints, theorem-proving, graphics, AI, etc.
So as long as you know CS will just get you to learning how to speak English, but now there's the real work of what to read, what to study, and what to "write" (code).
Best of luck :) I envy you are willing to give yourself a second chance!
(With family to consider, I would have also thought of just investing the money too.)
What you get from the program will depend on what you put in. The program itself is solid, but you'll definitely need to work on your own to become hireable - mainly leetcoding, real world projects, etc. I would highly suggest taking the more rigorous classes. There's an active slack that helped me to make friends, debug code, and workshop ideas.
All in all, it was worth it for me. It helped me get a job at Intel after graduation, so I guess it was a success.
I wrote a bit about my decision to do another degree on my blog, in case you're interested: https://mdrake.sh/blog/whats_next/
I'm also down to answer any questions about my experience in the program :)
Check with your school's career center and seek an internship. Success at an internship and maintaining a quality career track is one way a B.S. is extremely valuable.
The other way a B.S. is valuable is networking and making groundbreaking moves -- startups with talented peers or research with guidance from talented professors -- while you're pursuing the degree.
Think of the degree at the end as a hedge for your access to any of those tracks and you'll be better served.
That being said know what you want. If you want to be a better software developer the answer is self study. Go build things nobody else can. If you want to do research or open more interesting career opportunities then continue to increase your education.