by Darren Collins (
collins@cyberelectric.net.au)
I was recently asked by a university computer science student what he should
know if he wanted to be successful in his software development career. Here
are some of the things I think are important - feel free to email me if
you'd like to add more, and I'll write a follow-up article.
- First and foremost, love programming. If you don't like it now, why do you
think spending all day (and many nights!) staring at a computer monitor
sounds like a good career? Only people passionate about programming will
have the drive to learn more and more and eventually become truly great
programmers. If you don't enjoy your computer classes right now, you're
gonna hate doing this stuff every day for the rest of your working life!
- Don't worry about which languages and/or operating systems you know when you graduate. I'm sure the languages you learnt at university will be an
adequate starting point for most employers looking to hire graduates. If
they wanted a guru in a particular language or technology, they wouldn't be
interviewing graduates. You should, though, make sure you've learnt as much
as you can about those languages you have studied. Know their strengths and
weaknesses. Find out how and why people use them in the real world.
- Because you most likely don't have much programming experience, it helps to
have written some non-trivial programs in your spare time. This shows a few
things - you're programming because you enjoy it, not just to pass your
course and earn lots of money. You also have initiative and motivation, and
can probably work well independantly. You've got experience solving
real-world problems, not just contrived academic ones. Make sure you point
this stuff out in your interviews!
- A big chunk of the average programmer's time is spent relating to people -
your boss, other programmers, managers, customers, support staff, etc. You
need to know how to communicate and relate to other people. Be patient and
attentive in your interviews. A little public speaking experience is nice.
It'd be great if you could show some samples of technical articles you've
written, whether for a university newspaper, your own web site, or an online
ezine or newsletter. Programmers with good spelling, grammar and expression
are as rare as hens' teeth!
- Show a willingness to learn new things. If you had to learn a new
programming language for a final-year project, or you taught yourself HTML
and JavaScript to develop your own web site, point that out! Again, it isn't
important which languages you learnt. What's important is to demonstrate
your curiosity, hunger and ability to learn.
- Even if you're stuck in a dead-end Cobol job for a while, keep learning.
Pick up a book on SmallTalk, Java, Perl, Dylan, Python or anything else and
begin to play around with that language. Sometimes you'll learn stuff that
will help with current problems, and other times they'll wind up leading you
in a new career direction. If nothing else, at least you stay fresh and
develop marketable skills!
- Be humble. You may be the smartest cookie in your database class, but how
many classes has the department run before this one? Every one of them had a
'top dog' too. Don't try to make out that you know everything, but pitch in
when you do know a way to help someone. Listen and learn when you get to
work with people more knowledgeable than yourself. Don't waste the
opportunity.
-- Darren Collins is the editor of CodeCraft, The C++ Newsletter. For more
information, please go to http://www.cyberelectric.net.au/~collins or subscribe by emailing CodeCraft-subscribe@topica.com