This is a continuation of sorts off of my So you want to learn to code post. I run into lots of folks via the interweb or in meetups who are looking to get their first coding job (usually after a bootcamp or self study or something like that).
I totally get it. As my time with Fullstack started to come to an end I was super nervous and anxious, constantly looking for advice from others for how to get that foot in the door.
For myself it worked out. Due to some combination of hard work, determination, privilege, kindness from others, and straight up luck and I got my first job offer in less than 3 weeks. And it worked out. I learned new things, made new pals, earned a good salary, and launched what seems to be a pretty solid career.
It feels wrong not to share the lessons I learned in that process, thus this blog article. But it also feels wrong not to mention that this is just what I did. Your life circumstances are different. I maintain that transitioning to a role in tech is much easier and more rewarding than most--but that doesn't mean it's not hard or without it's challenges. And it's worth saying that those challenges can be more challenging for particular people and groups. Racism, sexism, ableism, transphobia, and the like are all very real. As always with this advice all I can say is your mileage may vary. Hopefully some of it helps! <3
You need a website
When you don't have years of experience, you need some kind of portfolio of original projects. You don't need a ton of projects, but at least 1-3 that you are reasonably proud of. The code also needs to be available via github or something similar so folks can see how you write. Also try to have a nice visual demo of the thing you built (run it on heroku, put some gifs on github, write out how cool it is in the readme). Lots of recruiters don't understand code, but if they see your code running live they can play around with it and be impressed.
I'd also recommend setting up a blog. It doesn't have to be great or particularly interesting. But as you learn new things, write about them. It'll show your commitment/passion/personality. It can really help set you a part believe it or not.
When it comes to your portfolio/blog don't let perfect be the enemy of the good enough. Just get started and iterate from there. For some examples of what I'm talking about you can check out my baby-developer's blog here.
Consider your social media presence. I'd recommend getting a twitter account and using it exclusively for professional things at least until you get that first job. Avoid politics and personal stuff (I post such things these days but only because I feel fairly confident I can get a job relatively easily). Just post about how you went to a cool meet up. Or share a cool article. Use it to network at meetups (I prefer it over linkedin). And guess what?! Lots of folks will post about job opportunities, it's totally ok to DM a stranger (politely!) and ask for more details on how to apply :)
This stuff all comes down to "personal branding" it feels a little weird I know, but I really think it makes a difference. And there are legit benefits to all of this. You'll learn things as you fix up your portfolio/blog. You'll learn things as follow cool titans of industry on twitter. Are you bringing "your full self"? No. But boundaries are ok and healthy. And as you move on in your career, you get the privilege of bringing more and more of that to the forefront.
Find a community and form meaningful connections
People think networking is about having the most LinkedIn connections (even if you don't actually know any of them). Or that to network you have to ask lots of strangers out for coffee to "pick their brain". If this is you, it's chill, you're not alone. I did (sometimes still do?) this too.
However, I definitely do not think this a good use of your (or my) time. Instead pick a community or two and become really active in it. Form a study group. Pick a particular meetup and go to every event they offer. Offer to volunteer for a meetup. Ask about giving a lightning talk! Lots of meetups offer mini talks or lightning talks of 10 min or less. It's the perfect amount of time to explain something cool you learned or a project you're working on. This is kind of a combo factor as it now gives you something you can show off in your portfolio/blog and it's raising your profile within this awesome community you've found. :) Best yet, when you introduce yourself be sure to mention that you're looking for new job opportunities! Now you've told a whole bunch of people that you're looking for a job, without having to awkwardly ask people one on one.
The key is to give more than you take and spending time to build real friendships. Don't be disappointed if any particular relationship doesn't lead to the job of your dreams. This is a long term investment that will help you throughout your career. It'll also make this whole process less lonely :)
If you do stumble across some interesting stranger on linkedin or elsewhere that you would genuinely love to have a cup of coffee with, be very clear about why. Explain to them who you are and what you're looking for. Are you curious about working at their company? Are you looking to study/use that technology? Do you have a project you are working on that you're stuck on and think they might have suggestions? Be super clear, polite, and upfront. Offer a few potential times/places so they don't have to and so they have a potential out ("would you be interested in grabbing coffee near your office sometime next week? Maybe Wednesday or Thursday after work?"). If they agree, and things go well, ask if there's anything that you can do for them? Are they looking for volunteers for a meetup they are running? Maybe they are looking for a designer and you know one. People are not interested in offering jobs to strangers who want to "pick their brains". People are interested in making new friends, or finding new people they can recruit for their favorite open source project, or building a better, more supportive tech community. And once they know that you are an awesome person, and you have a genuine relationship with that person, they will actively look out for you.
That said, if someone offers to take you out for a cup of coffee just to "hang" obviously go for it! And anytime you do meet people and they ask you what you're up to, be super frank and unwaveringly positive, "Hi I'm so and so, I just finished at XYZ Coding Bootcamp and now I'm on the look out for my first big tech job and I'm also hear to learn more about ABC because I've been thinking about building my next side project with it". You're being up front with your needs, but also not putting the pressure on another person to give you a job. You have now opened the door for them to talk about your job needs or to talk about your cool new side project. Win!
Only been coding for a few months or a year? So what?! You've probably learned a lot of other useful stuff in your life. You've probably overcome much harder obstacles than getting a tech job. Approach your job search with the belief that you will not have a problem finding a job, instead consider the real challenge will be to find a job you love! I say this for a few reasons.
Firstly, I think it's just the most accurate assessment of the situation. Most people I know coming out of bootcamps eventually found a job. Very few of those folks are still working at that same job a year or two later. Nearly all of them are still engineers.
Secondly, no one wants to hire someone who doesn't believe they can do the job. Be honest about what you know and don't know, but make it clear that you believe you can learn anything given a little time and support. Believe it or not there are a lot of jobs out there for people who can "figure it out".
Third, even if you really are the worst programmer out there, what kind of life is it to constantly think "IT'S SO HARD TO GET JOB OMG THIS SUCKS"? Yes we all feel that way in the moment, hell maybe it's even more true for you because of XYZ reason, but how is that mantra going to get you a job? Instead tell yourself repeatedly: "Anyone can get a job eventually, the real trouble is finding a great job".
This one is obvious. I'm not gunna go into it much, seeing as there are whole books on the subject. Just to state the obvious:
It's a skill.
Like anything else you have to work at it. Do not say to yourself you are "bad" at interviewing. You're just not great at it yet, growth mindset! Some things I've done in the past: pretend to be the interviewer and try to think up potential interview questions. I then write down my own answers. Then I try to talk out loud my answers without reading what I just wrote. One question that you really want to have down is a 1-3 sentence narrative or elevator pitch that is sincere on why are YOU a good fit for THIS PARTICULAR job. How does what you've done in the past connect to this job?
Narrow your search a little
Where do you want to work? Big company? Small company? What industry? What languages?
Many people say to me, "I don't care. I just want someone to pay me to code".
That's chill. But if you spend all day erryday applying to literally every job from a finance devops role to drupal work at a nonprofit to tiny wordpress freelance gigs, you will probably drive yourself bonkers writing a trillion different emails/resumes tailored to those trillion different jobs. It's completely overwhelming. It also doesn't work so great towards that "personal brand" we were talking about earlier.
Keep an open mind
If I randomly came across an opportunity that looked cool, or someone offered to refer me to a company, I always went for it. Even if I didn't know the language, even if it wasn't in the industry I was most interested in. Just because you've narrowed down what you're looking for, doesn't mean you have to be limited by it. I decided early on I wanted 3 things in a job and felt I'd be chill to settle for any particular 2:
- great people (will I have fun?)
- interesting mission or industry (will it matter?)
- awesome learning opportunities/mentorship/tech (will I learn?)
What are your dealbreakers? What things are you willing to flex on?
Keep at it
The number one mistake I see people make when looking for a job is giving up. They apply to like 20 or even 30 job postings, don't get a job and think they've failed, they think "ah I guess I'm not cut out for this whole coding thing". Bills start to pile up. They move on to something else. Y
In fact, they've VASTLY UNDERESTIMATED how many jobs most people have to apply for before one works out, especially for that first job! It is really about luck and numbers. And that first job is really important. Once someone pays you do code, it's a lot easier to get someone else to pay you to code. So seriously, if you want this, you need to really put all your energy into this.
How can you tell if you're making progress/on the right track when all you get are rejections? Are you getting some requests for interviews? Awesome. Are you getting some interviews? Awesome. If you get rejected try to assess it's usually for 1-3 reasons: 1) You could have done something differently/better 2) it wasn't a good fit and/or the company is stupid doesn't recognize your awesomeness 3) there was just a lot of other qualified people and they picked someone else.
If indeed there's more you could have done, congratulations you just learned something for free that people literally pay job coaches to tell them about.
If it just wasn't a great match, no sweat, this happens literally all the time and it is probably the fault of the company for not being more explicit in what they are looking for. Chances are good they weren't super sure what they wanted when they brought you in. If the people who interviewed you were weird or bad or judgemental in someway, you are very lucky not to be working there.
If it could have been a great fit but they went with someone else, congratulations! That means you're doing all the right things: you applied to the right job with the right skills and that is literally all you can do. You just have to keep doing it. Unfortunately you probably have to do it a lot more than you'd like, because life is super hard.
Lastly, you've got a lot of time while you're unemployed and you probably only can stand to apply to like 3-7 jobs a day without going wacky. Pick some goal number of jobs a day and then spend the rest of your time coding. Pick a side project and work on it (bonus points if you can monetize it!). Pick up a framework or a different language. Or write x number of blog posts a week. Read a book. Go volunteer at that meetup group. Do interview prep. Make index cards of common interview questions. This is your full-time job now, own it!
Know your worth
You probably don't have a lot of room for negotiation in a first job, but you have a little. Should you say salary expectation if they ask you? Some say yes, say no. Personally I think unless you have a had a tech-related (or other high paying) job before, you should not give a number. People will push you on it, but I think it is 100% reasonable to push back and ask the recruiter what they are looking for. It really would be ridiculous to compare my former social work salary with my first job as an engineer. One is for a nonprofit organization, the other was for a publicly traded corporation. It's an apples and oranges situation, and I bet the same goes for you. It's not about what you've done in the past, it's about the worth you are bringing that company in the future. And nine times out of ten I bet you the company's first offer would be more than what you would offer yourself. If they really push you with questions like "what did you make at your last job" I'd say be evasive. You can say things like "I'm not sure it's very relevant since it was such a different job and different field and my skills have grown since then, I'm open to hearing a wide range of offers for my first position in the tech field." Or if you do have number or range that you're hoping for you can avoid answering the past salary answer by saying "I'm looking for my next position to be somewhere around XYZ".
Once you get your first offer, notify every company that you are interviewing that you received the offer and that you have x number of days to consider it. Tell the companies you just applied to (even if you haven't heard back yet) that that you have to withdraw your application because you just received an offer. Tell the companies that you have interviewed with and then they proceeded to "ghost" you for a month, never quite giving a yes or a no. You may find that people who previously ignored you will rush the process to finish their interviewing and may very well offer you something as well. It's a weird when-it-rains-it-pours-kinda-thing.
If you get two or more offers, yay! You now have negotiating power :) Please don't lie or be a jerk about it. Capitalism can be sneaky but you really don't have to be. This is all about being honest and making sure everyone is happy with whatever arrangement you make. Think about where you REALLY want to work. Is it the company with the lower salary? Let them know that you genuinely want to work there but you've been offered a higher salary at another company and you're curious to know is there anything they can do for you. Maybe there is, maybe there isn't. You'll never know until you ask. In general my best advice in this area is to try not to panic, be kind, ask questions and ask for more time if you need it. Don't let recruiters or employers bully you into giving an answer on the phone right away. You should always have at least enough time to talk to your family about an offer. If they threaten to withdraw the offer if you don't answer immediately, you probably don't want to work there.
Hooray, you now know all my tips on getting an awesome job. To reiterate:
- Make a website
- Form meaningful connections
- Have confidence
- Practice Interviewing
- Narrow your search
- Keep an open mind
- Keep at it
- Know your worth