A student of mine came to me after fruitlessly trying to find a job. They were frustrated that they’d been applying for jobs and they’d heard nothing back. Some companies seemed excited about him but after a few interviews very few offers materialized. Those that did were lowballing my student in such an obvious way that it was insulting. I told him even though jobs for developers abound, it doesn’t mean any company will hire anyone that poses as a dev.
The answer I got was, “I know, but I’m just so excited I want to eat the world! Why will no one give me a chance?”
I teach so that I don’t forget how it feels to make your code work for the first time, so I’m lucky to say I understood where he was coming from. I truly did. During my time at Big Nerd Ranch and Lambda School I saw a lot of people who were (and are) very curious, hard-working and problem solvers. Most of them are programmers at heart and they cannot wait to prove themselves.
I’m here to tell you that you’re in for a rude awakening. It doesn’t matter what your bootcamp or university tell you: most companies do not care how much you want to prove yourself. They want you to code like a senior.
They want you to code like a senior because junior devs require a lot of hand holding while learning. Their code will not be readable or performant. They will sometimes go to extremes like creating too many objects requiring someone else needs to do the cleanup. They will not participate in meetings for fear of being mistaken. They may be assigned a story and try to fix it without further clarification. The list goes on and on.
Every time a junior is doing something, someone must review it and teach them what’s wrong with their code, otherwise it will keep happening. This isn’t your average review, it’s a review where the senior must teach. That kind of system is extremely expensive – and worth it! – because it slows down senior members.
On the surface, this is a horrible deal for the company. It means they get to spend money on a half-baked dev and their more senior devs get to be less productive.
This status quo is very slowly changing as more and more companies realize that they need a healthy dose of juniors and seniors to maintain their advantage and attract better talent. However, that’s little consolation to someone who is looking for a job today.
It’s not all doom and gloom
My goal is not to discourage you, it’s to help you set the correct expectations. Once you know what the expectations are, you can begin trying to prepare in a better way for your interviews.
Problem: experience. This is the biggest hurdle and, worse yet, it’s a chicken and and egg problem. You already know it: every company wants you to have experience and you can’t get experience if you don’t get a job. Yes, it sucks.
Solution: Bootcamps and online courses are the easiest way to get some experience, but they are just the first step. The next step is to spend some time coding in a very visible place: open source projects are a great idea because you can add them to your résumé and you get code samples to show. Go and fix some issues in open source projects and add them to your résumé. Use beginning and end dates and everything to describe your experience as an open source dev. Make it look like real experience because it is.
Problem: your code will suck. You might think that those tutorials or that bootcamp helped, but unless you’ve had direct feedback from someone much more senior than you (other juniors don’t count), you’re in for a rough ride. Your code is not readable, it’s not maintainable and it probably sucks a bit more than you think.
Solution: There are plenty of free and paid resources that can help you understand the finer points. For iOS devs, objc.io is a fantastic place to start. Go and buy Advanced Swift or Functional Swift. Invest in yourself. If you don’t have money, then literally ping people on Twitter to help you. Be specific with your questions, for example, ask the senior dev if they can provide feedback on a single function or a simple class. You will be surprised by how much people want to help others get into programming.
Problem: you may be fearful of speaking up in an interview or your contributions miss the mark. You want to do your best and demonstrate your knowledge of frameworks and the ecosystem, but sometimes it doesn’t come across.
Solution: Communicate! Understand how to read a room (i.e. increase your EQ). This one is hard because it requires you to be aware of your current communication skills. A great book I’ve been recommended is Nonviolent Communication. Understand how and when to communicate and you’ll improve not only as a dev but as a person. This is incredibly important for interviews. You are selling a product: you. The better you communicate your value, the higher your chances of getting that offer letter.
The world it not against you
The good news is that once you do land that first job, it doesn’t matter if it’s a fantastic job where they nurture junior devs or one where you’re not getting paid enough. You’re “in”. If you can hold on a year or more and continue improving, either by yourself or with your coworkers’ help, you’ll be in a position where people will beg you to come work for them. Maintain an active profile in LinkedIn and you’ll get constant messages from companies looking for a dev “just like you”.
Then you will have made it and the biggest hurdle, experience, becomes your stepping stone. It’s transformed from a wall to bridge that will help you find your next job as a full-fledged dev. Once that happens be sure to give back to the community so others who were in your position can have an easier time.
I write a weekly newsletter with a 15-minute coding exercise, and additional sections like interviews from members of our community. Subscribe to improve your coding skills!