I wanted to put in a post here, because I have been working extensively with people who really want to break into web development, from those not yet doing it professionally, to those looking to grow from Junior Developer, and those who I am (in my spare time) mentoring. I find myself giving similar advice quite frequently, so I wanted to summarise here;
It takes time, patience, and passion
I know when I started my career at a trainee, and even before that, I had to put in my own time. What my first job gave me was exposure to a real-life team of developers, who gave me some great advice; some of which I still lean on today.
Your job may entail HTML, or you may be doing spreadsheets as I was, or you may be doing testing; but if you’re surrounded by developers who have lots of real world opportunity to learn. Take advantage of those developers, good developers love sharing their knowledge.
Don’t get distracted by shiny new tech, nail the basics
I read lots of CVs sent to me when I am recruiting for new roles. The worst thing you can possibly do is list lots of awesome new stuff on your CV, when you’ve yet to nail the basics.
The reason for this is quite simple; if (as the ops guy) I can’t trust the quality of your code on basic jobs, you’re never going to get the opportunity to demonstrate your new tech.
If you say you know it, either honestly say you’ve got “some exposure” to it, or a sentiment to that effect, or know it to the level where you’re comfortable demonstrating your knowledge in a competency test.
Learn from reputable sources
Any developer will laugh at this, but if you’re new to the industry you might not know; pay no attention to W3 Schools (or W3Fools as it’s often, less than affectionately, referred)
Depending on what you’re learning Codecademy is a good bet, as are Laracasts and Vue School – if you have someone to whom you look up, who is guiding you on your journey, give them a shout and see if they’ve heard of the site.
On the same token, be wary of Stack Overflow, Reddit, and other community sites. Firstly they can be absolute flamefests, especially for new developers. Secondly, you don’t necessarily know the experience and background those developers had, and even if it sounds impressive, it can be deceptive.
Understand the importance of commercial experience
This sounds really harsh, but I don’t mean it to. You may well have built something amazing in your spare time, but unless it’s reached commercial success and has been run as a commercial development projects; the experience isn’t necessarily that relevant.
Commercial development is far more than writing code. It’s writing it, maintaining it, ensuring it’s stable, robust test processes, client/stakeholder requirements, technical constraints, commercial and time constraints; and so much more.
Don’t be offended if someone discards most of your “spare time” experience.
Everything is a learning opportunity
Failed a technical test? Great! That’s better than passing it when you were sub-par, make notes in the test of what you didn’t get right, make sure you know it next time. Often it will open up a new avenue of knowledge you’ve yet to gain, and that’s a good thing.
Learn raw first
Finally, don’t give up
Learning tech comes with a cycle “this looks amazing!” – “I nailed it!” – “oh, wait a minute, maybe not…” – “What is wrong with this thing?!” – and if you persevere “this is so much more awesome than I realised!”
So don’t give up on your career or learning tech. Keep going, and know when to ask for help. Nothing worth learning is easy, progress does not come for free, and you’re building a career. So take a breather, get away from your screen.
Caveat: Burnout is bad!
Burnout is a real thing, and is bad. If you’re finding yourself getting stuck and frustrated avoid staring at your screen for hours. Go and do something, anything else. Swim, gym, walk, sleep, listen to music, get away from your screen.
Also, do make sure you leave some time at least every week to do something “just because”. Don’t obsess over the code, it’s not going anywhere, burnout will reduce your cognitive ability, and will make it harder for you to solve the problems you’re having.