This probably ought to have been my first post, but better late than never. One of the hardest parts of being a software developer is getting your first gig, every company seems to want x number of years experience, plus a long list of technologies that you have used, which can be really daunting. It seems especially hard these days, what with companies cutting back during these austerity years, but there are opportunities, you just need to be prepared for them, so here are some tips that I have learnt over the years.
Get coding – The best thing to do if you want to be a developer is to write code. Write things for yourself, do samples, maybe even join an open source project. The more code you write and also read the higher chance you will have of improving your skills.
Be ready for interviews – Interviews for software developers will vary but generally they will expect you to have an understanding of the technology/language that the company is currently using, which could involve you having to take tests, writing code or pseudo-code on a white board, drawing diagrams etc. They will always expect you to talk about your experiences though and this is your chance to show how much you have learnt about development, how you find and resolve bugs, how to deal with customer requests, what to do when it looks like you can’t meet a deadline.
Read up on the company – I know this goes without saying but its really important to try and understand what the company you are applying to is trying to achieve, what sort of problems they are trying to solve and how they interact with their customers. If nothing else looking at their website will give you an idea if its the type of place you want to work.
Don’t be a smartarse – Developers as a rule are know it all’s. They all know better than the guy before and will do a better job than the current staff but whilst its good to be enthusiastic, and show you have great ideas, you don’t want to berate the people interviewing you.
Learn to communicate – I believe that the most important skill for a developer these days, especially in an agile environment is communication. You might be the best coder in the world but if you can’t pass your ideas onto your teammates, can’t understand a customers requirements, or don’t know how to ask for advice then you will have a hard time progressing in your career. Its far easier to teach someone to code than to teach them to be a decent team fit.
Try and understand users – Users aren’t that weird or complicated, they are just normal people like you and me. We are all users of systems, so try and think about the things that you like when you are on a site, or what you find really grating. Understanding this will put you at a real advantage when looking to develop software that people will actually want to use.
Lower your expectations – This may sound defeatist but sometimes its best to accept that your first job may not be at some blue chip company, doing full time development, earning a great wage with all the benefits that go with it. It may be that you have to start in a support role, learning to understand customer requirements and problems, or that you have to do some freelancing for friends to get some experience. None of this is bad though, it will help to drive you on to achieve what you want, plus give you an invaluable insight to how software development works in the real world.
I hope this is at least a bit helpful to someone, software development can be a really rewarding career so if you want to pursue it then you need to get out there and get doing it for real.