How can I become a professional developer?
Becoming a professional developer isn't for everyone. Before you embark on this journey, you need to work out whether this is the right path for you. What makes you so sure that you want to become a professional developer? Have you got what it takes? Here are the skills I think you need:
- The ability to learn concepts and apply them to other problems.
- Basic mathematical skills.
- A passion for problem solving
- Good communication skills
- Good writing skills
- Confidence around a computer
- An inquisitive mind
Read my post What skills do you need to be a programmer / developer? to find out more detail about each of these points.
Yeah I've got skills...
OK, so you think you're made of the right stuff and you possess the necessary skills. That's fantastic! My first tip is to always believe in yourself. You need to picture what it would be like to be in your dream job as a developer and focus on that to motivate you.
You need to push and challenge yourself constantly. Don't be afraid to make yourself feel uncomfortable, this is how we grow as people. Read my post Do what makes you feel uncomfortable to find out more about this.
Do I need a degree in computer science?
Degrees used to be more important, but nowadays what really counts is knowledge and experience. Of course, many companies out there do require you to have a degree, but that is probably because of the number of people they get applying for roles, it helps them to filter people out. Too bad for them if they miss out on skilled people because of it.
What area of development should I focus on?
This is completely up to you. My best advice for this question is to tell you to focus on the area you are most passionate about. I would suggest you try all areas if possible in your free time and see which one has you coming back for more. I personally prefer to focus on Web Development and specifically back and middle end web development. What I mean by that is I like to take a website which is static, looks great, but the data doesn't change, then I make it dynamic. I'm interested in the data capture, storage and presenting it back out to the user.
You may be interested in the front end. You may enjoy the pleasure you get from turning a designer's vision in a photoshop design into a website which looks exactly like the design. This isn't exclusive to web development, you might want to work on mobile applications.
There are many different areas of development. I used to work as a Software Engineer at a construction company and there was a lot of maths based calculations which needed to be done. We were writing complex algorithms to assist the automation of drawing out engineering designs.
Which programming language should I learn?
This depends on whether you just want to know which language will help you get a job, or which language will you enjoy the most. The important thing to remember here is that many of the languages are very similar and once you learn the concepts from one, you can apply what you know to other language. Java is similar to C# but C# has more syntactic sugar. C is currently the top programming language in terms of popularity worldwide, but Java is a close second. Take a look at this interactive app showing you the popularity of programming languages in 2016.
There are all types of jobs out there for all different programming languages. If you're still not sure which language to pick, take a look at the available developer jobs in the location you want to work and use that as a guide to see what language is most in demand.
How do I get experience if I haven't got a job as a developer yet?
Here are some ways you can get experience as a developer before getting a job as one:
- Look for local sports teams or small companies who need a website and build one for them.
- Create a GitHub account and join in with developing some open source projects.
- Look at processes or systems in your daily life which could do with some automation and create a program to do it for you.
- Create a mobile phone application and get it published on the App stores. This experience would be extremely valuable and would set you apart from other developers.
- Go to local meetups or hackathons and get involved there.
- If you can afford to, volunteer at a local tech company for free, so you can gain valuable experience, learn how to be a developer and hopefully show how much of an asset you are.
- Take some online video courses to learn about the latest technologies and frameworks.
- Join sites like Stack Overflow and start answering some questions on there.
- Sign up to sites like CodeWars, Project Euler, CodinGame There you can practice your coding skills by attempting to solve the problems. These problems can relate to real life programming problems and would also be useful for practising for the technical interview test.
- Join sites like TopCoder where can compete against others and get paid for the code you write, if it is selected.
- Stay up to date with the latest technologies and practices by listening to podcasts, check out this list of my favourite developer podcasts.
- Watch free developer videos on Channel 9 to teach you about the latest technologies.
How do I stand out from the crowd to get an interview?
You should be working on your personal brand as a developer. This will stay with you throughout your whole career. If you were a business, you would want your customers to recommend you to others. You would want them to say how outstanding your level of work is and how you are so easy to get along with. If you keep this in mind throughout your career, before, after and in between jobs you won't go far wrong.
If you don't have one already, create a profile on LinkedIn, you will be able to connect with other people you have worked or studied with and other people in the industries and companies you want to work in. You can add your education and work history to your profile and even get endorsements from people you have worked with. Make the most of the LinkedIn Groups, some groups have hundreds of thousands on members, you could get noticed by participating in discussions.
Avoid the temptation to call yourself a Full Stack Developer. There is no such thing as a Full Stack Developer, it is a term created by recruitment companies who are trying to make their candidates sound more appealing.
You should definitely put time into working on your Curriculum Vitae (CV). The way my CV is structured is as follows:
Structuring your CV
This is where you put your 'Elevator Pitch'. Your short paragraph telling the reader who you are as a professional and what makes you stand out from other candidates. Assume they are not going to read further than this unless you hook them in.
In this section I write a bulleted list for all of my Key Skills. You may want to tailor this to the job you are applying for. There may be some skills which are relevant to one job but not to others.
I title each position with the Job Title - Company Name - Date Start to Date End
I then write a list of key achievements from each role. This may be different to what other people tell you, you may be told to write a paragraph for each role, but I think it is better to save the reader time and get the key points about that role. It might make them interested to know more and they can refer to it in a interview.
Another good reason for doing this in a list style is so you can take your CV with you to your interviews and use these lists as pointers and reminders for you if you are struggling to think of examples.
A brief list of where you studied and what qualifications you achieved.
List out the things which interest you, what are you hobbies, what do you like to do outside of work?
Let a recruitment agent do the hard work for you
When it comes to being noticed and standing out from the crowd to get an interview, it would be a great idea to get a recruitment agent on board. They can represent you to potential employers and will be able to help sell you as an individual and a professional. They are free for you, they just charge the hiring company a commission for finding you. Read my post about what makes a good recruitment agent to help you with this.
Have you got any tips for the interview?
I personally enjoy the interview process, I thrive on the nerves and energy which builds up from the pressure of the situation. Everyone is different and I appreciate that.
Here are my top 10 tips for being outstanding in an interview:
- Research the company
- Dress smart
- Arrive 15 minutes early
- Use positive body language
- Take notes in with you
- Show them examples of your work
- Have some questions prepared
- Ask to be shown around after the interview
- Enjoy it
You can find out more detail about each of these points in my blog post 10 tips for being outstanding in an interview.
Over to you
This post should give you some good food for thought on how to get a job as a developer. If you need any specific help, please feel free to comment below.
If this post does help you to get a job, I would love to hear from you in the comments in the future.
Please share this article with your friends or colleagues if you found any of it useful.
A .NET Web Developer from Derby (UK) who specialises in building Content Management System (CMS) websites using MVC with Umbraco as a framework. Paul is passionate about web development and programming as a whole. Apart from when he's with his wife and son, if he's not writing code, he's thinking about it or listening to a podcast about it.