Congratulations, you’re graduating! Well, maybe - because increasingly, you don’t need a degree to become a successful software developer. However - mortarboard or not, if you’ve landed at this article you’re probably considering taking your first step into software engineering in some form. Welcome. You’ve chosen a noble path.
The development talent pool varies wildly in quality. The web and software development industries are growing at an alarming rate - which means there's lots of work, and plenty of tough problems to solve. Particularly if you're close to a tech hotspot. Having said that, there’s also lots of competition for the best positions - and that’s why it’s really important to make the best impression you can when you get an opportunity to move into a new position.
As someone who regularly hires, there are a number of things I really like to see when meeting new (and veteran) developers. Take a look at a few of my interview tips - hopefully they’ll help you edge your way above the competition and into a great new web development role!
Despite the stereotypes, there are very few development jobs that see programmers writing code in the dark of some fusty basement, without ever coming into contact with other human beings. Although that might be the dream, it’s just not representative of working at a creative organisation. What I'm really saying is that you’re probably going to spend just as much time programming as you are communicating with other people.
That means that being able to write politely, clearly and concisely is hugely valuable. The quality of written communication can completely shape other people’s professional and personal perceptions of you. It’s not a skill that everybody naturally possesses - but with a bit of practice, it’s very useful and very transferable. If your career progression is going to eventually move you towards technical management, you can guarantee you’ll probably spend a healthy slice of your time communicating complex technical information clearly and diplomatically to a range of different stakeholders, all with mixed interests. Being able to do that quickly and unambiguously is efficient, both in terms of time and associated cost.
Confidence and presence
Remember - the interview process is just as much an interview for you as it is for your potential employer. With technical skills, you’re a marketable, valuable commodity with revenue earning power. Presenting yourself as someone who can solve problems confidently - after all, you’re the expert - instills confidence in your abilities and leaves a lasting impression. Don’t be intimidated - make it clear that your skills and personal qualities will contribute positively to both the organisation’s environment and bottom line and that you’d make the most of an opportunity to prove it.
Now that I’ve tenderly massaged your ego by telling you you’re the expert, remain sensible. There is a small, die-hard section of the development community that acts like being a better developer than someone else is the same thing as being a better person than someone else. Wildly incorrect. Do not, under any circumstances, become an unapproachable, programming high priest that everyone else has to work around. The way that you treat people who are less technically capable than yourself is a solid representation of your personal qualities. Why don’t they know what you know? Because newsflash, genius, it's your job to know - not theirs. Why would you be hired otherwise?
Passion and enthusiasm
Showing enthusiasm and passion for technology demonstrates that you’re naturally inquisitive and interested in your field. Have a Github profile with some personal projects on it if you can, and be able to answer some questions on your design decisions. It's really important to demonstrate that you're the kind of person that can get things done - showing some passion for great work puts a positive impression in an employer’s mind straight away.
Positive mental attitude
Like most of these tips, this one’s quite basic. Positivity, a can-do attitude and some natural motivation go a long way to showing that it’s going to be relatively easy to work on tough technical challenges with someone, without them disappearing into themselves when the pressure’s on. Of course, that’s not the same as the assumption that a hire should automatically know everything - that’s impossible and illogical - but having the drive to take an educated guess, make a concerted, quality effort and then be open to constructive criticism are absolutely invaluable. Don’t underestimate the power of positivity.
The dreaded 'technical' interview
We rarely actually hold the feared ‘technical interview’ at Onespacemedia - instead choosing a series of informal interviews, and then sometimes the evaluation of a programming task to be completed in a candidate’s own time. There are all kinds of reasons that we don’t put people into the sorts of pressured interview situations that many companies do - but I’ll cover that another time.
So, interview here, and we’re not usually going to ask you to construct some sort of puzzlingly complex algorithm in a pressured environment. However - there are lots of companies that put candidates through their technical strides at the interview stage. They can certainly be tough - but the good news is that there are a few things you can do to strengthen your chances.
- Refresh yourself on the basics - Prepare for the interview by making sure you’ve got a firm grasp on your fundamental programming and database constructs. There are lots of sample questions out there, and many of them surface repeatedly in slightly different formats in technical interviews. Knowing the useful, time-saving features of your chosen language can also be useful - there’s usually very little point in re-inventing solutions to problems that have already been solved.
- Try to relax - Unless the interviewer is some sort of social sadist (and if that’s the case, why work there?), remember that it’s just an evaluation of your skills and problem solving chops. They’re not generally trying to catch you out - that’s not constructive.
- Be honest - Don’t pretend you know more than you do. If you don’t know something, just say so. You might not score full points for being able to immediately solve the problem, but proposing the best way you think and then asking the interviewer for their solution goes far in showing your enthusiasm for learning.
- Think out loud - Explain your approach clearly as you work through the challenge. Your first ideas are rarely your best but it’s vital to show your thought process and the ideas you’ve explored as you navigate the issue - and ultimately, expose some of your expertise and problem-solving savvy in the context of a set question.
- Analyse the bigger picture - Unless you’re working on very niche, specific, large-scale problems, software engineering is usually far more heavily geared towards solutions that are clear, scalable, and that can be picked up by somebody else, rather than constructing the most beautiful piece of code ever created. What does this mean practically? it means that you shouldn't be scared of challenging your own solution. Ask yourself some questions. Does it have a clear architecture? Can it be expanded upon easily? Which parts could potentially be improved on, and how would you resolve those? How would you explain the solution to another programmer? Demonstrating these kinds of considerations expose the fact that you’re not just a code cowboy throwing their first ideas at tough challenges, for them to unravel days later in production.
Finally, I always find that it's great to have a preview of a candidate's personality. After all, we could all end up spending 8 hours a day together - and having a glimpse into someone's personal qualities helps to really round off an application and help understand how a new hire will fit into the existing company dynamic. So go for it - take the opportunity to prove that you're not a corporate drone!
Hopefully, with a peek into what we're looking for, you'll be well set up to take your first steps into an exciting, fulfilling position. And if you're really talented and fancy a chat about working at Onespacemedia, get in touch!
Follow us on Twitter.