My undergraduate degree is in biology, from a research university. I did some work in neurobiology research, which convinced me that I didn’t want to go on for a graduate degree in biology, so I started taking computer science courses. Back then computer science was a much smaller field than it is now. I got a job building job tracking and billing software for the University machine shop. After that, I was fortunate to land a job at NCR when I graduated.
Going into my first job, I probably didn’t know much more than a graduate of one of the better bootcamp programs. As I wrote, computer science was very small then. There were only a few languages (Fortran, Lisp, Algol, Pascal). I studied compiler design, operating systems and hardware logic design. Looking back, it was all pretty primitive.
The computer industry changes rapidly, so everyone is self-taught at some point, as they learn about new languages, systems and architectures. Before I built nderground I didn’t know anything about the Grails framework (although I had used some pieces of it, like Hibernate). I had no experience with Amazon Web Services. Through a couple of books on Grails, a little help from a Grails guru and Amazon documentation, I built my expertise.
We become what we aspire to be. From the start of my career, I aspired to be a computer scientist and software engineer. I desire a depth of knowledge in my field. This includes algorithms, operating systems, database systems and even hardware architecture.
The aspiration to become an engineer, to practice computer science (what ever that is) can be an attitude that is adopted by bootcamp graduates too. However, if all you know is web design and what you know of server side software is Node.js, then you have a ways to go. As I did when I graduated college. But it depends on what you aspire to be.
Another problem with a bootcamp education can be a lack of general technical depth.
A common criticism of a university computer science education is that you learn “a lot of useless stuff”. The problem is, you don’t know over your career what you will use.
Calculus — what are you going to use that for?
My Masters degree is in computational finance. My focus area was investment portfolio design. As it turns out, calculus is used to calculate optimal portfolios (via Lagrange multipliers). An optimal portfolio returns a higher profit, with less risk. A pretty “dollars and cents” concrete issue.
Computer logic design — I’m not an electrical engineer, what would I do with this?
I developed compilers for the hardware design languages Verilog and VHDL. A background in logic design gave me a foundation for this work.
Molecular biology (DNA/RNA, etc…) I don’t work directly in biology, what use would molecular biology be?
There has been a lot of innovative string matching and data mining work in molecular biology. Having some idea about how DNA works provides a foundation for understanding this work. Also, it gives you perspective on the world around you and an understanding of interesting developments like CRISPR.
If you have a degree outside of computer science, you might consider going back and getting a Masters degree. Graduate programs are much more focused than undergraduate programs. They are also shorter. You will get a depth of understanding that you will not get in a bootcamp.
One way to gain admission to a graduate program is to start taking graduate courses through the university non-degree program (for a grade). If you do well, often you can gain admission to the graduate program. This is how I got into graduate school.