Sure, you just finished the coding bootcamp, and can talk the talk and walk the walk (’cause your capstone project rocked it and you’re the React Prince and Second Coming of Components). You decided on targeting the FAANGs as your first job; after-all, demand is high (you know the stats) and who wouldn’t want a chance to get a piece of your new found software dev genius?
Whoa… Hold up there Maverick, you just finished flight school, Miramar Top Gun school is just a bit further down the road. You don’t have any street cred, and street cred is everything in this industry, maybe even more than data structures and algorithms.
Reality is a heavy-weight champ, and you’re the person sitting in the audience, not even in the fight. So what do you do? Your dream job is with Amazon, or Facebook (Meta), or Google… why can’t they just give you a chance?
The first thing you should come to the realization is; You are l̶i̶k̶e̶l̶y̶ not going to get a FAANG dev job as your first job coming out of bootcamp*. But disparage not, young Jedi, all is not lost.
So why do you need street cred?
This is a ‘duh’ question, but it may as well be a ‘doh!’ answer. There are several factors that influence whether any company will hire you (and no… you’re still not likely to land that FAANG job as your first job). None of the reasons are because you’re dumb or not good enough or <insert insecurity here>. Unless you are the top 0.1% (or super lucky), you likely will not land your first job at a FAANG company. Your second job though, now that’s a different story!
*Someone’s going to read this and say, “I disagree, my first job out of bootcamp is/was a FAANG job” or, “I know someone, blah blah blah”. Good for you and more power to you. But for the rest of us, here are the reasons you need street cred:
- Professional Experience — Programming is only one piece of the puzzle, professional experience is as important. You may very well have the coding chops, but if you have zero professional experience, someone will have to babysit you so you don’t pee on the carpet. No one likes cleaning up after someone else.
- Business Acumen — Hand-in-hand with professional experience, business acumen is your general knowledge of the world around you. You are not coding a theoretical, non-practical, esoteric problem. You will likely be working on stuff that make other stuff work that ultimately make money. Money… know it and how it’s created.
- Coding — Yep… down-played a bit above, but this one is assumed. Meaning, you better F%#$@ know this S4!7. But even more important than coding, the one thing that keeps dev managers awake at night is the remote chance the new gal/guy is ever left unsupervised with production code, or the ability to royally mess things up somehow (again, pee on carpet). Knowing just a little DevOps go a long way… in fact, forget the fancy word DevOps, just have the ability to understand how the doodoo flow in a system (where your code is only one small part of the general doodoo).
So how do you get street cred?
You gotta get that first dev job; not tech support, not quasi-pseudo technical… but a job using actual crap-you-learned-at-bootcamp-type coding job. But what if you try really, really…really hard, but still can’t get that job within the first three months of graduating bootcamp? Well, get ready, because this is where things get really interesting and hard for you (you thought going through bootcamp was difficult? this is way beyond difficult). There’s really no getting around this part. Take heed…
Coding (don’t stop)
Coding is a muscle, use it or lose it. Muscles atrophy with lack of use. Try going a month without exercising and depending on your age, I bet you’re sore the first two days back… and you’re not as fast or strong or have the endurance. Your fitness attenuates over time if you don’t exercise. Coding is exactly like that. All those muscles you built during bootcamp? they attenuate with time. You don’t want to hear this, but the fact is, the further you move away from your bootcamp graduation date, the less likely you are to get hired… unless you’ve been coding, and coding consistently… and can prove it with what you know, and what you show. So keep that GitHub tile board green with quality commits and projects. Keep exercising (coding). Here’s how:
- Todo apps won’t cut it alone. That is only the beginning. The first thing you should do is go back to your capstone project… you remember? the one you finished and gave all your teammates hi-fives for? Sure, you did it as a team but you hated/didn’t really understand the backend, so Johnny coded the backend. You couldn’t figure out the regex for the phone number so asked Jen if she would take over… You messed up the PR/commit ‘cause you couldn’t quite figure out how to resolve the conflicts you were getting… so you restored from a backup version on your local drive and re-coded your changes. I get it, I’ve heard it all before from students. There wasn’t time. So here’s your chance, do every part of the capstone project from start to finish… from scratch. ACP with some killer messages.
- Still nothing? If you do not have a passion side-project, this would be a great time to find one. Preferably something you’re super interested in (passion). This could be anything, especially if it involves automating and/or improving an existing real world process/problem that you feel is just lacking.
- Learn an API (or more). Here’s an interesting little secret about companies, and the people who hire for them. You will always have an advantage if you’ve worked with a specific API they’re currently using. If it’s an eCommerce shop, they’ll likely use APIs from Shopify, Amazon, eBay, WooCommerce, Magento, BigCommerce, Kite, or BestBuy (not exhaustive list). The best thing? they’ll have a developer tier account and likely a sandbox you can build in, with step-by-step tutorial for the most common functionality and workflow. Whatever industry/company you’re interested in, there’s likely an API underlying it. And when that hiring manager looks for keywords “Shopify API”, your name will pop up.
- Daily drills (warmups). The drills don’t have to be complicated or hard or even challenging. You can do the same 15 minute drill everyday. Here’s a sampling I used to give students (JavaScript):
- Loop through an array of numbers and console log every value using for…loop
- Now do it with a while loop. Now do it with a do…while
- Re-create all of the built-in array functions from scratch. ie map, reduce, filter, forEach, etc...
- Need more simple coding drills, visit https://www.jshero.net/en/success.html or https://practity.com/582-2/ for a list of sites with exercises and drills.
- Run through the most common data structures and algorithms… remember recursion? well, go and actually understand it. Go actually build a linked list, or a stack and queue. Don’t know about sort? refresh your memory on bubble, selection and insert, and why they are so bad compared to merge, and quick. I’m not talking about getting a CS degree, just the basics… at the very least know what BigO is. And if you think all that is useless in a real job… you may be right but that does not mean you don’t need it to get through that door!
Super simple right? Yes. You know this right? Yes. But you’d be surprised how some of these “simple” coding structures trip people up in coding interviews when they’re trying to solve a more “complex” problem.
Use the daily 15-minute drills to make the most basic structures and constructs second nature
There are many more simple coding drills you can do daily like pushups and situps. They build muscle, muscle memory and internalize what you understand. Drills are meant to build muscle, not break you, so don’t think you have to do harder and harder “code problems” to get better. Spending hours upon hours solving a challenge that has nothing to do with a real world problem is pointless (unless you’re doing it for fun… weirdo).
Business Acumen/Professional Experience
This particular street cred is likely one that trips folks up the most. How do you get experience without a job? Some are lucky enough to know friends who will give them a start, or introduce them to a company that will give them a chance. There’s really no easy way to get there, but you can set yourself up for success by doing a few of these things below. At the end of the day, it really is about exposure.
- You can’t be too picky about your first job, but must be discerning about what you get in return; it has to tick all the right boxes for you to take it. You got it… FAANG and money should be the very last things on this list. Stuff like actual coding, tools/languages and APIs you’ll learn, in addition to mentorship and guidance under experienced/sr devs. Your first dev job may not make you six figures, but it better damn well set you up for it down the road. Think of it as an investment.
- If you have the means and the time, I highly recommend putting yourself out there as a volunteer. Plenty of non-profits need technical help. Once you find that opportunity and/or convince someone to take you on as an unpaid developer, you work your ass off as if you’re getting paid top dollar. And be careful that you are actually getting an opportunity to practice exactly what you learned (see point one above). My very first tech job was as an intern at a university in… Africa. I was part of an international development volunteer corp from Canada. I was given room and board, and paid a stipend of two hundred Canadian dollars a month. When I got back to Canada 9 months later, I landed a “real” tech job.
- Get involved with Open Source projects. Probably the best way to get professional experience, and contribute to something that’s meaningful for you. Don’t know how to get involved? Here’s a link to get started: github open source. There will likely be rules of engagement, i.e., how to go about making your first PR, etc., so take note.
Business acumen and professional experience is an intangible, soft skill. Alone, it will likely not get you a job because at the end of the day you still need to PR and commit that code, but it is definitely a plus that you are not a stranger to the professional world, and you know at the end of the day how your code contributes to business.
Got that first dev job… what next?
Now you have fun, and work your tail off. Learn your craft, get that experience and pay your dues (usually 2 years). Don’t worry too much about what you’re getting paid this first two years. The knowledge and experience you’re gaining is worth just as much as the monetary compensation. Remember, you are investing in the future when you do this. It’s a crazy snowball of a phenomenon. The first real tech job I ever got, I was paid 40k/year back in 1998. I doubled that five years later. 10 years on, I tripled my first job, in addition to stock grants, which effectively quadrupled my pay.
My point here is, don’t worry about the money in the beginning, hone your craft and make those mistakes to get that experience. The FAANGs will come, and with it, the money too. I once knew a guy… my then neighbor, who worked as a .net developer and decided to interview at Amazon as an SDE. He’d been working for a couple of years at his then current job. He was rejected by Amazon. Over the next six months, he refined his skill, gained experience and re-applied at a different Amazon group. He was rejected again. He learned each time that there were indeed gaps in his skillset, as well as exactly what Amazon was looking for. Last I talked to him, he was a Golang dev for one of the AWS teams and have been there for more than 5 years.
Finally, why should you listen to me?
Who the heck am I and why should you listen to what I say? I am a backend NodeJS developer for a software services company. I used to teach a full-stack MERN bootcamp and have facilitated cohorts of students through to awesome careers. In my previous life, I managed analysts, software developers and data engineers at Amazon and AWS. Why did I leave a FAANG company you ask? The short of it is, I’d rather be playing with legos than manage people (for the most part).