So you want to become a better developer? This guide is divided into four parts, the first one (the one in your hands right now) is devoted to people wanting to start a career in software development.
Tips to help you improve are shown in bold.
Vocation And Devotion
You want to try out the profession of software developer for fame and riches. You have heard that recruiters are offering very well paid jobs, and that all of the cool girls and boys are working in the field. So how can you get in?
First let us do some soul-searching. Do you really want to spend your days (and some nights) crouched upon a computer keyboard, letting a screen (however large) be your only contact with the world? Do you have in you the will power to spend countless hours tracking a bug?
Software development is not an easy career to follow. Many people have found that there are other profitable career paths, some of them related to software development: marketing, design, UX, sales.
Is University Worth It?
The profession of software developer here in Spain is taught in "ingeniería informática", which is an adaptation of the french term "ingénierie informatique". In the US there are several universities offering "computer engineering", whatever it is; and some even offer software engineering.
But honestly, any other science-related degree can be good enough.
Not even a degree may be necessary. Many fine developers have just studied secondary school, and maybe earned a title in vocational education and training. Not that University is worthless; but its value depends a lot of what you do with it.
And University is not necessarily the best way to work as a developer. So if you are doing it as an investment and getting into an enormous debt, please reconsider.
There is an easier way to acquire some education and access our noble profession. It is a great day for software development: our skills are in such high demand that many cool companies are willing to take in people that have learned the basics in 8 to 12 weeks. These bootcamps are not cheap though: prepare to pay about a thousand dollars per week.
Intensive courses are not just for outsiders. I have met quite a few people that were already working as developers, and just wanted to recycle themselves in a different field.
How can you know if a bootcamp is any good? It depends a lot on how exigent they are. If they are ready to accept anyone then the level is probably not very high. But if there is a selection process just to get in, and many people are rejected, then you can trust that it will be worth it. Keep in mind that only hopeless cases fail to finish the bootcamp, so any selection needs to be done before it starts.
The hardest aspect of learning a new language, framework or environment is to keep the motivation up. That is why by far, the best way to learn anything new is to start a pet project using it. That is because the project supplies the necessary motivation to delve into new waters, and even to enjoy the journey.
This is also a great presentation card for a prospective employer.
Even if your pet project gets nowhere near your original objective, the learning experience will probably compensate for it.
Pet projects are not just for job seekers; they are great for developers of all levels.
Getting That Job
So you have decided you want a certain job. How can you get it? Julia Grace, Director of Infrastructure Engineering at Slack, says:
[...] find someone at the company (search their About pages, which often have links to employees’ LinkedIn, Twitter accounts, etc.) and email that person asking about the company. I’m not saying you should harass them, just politely reach out, indicate you’re interested in the company, ask for advice on how to apply. Most people want to help.
The whole article is very interesting as it reframes a lot of common points of view.
Do not throw CVs around like it's Christmas; instead, focus on places where you really want to work. Research them, check what they like, what they looking for, prepare for the kind of interviews that they do. Keep in mind that it is better to apply to 5 places thoughtfully than to 100 random companies.
The first decision is if you prefer to work at a startup or at an established company. Take into account that startups will probably offer more responsibility and will have you do many different tasks, while large companies tend to have established roles and it can be difficult to change projects. Whatever rocks your boat.
Many companies will feature coding tests: give you an assignment to complete in a set time. From the point of view of the employer it's only natural that you should show how you build software if that is what you will be doing at work! Each test should not take longer than a couple of hours.
Do your research for an interview. Prepare to show your work, and how you work.
Other companies like to place you in front of a whiteboard, make questions about algorithms and ask you to solve theoretical problems. I distrust these tests; they are nothing like the work you will later do. But hey, if Google do it, then it cannot be wrong, right?
In any case, many people spend months preparing for an interview at Google. It may be worth it given the salaries they pay!
Study how the companies you like hire, and prepare for it.
In this first part we have seen how to start working as a software developer. It is important to choose the right company, or you may end up wasting a couple of years of your career.
The next installment is out! Dedicated to juniors starting to work.