Career advice to graduates

My career advice to graduates is simple: get technical, and get good at it.

The world of development is changing. To get my first few programming jobs, I had to tell someone where I expected to be in five years, what my greatest weakness was and explain how many petrol stations are in London. Simpler times. If anyone asked me such Interviewing 101 nonsense now, I'd be worried the job was going to be coding VB6 and repairing the fax machine.

The thing is, back in the day software development teams in smaller companies were typically run by a project manager, who'd either been helicoptered into development from a separate PMO organisation or segregated early on into a "management fast track". If you were lucky you'd get a programmer or sysop who'd played the game right, but by and large your immediate boss had no clue what you were doing - and thus was unable to give a meaningful technical interview. Which is why you get asked how to weigh Mt. Fuji, rather than asked to write some code.

Things have changed. Project managers have given way to platform leads, technical architects and heads of development. To some degree I think it's gone too far the other way, and not enough weight is given to the skills of managing and communicating with people, but for graduates that's immaterial. This is the world you're going to enter, and as a result you need to be technical and good at it.

As an interviewer, I am going to ask you to step up to a whiteboard and write some code. I'm going to ask you to design classes or databases. I'm going to follow up with questions that require you to reason about those structures or correct weaknesses in them. For new graduates I can be more lenient, but when it comes to senior developers and technical leads I expect you to be able to answer these things.

Which is why I've written this. I see too many candidates who've put their energies into being head of this committee or leader of that initiative, yet crumble when I ask them for the most basic recursive implementation of a Fibonacci sequence generator. Which is tragic because ten or fifteen years ago that would have been an effective strategy, and I get the impression that careers advisers still recommend it. But not any more; technical interviews are tough, and the higher up the ladder the tougher they get. (I can tell you from experience that getting a technical architect position is far from trivial.)

Get technical, get good. Oh, and it helps to read Cracking The Coding Interview as well, especially if you want to work at the Facebooks and Googles of this world.