For newbies this is going to be the biggest question after 'what language should I learn first?'
Unfortunately, like that first question, there's no easy answer.
The internet is awash with people bragging about how they were able to secure a job after three and a half hours working with freecodecamp.org (other code learning resources are available), however what you need to consider is:
- What is the situation that person is in?
ie. are they living with the same responsibilities that you are? Do they have the kids and the full time job that you might be having to juggle whilst also trying to change your life?
- Are they some kind of sorcerer?
These people exist. I've seen the Harry Potter documentaries. If you've not seen them, they're a documentary series about a young boy from England that shouts a lot and also does magic.
- What is their background?
Some people will go in to code as a platform from another technical background, whilst others will be coming to it with fresh eyes for the first time. Code isn't easy. It's definitely something that anyone can do with enough hard work and patience, but nobody is ever going to tell you that it's an easy thing to do.
- Do you need to validate yourself against someone else's achievements?
No, you don't. Stop doing that. Yes Karen, even you. Stop it.
So ultimately, you shouldn't be paying attention to what other people are doing. But that still hasn't helped answer the question ...
Next it comes down to where you live, what opportunities are around you and how far you're willing to go to seek these opportunities out.
Some people may find that there are lots of communities around them to help them network and to enhance their knowledge whilst others may find themselves in a much more remote or rural setting where the support isn't nearly as strong.
The point is, it's never going to be a hard rule. I have some opinions which I'll share but that doesn't mean that they'll work for you, same goes for anyone else that claims to be an authority on the subject (editor's note: I don't claim to be an authority on the subject).
- Set a target early on as a benchmark.
This could be something like, building a professional looking, responsive website. Once you achieve that target, you'll be ready to begin building a portfolio and applying for jobs.
- You're never going to be 'ready.'
If I didn't already have a job I'd probably be sitting at home thinking, 'they won't want me yet.' The question of whether or not I will one day get there wouldn't be an issue. My problem would be that I'm not willing to look at what I can offer, only what I can't. Counter this thought process by punching yourself in the face and applying for jobs anyway. Trust me, that experience will teach you so much (editor's note: don't punch yourself in the face, perhaps a stern talking to might work instead?).
- Keep coding.
Literally don't stop. Even if you get the job, keep coding and learning. So much of this industry stems from innovation and in my experience the newbies are the people who've learned about the latest practices and can open the eyes of some of the jaded veterans. Almost everyone in this industry gets excited by something new but we can't know everything all the time so keep going and try to learn as much as you can.
I hope this helps someone. Even if it doesn't. I got to feel really cool by typing super fast for half an hour or so.
How long did it take me??? About 9 months.