Why do I choose to get a computer science degree?

A friend of mine at Hackbright asked about career/further study options. She comes from a biology background and is currently working as a junior C# developer. I met her at Hackbright when we both teach Hackbright’s part-time web development class.

I have been asked many times about my transition from a linguistic background into computer science. Questions people usually ask are: 1) Why would you choose a traditional computer science master’s program instead of programming boot camp? 2) Can you survive without a computer science bachelor degree? 3) What’s the return on your investment (time, money, opportunity cost)?

Q1: Why would I choose a traditional computer science master’s program instead of programming boot camp?

I am really lucky because my families (especially my boyfriend) strongly encourage me to focus on my career goal in the long term. They support me both emotionally and financially. Before I transfer to my current CS master’s program, I have already learned web development (HTML/CSS/Javascript)with Girl Develop It San Francisco and some online resources. I am determined to take bigger challenges and excited for bigger rewards the technical skills are going to bring me.

Q2: Can you survive your master’s program w/o a CS background?

I have taken all the undergraduate CS classes before they allow me to get in the master’s program. I have 9 prerequisite classes and I have to get at least B for my conditional admission.

  • CS 220 Data Structure (Java)
  • CS 230 Discrete Math
  • CS 256 Machine Structure (Intel X86 Assembly)
  • CS 340 Programming Methodology (C++)
  • CS 412 Computer Lab (Web development)
  • CS 413 Software Engineering (Android Development)
  • CS 415 Operating System
  • CS 510 Algorithm Analysis (Classic CS problems and runtime analysis)
  • CS 520 Computing Theory (Computational model and turning machine)

That prepared me 3 semesters (2 years experience) before getting into my master’s program. This semester is the 1st semester I’m in the CS program as a graduate student. After passing all the basic level classes, I’m excited that I can start considering my master’s concentration. I decide to focus on cyber security in the next 2 years.

Q3: What’s return on your investment (time, money, opportunity cost)?

I think choosing a traditional CS program over a programming boot camp is a long-term game.

  • Time: 1.5 to 2 years prerequisite if you’re not from CS background. Depending on your previous major, it may be shorter or longer. Plus, you will need to spend another two years afterwards for your master level classes. That’s the case for most of the traditional CS master’s program. Your alternative could be: programming boot camp, which usually takes 3 months; Udacity Nanodegree (about 6 months).
  • Money: I’m currently paying International student tuition. So if you’re a US-citizen, you may just pay one-third of my cost. The approximate cost is around $2000/credit * 60 credits = $120K. The alternatives are: Boot camp ($16K — $20K), Udacity ($200/month * 6 months)
  • Return on investment (ROI): my assumption is that the fundamental CS training will prepare me enough knowledge to try a lot of opportunities compared to the skill-based training. Translated into numbers, I expect to start with a backend engineer/security engineer position with the salary range from $88,777 — $123,501. Based on PayScale, one of the common career paths for security engineer is security manager, with the salary range from $101,587 to 136,164. (I use median instead of the lower bound because I believe California has higher salary bar).

Thus, within 10 years time span (assuming I transfer to security management at year 7).

Total salary: 88,777*6 + 101,587*4 = $939,010.

ROI = ($939,010-$120,000)/$120,000 = 683%.

This is not a bad deal in my opinion.

I welcome any question about the career transition or my CS program.