How to get your first coding job
Or a better coding job
Žan writes in with a question:
“I just spent many months learning how to code, and now I need my first junior engineer job… got any tips?”
You might find my answer useful, too. 👇
Finding your first job can be a daunting challenge. It involves some luck, a lot of work, and a healthy dose of piss and vinegar.
You’ll find that the best quality to possess is the ability to say “Psht yeah, I can totally pull that off”.
Exact steps vary from person to person and job to job. Here’s what worked for me to get my first paid coding job in high school. Helping out on a PHP interface visualizing some data about nuclear reactors at Slovenia’s only nuclear power plant.
I don’t know if that code ever made it to production, but that fall, it made me the coolest kid in class. 😎
NOTE: This is a cross-post from my newsletter. I publish each email two weeks after it’s sent. Subscribe to get more content like this earlier right in your inbox! 💌
0. Know what you’re looking for
Optimize your early jobs for learning. There’s plenty of time to make piles of cash later… if you’re good enough.
When I say optimize for learning, I don’t mean look for a boss who will hold your hand, or a team that acts like your personal school. That’s just gonna teach you to depend on others.
What you need is a volume of work and a breadth of experience. A job/boss/team that will give you plenty of challenges and patiently give you space to solve them.
You need practice figuring stuff out. The more the better. The more different problems and systems you see, the better you’ll be. The more different areas of engineering you try out, the quicker you’ll get an idea for what you like to work on.
Eventually you should specialize, but it’s too soon now. Try your hand at anything and everything.
1. Build stuff, make it public
You need experience to get your first job. Sounds dumb, but it’s true.
You might even need experience to get an internship. Depends on who you ask and what they want their interns to do.
But fear not! Experience is easy to get.
Build something. Anything. Build a little toy. Build a small website. Build a webapp. Follow a tutorial. Solve a problem. Get an idea. Launch a thing.
It doesn’t matter. Build something. Anything is better than nothing.
When you do, put it online. Add it to your cover letter. Say “Hey I know I don’t have real world experience, but I built this thing. Isn’t it cool? I had lots of fun.”
Extra points if you write a blog post or a Twitter thread about how you built your thing, the challenges you faced, and how you solved them.
Got a take-home assignment after some interviews? AWESOME! Build that, put it online, use it next time.
Your goal is to 👇
- prove you can code your way out of a wet paper bag
- show that you can turn fuzzy requirements into code
- show you finish things
This puts you head and shoulders above the average candidate. Did you know some 60% of software engineer job applicants can’t write a
for loop? Yeah.
2. Tell everyone you’re looking
Know someone in the industry? Tell them you’re looking for a job. Ask them if they know anyone with openings.
Go to meetups. Tell people you’re looking for jobs.
You know that cool thing you built in step 1? Contact meetups and offer to give a talk about it. At the end of your talk, say you’re looking for a job.
Find programming groups on your favorite social network. Ask if anyone knows someone looking for junior engineers.
When you build a thing in Step 1, add a link that says you’re looking for a job. Post it on Reddit or HackerNews or your local favorite social network.
3. Reach out
Doing Step 1 a lot eventually leads to your inbox getting emails from recruiters. I have a special folder these days called “recruiterspam”; sometimes I reply, often I don’t.
The more I do Step 1, the more personal and less spammy those recruiter letters become. It’s cool to observe.
Way back when I was still in college, even Google recruiters reached out to me based on my blog. The onsite interviews were fun, but I said stupid things and didn’t get an offer. Whatever.
Anyway, you’re not there yet. Right now, you have to go out of your way to reach out to companies.
Find who you’re interested in, send them an email. Write a personalized cover letter. Include why you’d be a great fit, some cool stuff you’ve built in Step 1, and end with a question. Make it something that takes less than 2 minutes to answer.
Your cover letter’s job is to pique their interest and start a conversation. If a stranger reads your letter and thinks “Huh, what’s the CTA here? What do they want?”, you have failed at your cover letter writing job.
Have one specific question. Make it fast to reply. The easier it is for them to make the next step, the more likely you are to land that job.
4. The step ladder
Not all jobs are equally easy to get.
Want your first job to be at Google HQ, or at Facebook, or Apple or one of the other big tech companies? That’s gonna be tough. Thousands of applicants for every position, coming from the most prestigious schools in the world. Many poached for internships before they even finish college.
I don’t know how to get those jobs.
If you do Step 1 and Step 2 a lot, eventually their recruiters will find you and give you a chance. I promise you that.
But there are thousands of other tech companies. Almost all companies these days work with software and technology. Find a local startup, offer to help. Find a web agency, or a small business, anything really, and get some experience.
Start with a small company and climb your way up. Those small companies don’t get as many applicants. Your chances are better.
And guess what? When you apply for the next job at a company closer to your dream job, you can say “Look at all this awesome stuff I shipped to production”.
You need practice shipping real code to real production solving real business problems. The more you do that, the easier it becomes to get your dream job.
5. Don’t be afraid of requirements
Companies list crazy requirements all the time. They don’t actually care. They just want to scare you away.
I’ve never had a job or client where I ticked all the boxes in their job ad. Apply anyway.
The better Step 1 and the more promise you show of your ability to Figure Things Out, the more requirements become optional.
In other news…
The greatest hack in history worked! I now have a US visa sponsored by my own company 🤘
7 months of headache, but it worked! So stoked. Gonna write a longer article about that process in the coming weeks.
Also, I taught a sold-out React+D3 workshop at Reactathon. Getting pretty smooth at these. The timing worked out perfect, we did all the exercises, ate delicious lunch at Gusto, walked around in socks because Gusto is a shoeless office, and finished the big main project example on time. Even looked at some fun extras 💪
And I even met a fan! That was super cool. He was as excited as I was surprised that people could be that excited about meeting me. We took a selfie, but I don’t have it.
He says there’s a college in New York that uses my book to teach D3. Pretty cool, I hope it’s working for ‘em.
Oh, and the first alpha version of React + D3 2018 is shipping out today. 😅
A few cool things…
Here’s a few cool things I found this week.
- 60% of npm users use React and some crazy percentage of the JS ecosystem uses npm.
- Try loading your site on 2G. Brian Holt used LinkedIn as a guinea pig in his Reactathon talk. It took over 20 seconds just to show a loading spinner 😅
- The isochronous curve is cool. It’s not coding, but this video will make you think.
- This amazing D3 examples search that @micahstubbs and @enjalot built. 37,354 D3 examples to play with.
- tiny-care-terminal reminds you to take care of yourself when you’re coding. It’s pure ❤️ and party parrots.
Enjoy your week!
P.S. If you like this, make sure to subscribe, follow me on Twitter, buy me lunch, and share this with your friends 😀