[dundee] No wonder CompSci grads are unemployed
James Le Cuirot
chewi at aura-online.co.uk
Tue Nov 2 23:50:10 UTC 2010
I finished CompSci at Durham in 2005 and I suspect I was luckier than
most. I went in knowing little more than a few variants of BASIC. Most
of my peers had never coded before.
In terms of coding, the first year was largely Java but we were taught
a hell of a lot more besides, including set theory, binary and its
origins (logic gates), algorithmic complexity and design patterns. I
didn't appreciate it at the time but they were laying down some solid
foundations.
In the second year, we were taught C++. I now believe this was a
mistake that was made worse by the fact that it was taught badly.
Instead of starting from the beginning, we were just told how it
differs from Java with things like multiple inheritance and templates.
Memory management was mentioned, of course, but the details were
glossed over and as you all know, C++ has a lot of sharp edges to cut
yourself on. We really should have been taught C first.
On the bright side, we were also taught Haskell that year, which, while
being of little use in industry, did teach us that there is life
outside the box. It really blew my mind.
Perl also featured that year and I bungled the exam slightly by
teaching myself PHP earlier that week. I was so confused! Perl was
arguably already on its way out in 2003 and I've never used it since
but the emphasis on regular expressions provided a good primer for
that. I'm a big Ruby fan now and it's an easy language to learn but I'd
hesitate teaching it to students as a replacement for Perl. Sure, it
has a lot of similarities but it is far too easy to misuse and it often
is, even in great software such as Rails. Something a bit more rigid
like Python is probably a better fit.
I spent my third year abroad in France. I thought they already knew C++
so I decided to brush up on mine upon arriving by reading C++ For
Dummies cover to cover. I suddenly felt like I knew it better than ever
but I had to kick myself. They'd actually been taught C and hadn't
covered C++ yet. I blagged my way through the first couple of months
and somehow managed to miss the announcement about the Christmas
project. I wound up having to write a two player chess game from
scratch in the space of a weekend. Let's just say I learnt a lot about
C that weekend! Due to the language barrier, I got crappy marks
throughout my entire year there with the exception of the C++ module.
My head start meant I managed to attain a very respectable 75%. ;)
I returned to Durham feeling like I had an edge simply because I knew C
and they didn't. It really gives you an appreciation for what's going
on underneath. I now thoroughly believe that any coder, regardless of
whether they're writing in Python or BASIC or whatever needs to know C
to gain a full understanding.
Knowing C has also has also helped no end in my contributions to the
open source community. It seems that most open source software is
written in C and being able to modify it as I see fit has been a real
asset.
James
More information about the dundee
mailing list