Programming: To College or Not To College
Let me conceal at the outset that I did graduate from university in Computer Science. I’ll also give you the TL;DR, I come down in favor of college. Some people may chalk this conclusion up to the fact that I just want to justify my investment or don’t want to admit that I made a mistake. And you are entitled to hold that view, but at least hear me out.
Now let’s lay a few ground rules; I won’t talk about “The College Experience”, “Networking”, or “Transition Into Adult Life” as, on the whole, I find these arguments unconvincing. Personally, you may find them to be worth it. Those have all been beat to death though so let’s move on. I do think that college is worth the education in computer science over self-teaching or bootcamps. It better prepares you to be an engineer and makes your life that much easier, especially early on in your career. College gives you a much more rounded view of computing, and helps you to tackle some of the common problems that you might see.
College emphasizes a much more foundational approach to software engineering. Meaning that they build up a knowledge base of what a computer is, and how it works from the bottom up. This makes you a much more versatile engineer. I was able to make an abrupt switch from data engineer to full-stack engineer, not because I had experience or knowledge of the domain, but because I was versatile enough to apply my skills from one sub-discipline to another. I was not shoehorned into a specific language or framework because I had a much more rounded basis for my work.
Piggybacking off that, you are also given exposure to many different types of programming while in college. All of these different fields of engineering come into play during your career. Even as a data engineer, my knowledge of operating systems and low-level programming was indispensable. Even as I worked in Python at a high level. It is because I went to university that I had the ability to leverage that knowledge base.
This is not to say that those skills cannot be picked up as a self-taught programmers cannot learn these skills. They certainly can. A university just provides a curriculum that has the benefit of being tried and tested to ensure that it is serving both the needs of the student and the businesses that these students go on to work for. They are informed of what is necessary (in the eyes of the members of the industry) of what it takes to be a successful entry level engineer.
“Then why can’t I just look up the curriculum of a university, read and learn that material, and go on to be this mystical well rounded engineer?” I hear you asking.
Well the answer to that is mentoring. There is something to be said for being taught to be an engineer, by an engineer. I learned some of the most about programming at the start by just talking with professors and learning from them. Now, again, I hear you saying “But you don’t really get time with the professors, they’re too busy!” And yes, this is true to some extent, but not on the whole. I went to a university of ~36,000 students, and my experience was very positive with professors. This may be an anomaly, but a large, public university would probably be the worst case for this.
In the end, it is up to you however. Not everyone can make the time or monetary commitment that early in life or as a change of career. Or you may not be learning to code for career reasons at all! Everyone’s life situation is different, and only you can make the right call. But for those who want a career in tech and can make it work, university is the way to go.