Step One to get a Coding Job
Beginning to Code — Article 1
A few weeks ago, on a whim, I posted a message on Twitter offering free mentoring sessions to anyone who was interested. I wanted to help people who were just starting their software development journey. I figured after over 20 years in the industry with 15 years as a manager, I may have some insight to share that could help others as they learn to code and look to land their first job.
I was somewhat overwhelmed with the response with over 40 people signing up to talk to me in the first few weeks. Since then, I have had the privilege of meeting with people from all over the world (10 countries so far!) who are interested in getting into software development. Some people have been looking for advice on a job change within software or guidance on their next move. However, most people are in their first year of learning about coding and are at the point of preparing for their first technology job.
This will be the first in a series of articles is aimed at answering some of the most common questions I hear.
Just a few weeks in, I am beginning to see patterns emerge in the conversations. I will do my best to distill all of these interesting and unique mentoring sessions into a series of articles that I hope can reach a broader audience.
When One teaches, Two learn. — Heinlein
Step 1 — It’s about the code.
I understand (and need to remind myself sometimes) that while reading about coding, talking about coding, networking about coding, and doing social about coding is fun and exciting — it is not actually coding.
It is a 100% valid that you need to network to make connections that will lead to your first job. I know that entry-level positions have hundreds of applicants and a personal recommendation may be needed to break through the crowd.
It is also true that you need to have a decent looking resume and portfolio.
However, these tasks will only help you GET an interview. If you do not possess a demonstrable ability to code, you will not PASS an interview.
Therefore when you are starting out, your goal should be to code as much as possible. Coding itself should be what takes a majority of your time. You should practice daily until you can speak it as fluently as a natural language.
I guarantee that for entry-level positions you will be asked some simple algorithmic questions because the interviewers will want to get an understanding of your fluency.
How to Practice Coding
The goal is to spend time Every Single Day. This is your practice. This is what people who are landing those high paying jobs that you are hearing about are doing.
Luckily, there are several very good (and free!) resources out there for coders.
Codingame: I have used Codingame off and on for years. It has support for many languages so it has been a fun place to practice when learning something new.
Killer feature 1: The multi-player challenges and leaderboard ranks are really cool. (Spring Challenge right now!)
Killer feature 2: Clash of Code — is a multiplayer, 15-min challenge that gives you the adrenaline rush of being asked an interview question.
CodeWars: I only started using CodeWars recently but I really like it. It’s well organized and easy to find something to work on at your skill level.
Killer feature 1: Review other people’s solutions. I’ve learned some nice tricks this way.
Killer feature 2: The problem levels really help find the appropriate difficulty.
LeetCode: A lot of people are also using LeetCode. This site seems to be a bit more structure around learning and getting you interview ready.
Killer feature 1: Learning tracks — instead of throwing you into puzzles they actually provide some instruction first.
Killer feature 2: I haven’t tried this but I see their Premium model offers support for interviewing at specific (FAANG) companies.
Others?
Let me know if there are others that you would have included in this list!
Fluency Defined
Earlier, I mentioned that you need to achieve a level of code fluency to pass an interview. One of the reasons that I like CodeWars so much is the large stratification of problems. Instead of “Easy, Medium, Hard”, CodeWars has levels 1–8, with 8 being the easiest.
The nice thing about this breakdown is it gives you a better way to rate your fluency.
You should strive to be able to answer 8s and 7s, without much pause. These are the types of simple algorithmic questions you will be asked.
Things like:
- Merge two arrays of numbers and sort them
- Compare all numbers in two arrays to find the largest difference
- Find the max number from an array
The interviewer will be listening for how you think — so talk through your thought process.
Suggestion: Work on coding puzzles 30–60 minutes a day until you can solve level 7kyu puzzles on CodeWars with ease.
Familiarity
The people interviewing you will also be listening for your familiarity with coding concepts and standard functions. Ex: Data types, Array manipulation, Strings functions, Math functions, Regular Expressions, Functional programming, etc.
The point here is: if you have been coding an hour a day for a months, you will have seen all of these things many times. Even if you don’t have them memorized (looking at you Regular Expressions) — you will know they exist.
If you get asked to solve a problem like: How would you find the smallest number in an array that’s greater than zero?
And you respond with: I know that I’d want to use a reduce() function on the array but I don’t remember the syntax exactly.
I would personally rate this answer higher than the more naive approach of just busting out a for-loop, even if your reduce() solution was syntactically incorrect.
The reason is simple — the fact that you know what a reduce() is immediately demonstrates to me that you have a deeper familiarity with coding and you know when to apply that knowledge. This isn’t because you’ve studied more books, it’s because you’ve done more practice and more coding than someone who would opt for a loop.
Be sure to follow my Medium page here for more articles like this and sign up to receive emails when I post so you never miss out.