“What language should I learn?”
“Should I figure out how to write tests?”
“What programming book should I buy?”
These are questions that used to appear in my inbox and Twitter mentions on a daily basis. I used to respond with a series of follow-up questions like “why do you want to learn?” or “what do you want to build?” The answers varied, but the result is typically the same. The person who reached out would say thank you and occasionally update me with their process.
My inbox was getting difficult to keep up with, so I started inviting people to chat with me on Slack, and started a beginner friendly mentorship porgram.
Slack made it easier to answer questions in bulk at my convenience. It also meant that fewer questions were being asked. People could hop into channels like #careertalk, find the answers they are looking for, and I was no longer the only person answering them.
Last night a hopeful code newbie reached out to me. I gave her advice I thought she wanted. This framework, that language, these books. Somewhere between typing Sandi Metz and Martin Fowler, I realized I was answering the wrong question.
According to Jay Abraham, when a person goes into a hardware store and asks for a drill, they don’t want a drill. They want holes. How you give them the holes is up to you.
Technology is always changing. You learn Ruby on Rails, but end up taking a job writing Ember or Haskell. You read one person’s way of developing code, but you’re dropped in a code base where those techniques just won’t work.
Answering their drill questions wasn’t going to be as useful to them as I thought.
So, if each question is the drill, what was the thing aspiring developers wanted to know?What people really want to know when they shoot me an email or slide into my DMs is:
“How can I become a strong junior developer?” Here are five ways to do that.
1. Go to a tech conference and hang out it the halls
You should absolutely go to the talks, and learn all of the things. But, hanging out it the halls is where you’re going to find out how people feel about languages, frameworks, and the challenges they have working in them. There is always a more seasoned developer who is willing to share tips or tricks with you. And if you’re lucky, you might come out of it with something more valuable than you’ll get watching any talk: a mentor.
2. Contribute to Open Source
Having a mentor to pull you out of the depths of code is great. Having people who work on different teams respectfully critique your code is even better. Contributing to Open Source is going to expand your knowledge of Github, and whatever tech stack the project is in. It will also teach you how to think like a dev, and how to communicate well with others. Don’t be shy; a good Open Source project will always have noobie friendly tasks. Ask and contribute!
3. Volunteer to teach kids
You’re junior. Maybe you are a super junior. But you know something that someone else does not; I promise. If you sign up to help kids learn how to code, you’ll typically be given a schedule and syllabus in advance. Some organizations give you full detailed learning materials. Study those, and by the time your day of giving back is over, you would have learned something.
4. Give a talk
If you’re going to give a technical talk, you’re going to have to know what you’re talking about. You want to give people accurate information, which will require a lot of research on your part. Another? There is always some guy in the crowd waiting to prove a speaker wrong. He raises his hand and asks every speaker questions that challenge their authority. He corners them in the halls. He mansplains. Don’t be that guy, but also be ready for that guy.
5. Ask more questions in Slack
I can’t tell you how many times I get stuck on a problem that I solved months ago. And do I remember the solution? Of course not. Luckily Slack allows you to search for keywords and phrases. More importantly: you can search and see how other developers have framed the question you’d like to ask. Knowing how to ask a question regarding something you don’t know is a valuable skill in tech.
photo credit @_latoyaallen
Want to know more about remote work? Here was my experience working remotely from Oslo, Norway.