Breaking into software development
TL;DR Software developers are well paid and have relatively easy lives. If you want to be a software developer and you have not already done a computer science degree, do a coding bootcamp. I did one and it was great.
I've been a developer for 7 years. I've worked at 4 companies. I currently work at Google, as a startup that I was working for got acquired by them. I consider myself a frontend developer first and foremost, but I do enough on the backend to be called fullstack.
I work mostly in Typescript + Angular these days (though my true love is React, Google doesn't use it) and I've been known to dabble in Kotlin/Java.
Why I wanted to be a developer (and why you might want to as well)
The money in software development is pretty great, compared to most other white collar jobs. This is especially true in the US and in large cities.
In my view, junior/mid-level developers at almost any company are treated better than similarly experienced employees. How well you'll be treated depends on the company. Companies vary the most by:
- Whether you are working directly on a company's product or working for clients on behalf of the company. Clients tend to be more demanding.
- Whether the software you work on is the purpose of the company/a key product versus if it is just a cost centre/supporting the "real" work.
- Size - ScrappyStartup vs BigCorp are very different experiences.
On a more personal level, I made the decision to be a developer after I had graduated and was working for an effective altruist organisation. At the time, the pay wasn't great and I was losing interest in the work I was doing (operations). The earning to give memes were a little stronger then, so I wanted to do something high paying - I also wanted to earn more money to lead a nicer life myself. I tried to break into law, but it a) looked soul-destroying and b) it was hard to get into a high ranked firm with a non-prestigious degree.
How did I get here?
I didn't study computer science at university, I did Philosophy. I didn't go to a particularly prestigious university. I didn't code as a teenager and to this day have limited interest in programming in my spare time.
Yet I made it into software development nevertheless!
I did this by enrolling in a coding bootcamp (Makers Academy).
There are several reasons why these bootcamps are a good bet:
- They will train you to be a junior software developer. You will spend your time just learning to code, from scratch. They do not try to teach you computer science concepts or other things that will not help you get a job as a junior software developer. They do teach you a bit about actually working as a developer, e.g. how to use source control and work in "Agile" frameworks.
- They will actually put a lot of effort into helping you get your first job. They are paid recruitment fees by employers to provide them with graduates, so they are incentivised to do this. Employers are happy to pay because they know that everyone who graduates has been trained up to a certain level and for established bootcamps they respect the brand.
Anecdotally, I have advised friends to do bootcamps over the years and everyone who has done so got a job as a developer and thought the bootcamp was a good idea.
But am I suited for a software job?
The bootcamp should screen you in the interview process. They have some incentive not to let in people who will fail due to their reputation and the recruitment fees they get for placing people.
That said, you should attempt to learn a bit of code before you try to enrol and see how you feel about it. If you struggle, that's fairly normal. If you struggle a lot and literally can't make any sense of anything that can be a bad sign.
It may be worth enrolling even if you think you are not very well suited to development:
- The value of information is quite high if you do turn out to be well suited
- Courses are reasonably cheap in time & money
- You can drop out part way through a course and recoup some expenses
You could learn to code by yourself. I think this works for some people but:
- There is no help with recruitment, and it is harder to prove to potential employers that you can actually code.
- No one will teach you, provide a curriculum or provide any external motivation. I personally tried to learn to code myself the summer before the bootcamp, and failed utterly due to motivation. In theory you could learn with friends or internet communities.
You could do a computer science degree:
- You will definitely be able to get a developer job after doing one! But it will take 3/4 years and be much more expensive
- If you want to shoot for a FAANG company as a first job, then a CS degree is a must
- Plenty of structure and a curriculum if you struggle to self-motivate like me.
For people in the UK, here is a summary of what I see as the main considerations:
|Type||Time cost||Money Cost||Support||Job hunting|
|Self-learning||Up to you||£0||None/Friends/Online Community||Hard without any credentials|
|CS Degree||~3 years||~£28k*||Coursemates and university services||The very best credentials, support will vary with the university careers service|
|Bootcamp||~3 months||~£8k||Coursemates and bootcamp services||Good support, but credentials not good enough for the best companies|
*Not including maintenance loan and not including the subsidy of the student loan rate
I am happy to talk to anyone thinking of doing a bootcamp and to briefly pair program on something simple."It's vital to keep current," he said. "If you don't reconfigure you can't retrain. If you don’t retrain you're obsolete inside a month, and then you're not much good for anything except Heaven or dictation."