This was covered a bit in an article on Nettus+ a few weeks ago, but I would like to share my opinion on the subject.
I am heading into my fourth year of Computer Science at Carleton University. I’ve known since I was about 13 years old that I wanted a career involving the internet, making web sites and more recently developing content rather than designing for it.
While the Internet still has quite a stigma related to it from the .com boom and bust, web development is steadily growing to become one of the most important parts of our sector. Nearly every company has a website, and possibly another internal intranet designed purely for resources for employees.
Web development is no longer just throwing some graphics, HTML and CSS into a bucket and shaking it around. It’s become an entire development platform – something uniquely compatible with almost every other platform out there. There are so many levels to it, from basic websites to vast web applications and social portals. Looking at a job listing website, I can see that the majority of jobs involve web technologies in one way or another. While there are still jobs that might require use of Visual Basic or C++, they aren’t the big ones.
My point here is that web development concepts, languages and principles are here to stay. Yes, they are ever-changing, but they are evolving, and that can only be good thing. If you want to be any sort of programmer, you are bound to run into some sort of web development jobs and tasks along the way – and if you aren’t prepared for them, be ready for a big shock.
But how and where do you go to prepare? Certainly a well-educated university graduate will be qualified to handle web development. Unfortunately, we are still learning FORTAN, Assembly and C in our university classes. I agree that learning basics and foundations are very important to a career in any IT field, but my issue is with the sheer lack of practicality with which they teach us. Let’s face it: the majority of computer science university graduates are not going into a research-based job.
I also took an introductory networking class because I figured that’d have something to do with practical networking concepts that could be applied to future work. But I was wrong, once again. I learned how to calculate packet sizes and how long it would take to transfer them. Is there an application of this knowledge? Maybe in some very specific places, but out of the 30 students in that class, I doubt more than 2 or 3 will ever get a chance to apply that knowledge. Networking is an established industry. No one needs to reinvent the ring network topology.
After my second year of university, I began my first co-op term. I was so frightened because at that point I’d only learned Java, C and Assembly – not the most useful when trying to apply for jobs in the web development field. But I managed to get a job developing internal websites for the government, and that was the one thing that pushed me to where I am now.
It is unreasonable for schools to completely ignore the practical side of Computer Science. With the skillset they provide us with, we are well prepared to do the following things:
- Analyze alogrithms efficiency
- Spit out DeMorgan’s Law
- Solve the Shortest Path problem
- Debug Java code
- Create small, mathematical applications in C++ and Java
- Solve logic questions using Prolog
Do me a favour and go search Workopolis for any of these things. Didn’t find much? That’s because university is not preparing us for a future in the industry – it’s preparing us to be students for the rest of our lives. Which we will be, as that is the nature of the field. They are teaching us concepts, but not giving us knowledge about how, why or when these concepts should be used.
In fact, I feel like we’ve only had one course that taught me things I would personally really use in the future. It was our software engineering class, where we were required to work as a group, delegate tasks and write requirements as we went through the entire process of completing our task. I learned the most about how the world works in that class, and I’m sure I’ll get more use out of it than 4 years of calculus classes. But still, they choose to teach us only dying languages and the same concepts over and over again.
Anyone who is interested in web development is left to fend for themselves. Yeah, it’s easy enough to pick up a new language, but teaching ourselves what AJAX or Web Services are and how and when they are used is no small task. Our education system needs to fill these gaps. Teach us the concepts and the applications of those concepts. Teach us what web applications are. Teach us why these are important.
We are here to learn.