05 May 2006

Your IT degree is over. Some advice for a smooth transition.


Yep, you finally managed to pass all your exams and deliver your final project on time. Five or more years dealing with complex algorithms, software engineering practices and countless other topics which give you a solid base and a bit of fun. Now you should be prepared to face reality with a relatively high degree of comfort. Are you sure?.

A math teacher recently told me that all formal studies are taught based on the supossition that when you finish that stage, you'll continue studying. Primary School is a preliminary to High School, High School to University, University is your career towards your PhD, and so on. So, what happens when you find a job, thus breaking the education link?.

Your mileage may vary, but I bet most of us felt really annoyed during that transition. Reality can be very different to what you had imagined. You need to get used to it.

With your permission, here's some advice that can make the transition smoother:

  1. Learn English (and learn it well). If you're in the IT field, no matter in which country, English is no longer a plus. It's a must. Just as nowadays you can't conceive a computer with no network, think of English as the mean of communication in the field. Superficial understanding of a technical article is not enough, so make a little effort if you need to improve it.
  2. Find a good mentor. This is a difficult one, but try hard to find a mentor inside your organization if you can. He can be your boss, a colleague or maybe even someone from other department. An experienced, willing-to-teach person can solve your doubts, clear your thoughts, refer you to good information sources and guide you towards the right direction.
  3. Search the Web. Yeah, the web can be full of rubbish but, believe me, it's also full of invaluable information and incredibly smart people. To begin with, don't miss a single article from Joel Spolsky . Browsing through his weblog you'll learn how to write a specification, how to schedule a project, etc... in a useful and realistic manner, far away from formal methods that are rarely used (another lesson you'll learn when you face reality). This is just an example, have a look and you'll find other superb sources of information.
  4. Read books. Fortunately, superb books are available on every conceivable topic. I don't recommend you to buy very technical books, cause they are expensive and they'll get outdated in a year. These are the kind of books that should be bought by your company. Instead, spend a few bucks in classic or more pleasant to read books that you can leave on your bedside table. There are lots of them, but maybe you can begin with "Peopleware: Productive Projects and Teams" or "The Pragmatic Programmer", depending on your interests. Buy them in English and always check an on-line store before paying extra money at some expensive bookstores.
  5. Be patient and humble, but believe in yourself. Your career dind't begin at University. It begins now. So be patient and humble, ask when you need it and learn as much as you can. Experience is important, but don't underestimate yourself when you hear or read from others, cause you might surpass their abilities in a short period of time. Many people exaggerate (or even lie), so be critic and believe in yourself as much as you believe in others.
This is just a little introduction that I hope can help you through this process, but don't forget that your experience is the one that matters. So go for it.

PS: How was your transition from University to your first job? Any advice? Share your story with us!


Feedback from readers:

25 May 2006, Ghost:

  1. Play with as much as possible as you can - do a Ruby On Rails application, write a Python script, make a modification to a PERL program and contribute to a SourceForge Java application. It's not going to hurt and you will learn different techniques that you may not be officially taught at Uni.
  2. Have at least one demonstration program you can reference in your resume and show off when asked. Preferably this should be something in the field that you want to get into. If it's desktop applications - make sure you have a version that runs on your laptop backed by a MySQL or Access database, if it's web based make sure that your name is on the site somewhere and include the URL in your resume as well as having a local test copy on your laptop.
  3. Always take your laptop to interviews with you. Make sure it's loaded with code, you have a local copy of MSDN or the JRE runtime reference, or the Python library reference as well (preferably all of them). Be prepared to show off your own code if that answers a question in more detail than you could yourself (Remember - actions speak louder than words).
  4. SourceForge projects may be considered lame - but they are very public and it is quite easy to send a link to a list of contributions that you have made. It also shows that you can work in a team, respond to externally submitted bugs and make your own contributions. All of this is important.

10 comments:

Marcin Brzezinski said...

You've forgot about one thing, which has nothing to do with knowledge:

"Can do!" attitude.

This helped me at my first interview in my life - and keeps helping every day ;)

Pablo López said...

Sure Marcin! That kind of attitude is essential to survive in this world:)

Steve said...

I couldn't agree more on these points. And the comment about "Can do!" attitude is spot on.

Sadly one of the downsides of todays "work from home" environment can be finding a Mentor. I think that is a big problem in todays business environment. However, I agree wholeheartedly that work from home is a great thing for many people in software engineering.

Monkeyget said...

I'm about to finish my studies and therefore those advices, even if they are basic, might be useful to me.
So thanks for the article.

Anonymous said...

The web can be full of rubbish but, believe me, it's also full of unvaluable information.

Ghost said...

Some very solid points that I agree with completely. However ... to be a language nazi for a moment - you mention Learn English (and learn it well) as a topic yet your then go on to misspell invaluable as unvaluable and use you're where the correct word is your. Minor issues I admit, but when they contradict one of your main points - it doesn't look good :)

Anyway, you asked about transition from Uni to first job - my experience of this was in 1992 so it may be a bit out of date these days. The company I work for at the moment does hire a lot of graduates or second job people (ie: the job we hire them for is only their second job out of Uni).

My personal experience was that I was lucky enough to get part time jobs during Uni that matched what I wanted to do (if only for a month or two at a time and being officially listed as a admin support person). Enough experience of this convinced me that what I was learning at Uni was certainly useful but by no means how the real world operated. This generally resulted in poor acadamic reviews by lecturers (which thankfully did not effect my final marks) but high performance reviews by people I did work for. It also aided in boosting my employment ego (I could walk into an interview confident that I could do what they wanted me for - and if I got knocked back for that particular job it didn't really worry me).

My suggestions for what to do to prepare yourself for the transition from Uni to Workplace would be:

1. Play with as much as possible as you can - do a Ruby On Rails application, write a Python script, make a modification to a PERL program and contribute to a SourceForge Java application. It's not going to hurt and you will learn different techniques that you may not be officially taught at Uni.

2. Have at least one demonstration program you can reference in your resume and show off when asked. Preferably this should be something in the field that you want to get into. If it's desktop applications - make sure you have a version that runs on your laptop backed by a MySQL or Access database, if it's web based make sure that your name is on the site somewhere and include the URL in your resume as well as having a local test copy on your laptop.

3. Always take your laptop to interviews with you. Make sure it's loaded with code, you have a local copy of MSDN or the JRE runtime reference, or the Python library reference as well (preferably all of them). Be prepared to show off your own code if that answers a question in more detail than you could yourself (Remember - actions speak louder than words).

4. SourceForge projects may be considered lame - but they are very public and it is quite easy to send a link to a list of contributions that you have made. It also shows that you can work in a team, respond to externally submitted bugs and make your own contributions. All of this is important.

As I mentioned earlier I migrated from Uni to the workplace in 1993, since then I've worked from programmer up to architect to my most recent role as manager of Research & Development (while still doing as much programming as possible because that is what I love). The points above are what we look for in new hires - we know that anyone who matches them is destined to become great and well sought after developers and we want them to be working for us rather than the competition.

Anyway - the end result is bring your enthusiasm to the job you go to and no matter what happens don't let that enthusiasm wane. If that means doing projects on the side (commercial or otherwise) so be it.

Regards,
Ghost

Anonymous said...

Great artiecle. From the class of 93 as well... My father laughs at the salaries being paid these days, he coded on a univac in the old days. Be persistent and do not give up.. It is about solving problems.

I have not bought a book in 4 years, I read most of what I need on the web, get familar with google groups when you need to know something... don't memorize a damn thing, your wasting your time, it will change.

Anonymous said...

"read all post from joel"

joel is not as good as he used to be, reaad old post but forget about the new ones

Pablo López said...

Thanks for your feedback Ghost, including the English corrections (I've just fixed them).

When I said "learn English well" I meant "be able to follow a conversation or a book and understand 90% of it and be able to express what you want to say (written and spoken)". You'd laugh a lot if you discovered what "high English level, written and spoken" really means in some countries (like mine).

I completely agree with your comments... great advice for newcomers. What you learn as a student is worth nothing if you don't follow a sensible path and have great confidence in yourself.


And yes, anonymous, I also agree with you that Joel old posts were more interesting :)

Blaxter said...

Living in a country which computer engineering has some recognition, it helps.