Many programmers took CS (Computer Science) at the university. Computer Science is a common degree for programmers, because the “Computer” in the name is very appealing.
But CS is very, very, very different than day to day programming.
A Computer Science course will teach you lots of theory, algorithms analysis and very little actual programming that’s required in the industry. It can also be seen more as a branch of mathematics. It’s also quite complicated, if you ask me (I’ve never been great at math).
Programming on the other hand is using the computer to make it do things that are very practical.
I personally took a computer engineering course in the University in Milan, which was more engineering than programming, too. Less theory than CS, but also little practical skills. All I know about programming, I learned by myself as a self-learner. Or on the job. I’m sure people relying on school for teaching real-world programming were not satisfied with the outcome, but here’s good news for you.
As you are reading this, you probably didn’t take a CS or CE course, and you might assume people that took those courses have a huge advantage over you.
Well guess what? They don’t.
It’s likely that a university - being a slow moving giant - will teach you an outdated programming language, outdated “best practices”, and all sort of things that you will need to unlearn over time - not an easy task.
Of course people going to those schools will learn things on their own, just like you, but you can easily get to the level of a CS student in a reasonable amount of time. Plus, you can avoid learning all sorts of theories that you will not find applicable in real life.
All things that are great to learn, of course, but which have little application in day to day programming.
Which has its own large set of problems and complexities, as you’ll soon find out.