I firmly believe that whatever your age or current level of ability is, if you try coding and find you have even a spark of passion and motivation, a career in software development is open to you, should you desire it.

While it is advantageous to start coding young, with dedication it is more than possible to transition into a software development career at any age.

The aim of this guide is to give advice on what the optimal route into such a career is and is intended for people trying to better themselves through a new career or for those looking to motivate people around them who are lacking a career direction.

6–12 years old, interested in computers.

These is a huge range of ‘Programming for kids’ related material out there. Its well worth getting children who show aptitude started early with something like http://www.helloruby.com also Linda Liukas did an excellent talk on the subject at Bath Ruby 2015.Also check out if there are any young person meet-up groups at https://coderdojo.com/

13–16 years old

At 13–16 enthusiastic youngsters can begin working towards their careers. They can start free Ruby courses such as Code Academy and playing around with programming in their spare time. They should register Github profiles at this point and begin to put what they are working on there (it will look great in the future when potential employers can see they have been taking this seriously since 14).

School wise, they should prioritise Maths, Science, Physics, Computing & English as these will be most valuable to their future career.

Outside of school, if they can, engage with the scene, attend meetups if they allow under 16s (take a parent or guardian), read tech blogs such as Tech-Crunch and take an interest in the over-arching industry outside of programming. Attend https://coderdojo.com/ meetups if there are any near you.

Its not unheard of for youngsters at the upper end of this age range to begin to get low-level freelance work or part-time jobs doing some coding. This is excellent.

16–18 - A-level/college student.

Definitely do A-levels, there’s no point in dropping out and taking a job right now even if they are available to you. A-levels are free. Take Maths, Computing & Physics if you feel its not going to melt your brain. Alternatively, Computing + two easy subjects will suffice. If you’re already underway with your A-levels and you didn’t pick related ones to the IT industry, its not a problem, just start coding using the various tutorials online. If you’re really smart, you can start to look into the advanced stuff such as the computer science stuff at https://www.edx.org/

University

The benefit to completing a University Computer Science course is that it will help you get your first job. After your first job, all that really matters if the quality of your commercial experience therefore, if there is a way to get your first commercial gig and circumvent university, this is often the best route. Yes, in some instances a Computer Science graduate Rails developer will have an edge over a graphics designer who converted to Rails as they will have a deeper understanding of Computer Science concepts, but this knowledge can be attained through far less expensive means.

If you’ve 18 and have been coding since you’ve been 16 or longer and have been working at it, you may well be fairly employable and could potentially get a £18k-25k junior role. If this role happens to be at a team with mid-level or above developers who have at least relatively good coding practices, this will likely be more valuble for you then University. Supplement what you learn in your job with some Computer Science books from the reading lists of a few University courses and attend lots of meet ups. Over the course of 3 years you’ll likely be on £40k+ and approaching mid-level. If you go to Uni, when you finish at best you’ll land a £20-£30k junior role.

Commercial programming experience trumps academic experience plus you get paid for it. Supplement commercial experience with self-directed learning and university makes no sense. You’re paying £9k a year + around £4–5k in living costs = £39k debt over three years. If you get yourself into a state where you’re employable at the end of your a-levels, by a conservative estimate you’ll make £20k first year, £28k second year & £35k third year. That’s -£39k vs. +£83k.

What’s more is that there is a movement to Opensource university education. Places like https://www.edx.org/ offer university level courses for free.

However, all this is not to say university is entirely useless. It is beneficial in the following instances:

• You didn’t go above and beyond during pre-university and you’re not at a level where you can get a commercial job. To put the effort required to be at an employable level without university requires a level of motivation, discipline & focus not possessed by everyone. University will assist you in getting your first job, it’s just not the optimal route financially & time efficiency wise in many cases.

• You are keen on experiencing university life for a few years. Being able to doss around in your first year, join a bunch of clubs and societies and have a bit of fun for three years is nice, however, while in my day I only paid £1.5k/year for this privilege, the current £9k /year price tag now makes this prospect significantly less attractive. A more affordable solution to attain the same experience may be to become a holiday rep in Ibiza while engaging with a subreddits with people keen to talk about Jeremy Corbyn.

18+ NEET (Not in Education, Employment or Training)

If you didn’t get on well with school, or perhaps you went to university did a humanities degree and you’ve found yourself long term unemployed, claiming jobseekers allowance and still living with your parents: Congratulations you’re in a great situation to learn to code. You have unlimited free time and all you need is an internet connection and a cheap computer to start learning. The main obstacle that is in your way is lack of motivation and lethargy that long term unemployment can create. Fight that beast and you can be gainfully employed and on a lucrative career path within a 1–2 years if you work at it, plus you can keep your mum off your back by telling them that you’re doing something useful and productive with your time.

Everything you need to know is online and available for free or for very cheap. See links at the bottom to get started.

Unlimited help is available on IRC, Reddit, stack overflow etc. Get to know the online community and how to ask for help and direction. More senior developers love helping junior developers as long as you’re humble, polite and don’t act entitled.

Once you get a bit competent, start contributing to open source projects and create open source personal projects surrounding your interests or things that people you know might need. Put it all on your Github profile.

You’ll probably be concerned about what people might think about the gaps in your job history, but essentially your new CV will read “I’m a self-starter, self-taught coder looking for my first commercial job. To see what I’ve been doing for the last 1–2 years check out all these projects I’ve been working on my github profile.

Check your city for meetups (list). You’ll learn things at them, you’ll have things to talk about at interviews, you’ll meet people and get seen, you’ll show you’re enthusiastic and you’ll get free Pizza & Tee-shirts (helping you save your scarce NEETbux from the government). If you can make friends at meetups of established developers who will take you under their wing its only a matter of time until you make it. To do this, make sure you’re positive, enthusiastic and energetic, act humble, don’t act entitled or a value leach.

Look for free junior/entry-level coding workshops. Roughly half of these are egalitarian, but often those that are billed as women or transgendered people only will open up their spare spaces to everyone. If you don’t fit the required gender profile for them, its always worth sending a polite email explaining your situation and asking if you could be considered for attendance.

Check out conferences, often they have free or greatly reduced tickets for people in your situation, sometimes there are even giveaways offering free tickets + travel.

Keep a blog from day one detailing your learning. It will serve as a personal diary and keep you motivated, aid in reflective learning and digesting new knowledge, but also serve as an evidence log to potential employers on how you’ve gone about things and how dedicated you are.

Read Blogs (https://blog.newrelic.com/2014/04/25/ruby-developers-to-follow/), Podcasts (https://www.netguru.co/blog/top-7-ruby-on-rails-podcasts), newsletters (http://rubyweekly.com/), YouTube videos (https://www.youtube.com/results?search_query=ruby+conference+2015) etc

Learn how to learn and explore the Ruby Sphere. There is litterally everything you could ever need on the internet and there are more groups, online & offline and help then ever available. Be resourceful and take advantage of everything that is available to you. Great talk on this by Saron Yitbarek

Sometimes you can get free access to Open University courses if you’re on Jobseekers.

Transitioning from another Career

In some ways you’re at a disadvantage to the NEET in that being employed means you have less spare time, but there is the old axiom of, if you want something done, give it to a busy person. You may have the edge over them in terms of motivation.

Basically, all the above applies, but you’re going to have to focus on time management and do a lot of learning at weekends. If you’re working for a company which can allow you to do some development (such as, you work in tech support and they let you code a new ticket system for them) or you’re working a job where you can spend time learning (i.e. night security guard) then that is beneficial.

Depending on your career you may need to take a salary drop in order to get your first job, however if you have some valuable skill to a company (law experience, project management, accounting, marketing, sales etc) and you can negotiate some sort of role where you’ll leverage your existing value in return for a reasonable salary and a percentage of your time spent developing you can sometimes get away with a smooth transition without a significant salary decrease.

Non-Academic paid real life Ruby Courses

There are a variety of Ruby & Javascript Courses which have sprung up in the last couple of years. They roughly cost around £6–9k and last around 3 months.

+ You will likely accomplish more in 3 months on one of these courses then you will coding for 3 months on your own. You’ll get direct immediate feedback and someone watching over your shoulder when you do something wrong.

+ If you struggle with motivation, having a central place to report to every day and a teacher helps. Also if you’ve invested £6–9k you won’t want that money going to waste.

- Hiring managers for Ruby positions get inundated with CVs from people who have only completed these courses. The feedback on these people is usually: “Too junior, not enough experience”.

- These courses are often marketed as “do this three month course and you’ll be a fully-fledged employable developer at the end of it”. I’ve found this only to be the case where the student has had significant prior experience and the course has served as a finishing school. In the majority of cases graduates from these courses need another 6–9 months of self-directed learning before they are truly employable.

- If you’ve got motivation to learn and stay focused, it may be worth just saving the money and knuckling down.

What to do when you land your first job

Getting your first job is the hardest thing. Once you’ve got your first job you’re looking at roughly +£6-10k a year salary increase all the way to senior.

Sometimes your first job might not go according to plan. Its not uncommon that startups, especially early stage ones with inexperienced people in charge of the technical team will enthusiastically hire entry level developers in the hopes that they can somehow make the whole operation work. These companies can fold, or realise that the people they have hired are not experienced enough for what they need and there isn’t enough time to mentor them. You may find yourself unemployed again. This is not the end of the world and you definitely shouldn’t reject these jobs if they arise as you first entry level roles are sparse. If this happens to you, and you get fired or the company folds before you’ve had 9 months or more experience, don’t get discouraged, just have to start again at the “find an entry job” stage.

The optimal first job is with medium to large well known, financially stable, established Ruby team with a good selection of Mid & Senior developers to mentor you. This isn’t going to happen in the majority of cases but this is the best case scenario.

Absolute worst case scenario, you don’t get an entry level job and you just keep plugging away and coding personal projects until you can take a Junior role.

In the majority of cases, with the required amount of effort exerted, people starting from zero find themselves in a good stable job in roughly 1 year.

Useful Links:

http://tryruby.org/ - Great place to try Ruby to see if its something you could get into.

https://www.codecademy.com/learn/ruby -Another good Starting point

https://www.edx.org/course/introduction-computer-science-harvardx-cs50x - The entire introduction to Computer Science from Harvard for free. Excellent presentation and enjoyable. Not in Ruby but great for learning Basic concepts

https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-2 - If you can’t afford a Mac take the intro to Linux as windows isn’t ideal for programming.

https://www.reddit.com/r/learnruby/- lots of help available here should you need it.

Thank you to @styrmis for proof reading and suggesting 2x Bath Ruby Conf talks.

About the author: Louis Goff-Beardsley is a scumbag recruiter who produces dank OC to trick developers into working with him. If you feel your career would benefit from speaking to an autist fixated on the Ruby jobs market, feel free to drop Louis a line on louis@infinitiumglobal.com,+44 (0)7449324851, or 24/7 on Skype: LouisGB1. You can also add him on Linkedin or follow him on Twitter