I have been meaning to jot down my thoughts on this one for a while, but when I saw this article on First Steps into IT, I figured that there was no better time.
Programming is a tough career to get into. When I was getting into the industry for the first time I was frustrated by what I call the Big Problem. Nobody wants to hire a graduate without any experience, and you can’t get experience without having a job. Catch 22. Or so I thought. So how do you get around this?
You can apply for graduate recruitment. Big companies will do a drive at the end of each school year to get the best graduates. There are two catches,
- It is the best people that they are after. Most people will not get a job that way. Not because they aren’t any good, but because the very idea of best is so subjective.
- If you are the best, this probably is not what you really want to do. Smaller companies will give you more experience, of a better quality. I have found that in big companies, you get bogged down into doing one thing. Why would you want to do that when you can work in a place where you get to do a bit of everything? More on this in another blog post.
On alternative mechanisms.
If you read the popular IT press you will read a bunch of stuff on certifications and how they can help you. Most of these are provided by vendors and in my experience, do not help that much. A couple of reasons:
- Most people don’t know what they are. It’s hard to impress a hiring manager if they have never heard of Brainbench or SCJP. The IT press is a notorious echo chamber. Take everything you read with a pinch of salt.
- It can be pretty easy to find brain dumps of the test questions on the net, so the value of these tests can be watered down. This is a generalization, but true especially in the case of Microsoft certifications.
I have a number of Sun certifications, but they are an addition to a set of experience, that demonstrate that you know a particular technology. They probably will not get you hired ahead of someone with experience, but they might get you over the line if you are competing with someone on par.
Because of the climate of outsourcing in Australia at the time, and a bit of luck, I somehow managed to get myself onto a practical year program that IBM was running for pre-“final year” Software Engineering students. I did some pretty cool basic work when I was there, but it was enough. When I came out of university after I had finished my course, I now had experience, did not have to go through the graduate programs and ended up in a cool job for a small consultancy. This sort of stuff is great if you can get it, but I stumbled upon it through luck rather than any focused plan.
Those sorts of things are the standard options that everyone talks about. We are in the age of participation. Communities are all the rage, and there is nothing to stop you working within them.
Open source. A friend of mine commented that within one month of working in an open source project, you will learn more about technology than in a year of commercial work. The people that you get to work with and learn from are an awesome resource. You will learn about how to structure real world applications, learn about issues in production as well as best practices. You will also make contacts, which are the single most important thing in any career. These people may be able to recommend you to their colleagues, put you in touch with someone doing similar work commercially near you, or they may have work within their companies. Contributing also demonstrates to a potential employer that you are a self starter, and are willing to learn off your own initiative. Find an area that you would like to work in, check out a corresponding project (check out Apache, OpenSymphony, CodeHaus, and other resources like Ohloh for professional open source projects), and kick the tires, write documentation, report bugs, contribute some fixes and you will be amazed at where it will lead you.
Professional networking is the name of the game. User groups are a favourite of mine, as I am involved with running the Java User Group in Dublin. These bring together groups of professionals working in the industry to talk about new technologies, issues and generally to meet like minded folks. We are generally pretty friendly, and won’t bite your head off if you ask us simple questions. The people around you are an invaluable resource. We are there to help each other. Turn up, while you are still at uni. Aside from learning about some cool stuff, there are often guys looking around to take some help on, and they will contact people that they know before hitting the market. Read What Colour Is Your Parachute if you want to know why. Volunteer to help out with the group, take minutes, run their site, help out with podcasts. Once again, engagement is the name of the game. Rocking up and asking for a job at your first meeting though is not going to help you. Sun and Microsoft have associated user group programs that are well represented, and Meetup.com is a great one for finding other developer groups in your area. If there isn’t a users group around you, start one!
Start a professional blog about your experiences with technology, documenting what you are doing, the things that you are involved in etc. Use it as an example of your work, and the sorts of things that you are involved in. It’s an awesome resource to potential employers in the hiring process in that they can find out who they are dealing with. Start a podcast, do some screencast technology demos. Most of all, get yourself out there. People who are excited in technology and participate are the future. 90%+ of the competition will not be engaged in the same way. Get people to want to hire You, not just a butt to fill a seat.
Alternatively, start your own company. Skip the nonsense, do the research, and do it. There is no better way to get experience.
Jumping through hoops for graduate recruitment drives, sitting certifications and applying for jobs randomly (the shotgun approach) are hard work, demoralizing and generally will not help. However, if you apply yourself and engage in community, you will find the start to your career not only easier and more rewarding, but learn heaps of cool things and meet great people along the way.