I had a "fight" with some friends regarding the role of the university. Most of them are still undergraduates in the last year and they are already working as developers. One of them said that if he had gone to a better university, it would be a 10-times better developer than he is now. The above thought is very common to students, so I'd like to share my thoughts as someone who has finished university 4 years ago.
"Horizontal" vs "vertical" knowledgeI think there are two kinds of knowledge, I'll name them "horizontal" and "vertical".
- The horizontal is the one that you have when you know many different areas. For example in computer science it could be (very roughly) something like computer networks, electronics, game development etc. Of course the fields are connected in some extend, but they are a lot different at the same time.
- The vertical is how deep and specific knowledge you have on a field. For example for web development it could be how much do you know about html, css, js, how the protocols work and then a backend language, how databases work and the list goes on.
1) First years helps you learn the core ideas of the science you chose
2) Gives you a wide range of different disciplines. This is a "horizontal knowledge" that will help you decide what you really want to do later
3) Teaches you how to learn new stuff
Of course the university is doing much more minor things like:
- New connections (professors or students) with whom you will hack together
- Be part of a team
It also "teaches" you some bad habits like bad writing skills, but this is a subject for another post. To sum it up, the university is doing something like school, but in a more specific science (in school, you are trying to discover the world in general).
Common misconception of the university roleMost students think that the university will teach them everything. That is a bad habit that students may have gained from school, where they don't discover the knowledge by themselves but the teachers give it to them. Then in the university, they expect the same and they become disappointed.
I believe that the most basic university role is to help you acquire knowledge in many areas and teach you to learn. When you decide what you want to do, you focus on it and you start discovering and learning by your own.
What type of knowledge you need to be good in an expertiseNo matter how many things you know, if you aren't using them, you will eventually forget them. That's how synapses work and as Aristotle said "We are what we repeatedly do. Excellence, then, is not an act, but a habit." With that in mind, it is nice that you are learning so many things in the university, but you aren't gaining any deep knowledge in any of these areas and if you aren't using it, you will eventually forget it. After ten years I doubt you will remember anything. For example I had a theoretical lesson for robotics with too much mathematics on it. I was good as a student but now I barely remember it and I am sure I can't pass the exams right now.
On the other hand, in order to be a good programmer you really need to learn how to learn, how to discover this knowledge and adapt/learn it fast and remember many specific things on the field that you are working on. No matter how good you are on electronics, it won't help you to build a specific rails web application. Specific knowledge and fast learning makes you the best.
Why the name of the university you will go is irrelevantAfter the university, you will start to use specific type of knowledge to accomplish things in the area that you like and pretty much this will happen at your job. Eventually you will learn a ton of new specific things and forget the old general horizontal knowledge in some extend. No matter what the university is, a graduate can't compete with a professional with some years of experience in his field. You may have learned and achieved many great things at your super university, but you also lost too much time learning things that you will never need and eventually will forget. The student spends a maximum of 6 months to study a course. A professional is evolving to a specific field and doing this as his job, all day, for years.
When you (don't) need to go to the universityIs the university useless? It depends. If you are sure with what you'd like to do, be a dropout now. Start learning on your own. If I knew that my love would be web development and all the things around it (databases, servers, backend, frontend etc.) at the age of 18, I'd prefer not to go to a university but focus on learning all that by myself. I knew the core basics before I went to the university. That's why it would be preferable working in an interesting project with the technologies I like and see them in practice. Since I finished the university (about 4 years ago as of this writing), I've read more than 50 books about the technologies I like. Real knowledge starts after university, don't fool yourself that university will teach you what you need to know.
If you don't know the basics or you still haven't found something that interests you, then keep searching and stay at university.
Mythbuster #1: A good professor will make you love a lesson that you aren't really like or vice versa
Well... no. A good professor may inspire you and make you like a lesson but as you start learning more about it, you will eventually see that you don't really like it (or the opposite). That had happened to me with assembly, I had one of the best professors, I like programming and hacking in general and I really love it at first. But I wanted also to make something useful after days of coding and be fast/productive, so I eventually left it for something else. On the other hand, I had a professor in web development that was good in his field (comparing with other professors) but he was exactly the opposite of an inspirator. He would let you down with any chance he had. Besides this, I loved web development at first sight even with php back then.
Of course it depends on your personality, but I think the effect of a good / bad professor is temporary and as you are going into more depth, you will understand if that is what you like.
Mythbuster #2: The X (MIT, NTUA, whatever) university is way better than my university, so the students from that university is more likely to be better
History had shown that even dropouts can be innovators (Steve Wozniak for example), while graduates from X super university may choose a totally different career from their studies. I have a graduate friend from NTUA (the best university in Greece) who became a farmer after his studies. He actually didn't like computer science and he decided to follow after his parents. It is so much of a hypothetical question what would have happened if you would have gone to another university, that nobody can really know. It could be really difficult for you and you may had left it or you could find friends with common interests, find exactly what you like, be dropouts and do what you love from the first month. In general, I believe it is irrelevant.
With that in mind, I hope I helped you if you are a student to understand what to expect from the university and make you more responsible for your learning (and search for your "true love").