Friday night, after React Rally 2018, I led a group of intrepid devs to Beer Bar in downtown Salt Lake City for what I like to call "the unofficial after after party". Our group was quite large, so we ended up divided amongst two large tables. Our particular table only had a handful of our group. It was Chris Ball, Gabe Ricard, and myself. The other half of our table was eventually filled with total strangers.
The strangers were legitimately nice. Asked if they could sit there, which of course they could, and then each of them introduced themselves and shook our hands. Very pleasant introductions all around. We settled down and they start talking in their group and we go back to talking shop amongst ourselves.
A little ways into our conversation, one of the strangers, Kevin was his name, hears us talking about coding and politely interrupts us, "Wait a minute, are you all programmers?!"
"Yup. We're here for a conference," we reply with a calmness that belies how excited we are that someone outside of tech is excited about what we do.
This is where Gabe gets all excited for me, "You have no idea how lucky you are to be sitting here," as he points at me. "This guy has a whole podcast about people who have made the change to web development!"
So I told Kevin my best tips, none of them coding specific, and now I'm going to share them with you.
1. Be Ready to Bang Your Head Against a Wall
Learning to code requires a lot of persistence. The only way you'll gain the skills to make the career change is to have the gumption and stubbornness to push through those times where you feel completely and utterly stuck. Sticking with it and overcoming the challenge before you is the only way to achieve your goals.
A guitar player is not ashamed to play the same chords over and over again in order to learn a new song or skill. Don't be afraid to write the same code over and over again until you completely get it. Don't be afraid to read that tutorial two, three, four, five or more times to understand it fully. That's how you make breakthroughs and start heading for your next wall.
2. Be Ready to Constantly Cycle Through Feeling Like a Genius and Feeling Like a Dumb Ass
Every programmer out there is familiar with feeling like a genius one moment and a complete dumb ass the next. This cycle repeats continually throughout one's career. The difference between the newb and the seasoned veteran is that the vet has done the cycle so often that they no longer fear it, and in fact embrace it.
Being a developer means going through waves of competency and struggle. As painful as the downswings might be, it's a clear indicator of previous growth. Being aware of this phenomenon, and being mentally prepared to handle it, will keep the bad parts of the cycle from crushing you. Awareness has the added benefit of keeping you humble while on your next upswing.
3. It's Probably Going to Take Longer Than You Thought
We've all heard the story of so-and-so who was able to change their life entirely in just three months. That spunky person who went from minimum wage to six-figure salaries over night, all by learning to code.
This is the exception, not the rule.
The rule is you will in all likelihood, eventually make a pretty good salary. The rule is you will likely get benefits you enjoy and find some decent challenges to overcome. But it often doesn't happen over night.
I think you should expect to put in about a year and a half of solid coding, that is doing some amount of coding, deliberate practice, most days for that time. It's not that you're not smart enough or capable enough sooner, but that a year and a half is about the amount of time it often takes to be comfortable enough with your new skills to pass an interview, build up enough projects to prove your new skills, and probably build up a network enough to even have places to apply. Be patient with yourself. You can do this.
Bonus Tip: Start Networking Right Away
Speaking of networks, you should be doing this from day one. Networking isn't a sleazy thing to do. It's not just about helping yourself, it's about recognizing that everyone needs someone sometime. You may need help now, but soon enough someone will need your help instead.
I recently read a great analogy for networking in the book Designing Your Life. Networking is more like asking for directions than asking for handouts. Almost everyone is more than willing to help someone else find their way and feels good about doing it. Have some faith this.
You can start networking by participating, not just lurking, in conversations. You can reach out for informational interviews, aka conversations where you ask someone to tell you about what they do. You get the benefit of learning details you can't learn otherwise while building up professional relationships. That's a win-win situation.
Making a career change is challenging. It's going to require persistence, patience, and probably some outside help. Don't be afraid to ask for it. Start developing relationships as soon as possible with people in the industry, it might lead to your next opportunity.
I don't normally do self-promotion in my material, but if you want to listen to a podcast devoted to this topic, check out my podcast Second Career Devs, where I interview people who have made the career change to software engineering or web development and share the lessons they learned along the way. Thanks.