No. Not me. I’m not going to Uni.

Sometimes I spend a chunk of time writing a comment on someone else’s blog.  I find it a shame that that’s not somehow linked here, so…as I’ve invested the time writing…I’m copying that here.

There’s a great discussion going on on Emma Mulqueeny’s blog that’s people giving advice to a young person who’s thinking about going to Uni to study computer science, or something similar.  Well worth a read if you’re in that position yourself.

Here’s my take on the matter (slightly edited).

I hope you don’t mind but I’m not going to answer [the young person’s] questions directly. What I would like to do is share my own experiences and lessons learned.

I was interested in computers from about age 12 – this in the day of early PC’s and Commodore 64?s. I got good GCSE’s and A levels (Maths, Physics and Computing) and then, more because I was interested than because I wanted it as a career path, I went to Uni to study computer science.

I studied at York, which had an excellent department and course which taught lots of good fundamentals of computing at all different levels, from low-level electronics and maths up to Object-Oriented software design.

The story of how I ended up at York is a whole other comment/post, but I’d agree with what was said above about looking at syllabuses and what areas of research the Uni is interested in. As I looked around some were really into robotics/cybernetics, some were into graphics and modelling of motion and particle dynamics, others were into formal programming principles. I think the latter will give a better grounding for programming, but that’s just my opinion.

Having said all of that, maybe you don’t know what specific area you want to go into? I certainly didn’t and I suppose the course that I did gave me some future direction.

ALSO…remember that you’re going to spend three years of your life at Uni and you’ll want to be comfortable and enjoy it. I’m from Swindon, a not-so-big town, and after visiting Imperial I quickly lost interest as I would have found London expensive and stressful. York was cheaper, quieter and more friendly. It’s a personal thing, but worth thinking about if you decide to go to Uni. You may long for the big city life!

The course mostly did me well, though I felt that it was highly geared towards people who would stay on for further study (masters, PhD, etc). The final year in particular covered topics that were highly theoretical and specific to the research interests of the University I was at.

In terms of practical application, probably everything I learned in the first two years was enough. I did a straight 3-year degree and I WISH I’d taken a year in industry. I’d encourage you to do something practical like that and see how IT works in the real world as well as in the theoretical playground of a University. I was fortunate to get 13-weeks work as a junior DBA. Totally different to everything I was studying, but hugely important in my future career.

It’s also true that you don’t have to be an academic star to be good at this stuff. Some of the best people I’ve worked with in IT have been school leavers or people who didn’t finish at school. They got simple jobs in IT firms and worked they way up, succeeding by having industry knowledge, a willingness and ability to learn, and a good work ethic. As I worked in IT operations it was easy to see that some of those in lower-level jobs (shift operators, etc) had great prospects and would quickly move into more technical positions.

So, anyway, I graduated and was fortunate enough to get a job where I used a lot of the skills I’d learned at Uni, working in safety-critical software engineering. This was amazing and I left that first job for personal reasons rather than because I disliked the work.

My second job (look at my CV if you want to know) was in a big IT/telecoms firm. And I guess some companies will be better than others, but experience was actually quite stifling. Initially they invested in me, but ultimately I found that the the large corporate only had one thing on its mind: cash! And if they’re a PLC that also means cash-for-investors-and-shareholders. I found the large corporate to care little for real innovation and creativity.

And so I left in February to go freelance and be creative and do my own thing and learn masses about business and technology and creativity and working in partnership and…so much more. I LOVE it. I love problem solving on MY terms, I love learning new stuff. Yes, I end some days weary and frustrated – that happened when I was employed too – but I always wake with fire in my belly because I’m doing the thing I love doing: using technology to help people solve problems.

A final thing to throw in. For a long time I thought my degree was pretty worthless in terms of real-world application. But when I worked for the big corporate I learned that the foundations of computer science that I had made learning new things SO much easier. The classic case was a training course I was on learning a scripting language. When it came to exercises, initially I was the slowest. Everyone else was just rattling off the answers they’d memorised or copied from the course notes. But I was questioning how things worked to try and get “under the bonnet” of the language. When it came to later, more complex exercises, my greater understanding of how the language worked meant that I could solve the more complex problems much more easily. That “digging down” was informed by the fundamentals I’d learned in my degree.

So I guess my lessons are:

  • Knowledge of the fundamentals is very useful – more useful than I realised.
  • But real-world, practical application and experience is also hugely valuable.
  • My opinion is that you can be good with either, but to be great you need both.
  • Research courses and universities well – it’s a big decision that could affect you a lot.
  • Decide on a route – this will inform your university decision – perhaps you can find a course that specialises in medical applications?
  • OR…don’t decide on a route. Pick a place that looks good and have your future guided by what you learn on the course.
  • I disagree that learning the current thing (Cloud, “Web Science”) will do you well. If you learn the fundamentals you will quickly pick up whatever the current trend is. Plus, web development is only one area of programming – it’s a quick, easy way in, but probably, ultimately, a short-term approach.
  • This is also a personal opinion, but I find the languages of the web pretty poor. They let you get stuff done very quickly, but don’t encourage good software engineering practices. Learn something well-structured and strongly-typed first (maybe something functional?) to get the principles. Any code that you later write in something like PHP or JavaScript will be FAR better as a result.
  • Often small companies are doing the interesting stuff. My experience is that large companies stifle innovation. There are probably exceptions to this (Google, Apple), but you’ll need to be really good to get in. REALLY good!
  • I think [the young person in the original post] will do really well. They sounded intelligent, hard-working, and had a desire to be creative and solve real world problems.

There’s a little bit more (and some repetition of what I’ve said) on my blog – I’m thinking specifically these two posts may be useful/inspiring:

To anyone reading this, feel free to leave a comment here if you want to discuss my experiences. I’m always happy to share!