If I was to start again, as a fresh faced high school graduate, I would not go to university.
Well okay, maybe that’s not true. I might go to uni, but it wouldn’t be for the first rate education, it would be to bum around for 3-4 years, meet people and have fun. I work as a programmer, and there are many problems with tech courses at university:
- Tech moves fast, universities don’t. The syllabus is always a decade behind.
- Assignments are extremely short term projects. You don’t have to live with your mistakes or work effectively in a group.
- At the end of your course, you’ll have a shiny piece of paper, a large debt, and nothing show people or employers and say “I made this!”
In contrast with university, online resources for learning have gotten dramatically better:
- Think Python is a great book on learning the fundamentals of computer science.
- Khan Academy’s computer science section is great.
- Stack Overflow is a great resource for asking questions (and answering them, to build a reputation).
- Github is the one stop shop for hosting your projects, showing off your work, and collaborating on volunteer open source projects to learn and prove your skills.
The main downside to not having a university degree is that some employers might not consider you if you don’t. I can’t speak for others, but when I look at people’s resumes (which doesn’t happen very often admittedly), I don’t even consider it. And this is coming from someone with a first class honours degree.
But it’s not all bad, I can see some advantages to university. If I’d tried the self education approach when I was younger, I might have slacked off a lot. University gives you some focus and direction (aka deadlines). There’s also an emphasis on written communication at university which always comes in handy. Not to mention actually getting feedback (aka grades) on your work and progress. And the whole physically-present-with-other-like-minded-individuals thing, as opposed to being a lone coder in your mother’s basement.
One thing is for sure though, you need more than just a degree. Work on a project outside of your studies, post it online for all to see. Contribute to an open source project of some kind, or start your own. Make something. That’s where you’ll learn the most.