As a self taught software engineer and maintainer of a large open source programming curriculum, a major passion of mine is giving back and helping other folks break into tech as programmers. While much of my day is spent assisting people with programming questions on Discord, I've started holding virtual "coffee chats" and have spoken to a handful of aspiring software developers looking to break into programming roles over the last week and a half. I find that having a face to face, one on one interaction allows me to gain a better picture of what these non-traditional developers are working with and aspiring towards compared to text based interactions.
Many of these individuals have gone the bootcamp route, but haven't yet clinched a role after graduating some months ago. Others are just starting out on the self-taught track and are looking for the right motivation and path to take. Despite being at different points in their journey, I found that there were some standout roadblocks or misconceptions that were shared amongst these soon-to-be engineers.
Here are a few areas of focus that I would like to share with you all that I'm seeing amongst those I have consulted with. While I am not a career coach or recruiter, I know what worked for me, and what absolutely did not. And interestingly enough, nearly all of the below items were things I found myself doing (or not doing) at some point in my journey that ended up being things that didn't work out for me, so these coffee chats often felt like looking in a mirror at myself from about two years ago.
Always Have Something In Flight 🛫
Most of the folks I spoke to had not programmed since the end of their bootcamps or courses, some of which ended months ago! As folks coming from a non-traditional background, we have a TON to prove compared to CS-degree'd folks. An amazing way to prove ourselves is to work on personal projects to show our skills and that we care about improving on our craft. This keeps your Github looking active and your skills sharp. If you're into working out, you know that your gains begin to atrophy if you go hard for a few months, then stay away from the gym for even just a few weeks. Your brain and programming is the same! Don't let your skills atrophy! "Dreams don't work unless you do."
Don't Limit Yourself to "Junior" Listings 💼
Another commonality I saw with those who were in the job search phase who weren't having much luck was that they often limited the job search to roles that EXPLICITLY ask for 0-1 years of experience, or use the word "Junior" in their titling. It's entirely possible to nab a job that asks for more than a year of experience, or doesn't specifically use the word "junior". Don't self-select yourself out of the running, let the recruiters do that- that's their job. The worst that can happen is you get a "no". In my own experience, every position I ended up interviewing for asked for 2-3 YOE. Titling can vary by organization (mine, for example, uses Software Engineer I to denote more junior engineers, but never actually uses the term "Junior" in any titles), so you may needlessly be missing some roles geared towards or open to those without experience.
See It Through, Don't Jump Around 📍
While I completely understand the urge to collect courses like Pokémon cards, I saw that folks were trying to juggle tons of courses and resources at once. They often heard that they "needed" to learn something else, or they needed to know even more in addition to what they were already trying to learn. They also frequently worried about not knowing enough to get a job. Splitting attention like this can be detrimental if you don't see something through to the point where you become proficient. Pick something and stick to it- see things through. I struggled a ton with hopping around to different courses and never really got GREAT and had something to show for it until I saw something through. Start one. Finish one. Rinse and repeat.
Find Your Lane 🚦
The final item here is something I identified after speaking with developers who were often towards the early stages of learning. More than a handful were interested in more than a handful of specialties! It's awesome to have varying interests, especially given that programming is such a broad field. But again, splitting that attention is going to slow you down. Do a significant amount of research (but be careful to not fall to analysis paralysis) and pick your "lane", or speciality. That might be data analytics. That might be cloud development. That might be full stack web development. But you will find it very tough to have it all and while casting the widest net may seem like an easy way to get a job, ultimately being an expert at one specialization is going to be much more realistic in achieving your goals.
Conclusion
We are all walking our own unique path, and my journey may look different from your journey, which may look different from someone else's journey. Although we are all unique, there are some evergreen items we can all work on in order to get to our desired destination in the most efficient manner, and get out of our own way of being successful!
Top comments (1)
I agree with your points.
Especially sticking to one resource and not limiting oneself to applying only to junior roles.
What I would like to express the most is when applying to companies, is to not let the job title and requirements stop you from applying for a job. Even if you fail or get rejected, you lose almost nothing from sending your resume anyway. A minute or two, and maybe pride?
And if an initial interview screens you out, you get some experience out of it.
I've definitely applied to mid-level developer job positions even without much experience. Most of them rejected my resume, but some actually gave me a chance to interview. In some cases, I even made it to the end of the interview process, passing the technical tests but losing to a better candidate overall.
Were they a waste of time? I guess it depends on how you look at it. Those gave me a glimpse of what is expected of developers of higher positions, so I found the experience worthwhile.