What university forgot to mention about programming

Programming at uni…

So for starters I actually learnt to program at college, which it turns out was really lucky as at university they seem to struggle to teach people the basics. If it wasn’t for learning programming in a more structured way at college; university could have been a real nightmare, luckily it was a breeze, which is some of the problem as I’ll get onto.

So what happens at university is people turn up from studying Art or History or some other subject and are given a language such as Java to jump right on into. The first module is something like use if statements and loops, 2nd or 3rd will be something like here’s a class. By the time you leave university you are pretty much at the ability of a mouse, you can write if else ladders and you know what a loop is. In short I learnt far more at college than university, at least at college we were introduced to OOP after learning basic programming, we were then introduced to concepts such as linked lists and binary trees. For some reason at university this was all missing, which is the reason for this rant.

I’ve spent a couple of weekends lately learning some basics about programming which makes me think that really a lot of this should have been where university picked up, but instead because of those not up to speed with programming we all reset and lower the grade yay for higher… education.

What did I learn

I literally learnt some basics. Up until now the majority of the programming I have needed to do (all of it) has not been of significant depth or complexity to warrant having any structure to classes or even necessarily having classes. In addition to this I introduced myself to testing, turns out when you have large complex programs having some basic tests on classes can give you some confidence that the program will actually work.

So I’ve been re-structuring code into classes, which to be fair I was taught at uni, but it leads me on to realise that I wasn’t taught about testing code or writing test cases, all of which would have been useful to touch on at university.

This got me thinking, what else did I not learn at university that could have been useful? Well how about programming concepts such as working with pluggable modules, creating interfaces to API’s so they can be versioned or providers.

I still don’t know what a lot of this stuff is, and as always it seems the best way to learn is to do it and hit problems. So I am busily refactoring my code into what I currently know, knowing full well that I don’t have a clue how I’m going to tackle any of the problems that may be presented. All the time wondering if university had spent less time bringing people up to the same speed if we would have touched on some of these subjects.

Does make you wonder how graduates these days are meant to come out of university and get a job in programming, I only hope that with the new push for schools to teach programming that the gradual bar will increase all the way across.

Summary

If I wanted to go into programming right now I’d be doing as much programming as possible out side of university / college as they just don’t teach you enough. I would also bite off more than I could chew, not knowing how to solve the whole problem is half the fun, so break the big problem into little ones and keep tackling them. Worse case scenario you learn a thousand ways not to do something.