Whilst running the MidlandsJS meetup, I've been asked a number of times how to "get into" software development and the industry at large. So that I can clarify my own thoughts (and update them), here is my advice.
But, here are two points of advice that I preface my practical advice with:
- Don't take any one's advice as gospel - All advice is given from that persons perspective. They are not to be blamed for this, but rather use their advice and experience to plot a course for your own path.
- Don't pay too much attention to how people got into the industry - There are a million and one ways to learn software and get a job in the industry. I personally fell into a little "analysis-paralysis" looking at what the "best" way to get into the industry was. The truth is, it doesn't matter. Do great work and work hard and you'll succeed.
With that said, here is the steps I would take if I were getting into software development.
1. FreeCodeCamp
It shouldn't be required that you need to pay for loads of courses to get into software development. FreeCodeCamp is an amazing free resource where I learnt to code myself. They've changed the course since I took it, but the principles are the same. As with all learning, it's easy to power through all the lessons by googling the answers and asking on the forum. I'd strongly advise against this. You'll ultimately learn nothing and be only fooling yourself later on in the process. If you do need to learn quickly then I'd advise skipping over lessons and then coming back at a later date. Try to learn slowly, take notes, build the projects and have fun doing it.
2. Basic SQL and NoSQL querying
A large portion of learning to code focuses on the code part, but in reality the critical part is the data. Once you've got through FreeCodeCamp and got a couple of apps under your belt. Start to incorporate more SQL and NoSQL querying and integrate them into your apps. For example, if you've created a Todo app that stores the data in state, try to port it so it can store data in both MySQL and MongoDB.
If you get great at SQL, you can become an indispensable asset to any company. I recommend setting it up on your own PC and reading sqlzoo.
3. Get a Job
If you've learnt to drive, swim or ride a bike, you know that it's only through hours of practise that you fully master something. Looking back, I'm sure you remember many times where you fell off your bike, got a bit out your depth in the sea or crashed your car (I did, twice 🙈). The initial "learning" stage is where you form a basic understanding. In the same way, once you've gone through FreeCodeCamp and SQLZoo, you won't really know how to code, but you'll know the basics and that's all you need to get a junior programming job. So, don't be afraid to just dive in. Don't wait to "know" a technology or software at large - it's an endless journey.
It's a whole other article to discuss how to pick out a junior job, and how to apply for them. But principally, try to get your foot in the door somewhere, anywhere. It will 10 times more challenging to find your first job than your second. Wherever you land, be humble, learn something from everyone and keep up with building new projects and contributing to open source.
That was the advice I wish I had been able to tell my 17 year old self. I hope you are able to take something away from it. Feel free to contact me via twitter - @joshghent and I'd be happy to help with any questions you have.