I'm a new junior software engineer who just completed a coding bootcamp. I had spent the past year teaching self-teaching myself various programming concepts prior to joining the bootcamp. My previous work experience is as a consultant and field engineer, and my degree is a Bachelor of Science in chemical engineering.
Hi, Scott! Breaking into tech can be challenging, and this might feel a bit odd given how much you read/hear about all the great jobs out there and how difficult it is for companies to fill positions. Also, right now is a particularly difficult time in the economy. That said, companies continue to hire for junior roles, even now.
Here are some suggestions:
Tldr;
My suggestion would be to first decide what role you want. Are you looking to be a front-end or back-end dev? Or maybe you like some older programming language like COBOL. To a degree it doesn’t matter what it is—although it might be tough starting out with an esoteric language that has little adoption. The important thing is that you find something you like and dive into it. When you market yourself as a X type of developer it makes you look confident in what you’re doing. Even if you don’t have a lot of experience in it the fact that you have a focus that interests you shows a level of maturity and initiative.
Now, you might think, if you choose a niche prematurely and you end up not enjoying it you’ll get stuck in it. There’s some truth to that. The more experience you have in an area the more companies want to hire you in that area, so of course they would be willing to pay you more for the work you have experience in than the one you don’t have experience in. On the other hand if you find yourself suffering from analysis paralysis and you can’t choose where to start, you should consider your personal situation and weighs the pros and cons of waiting. But even if you do have the luxury of time I would advise against waiting too long to make a decision. Also, be aware of your motivation for choosing one focus/stack over another. I have in the past started down a path of comparing programming languages and career focuses based on pay and number of open positions, because in my mind that’s how I was going to optimize my chances of success. In retrospect that wasn’t a very helpful way to think about it. Sure, to a degree those are important criteria, but only when it comes to filtering out extremely esoteric stacks that have very few jobs. But even in that case there are exceptions, like if you really enjoy writing Elixir code, and you’re decent at it, you might want to give that a go. Of course, you need to balance that with your own unique situation, and if you’re still unsure discuss it with a mentor or someone that know you and the industry well enough.
Now, some companies might care very little about your prior experience and more about your fundamental CS skills. That means testing your knowledge of algorithms and data structures. That doesn’t mean that you shouldn’t try to define the role and stack you would like to work with. What it does mean is that if you are looking for roles with companies like Google, Meta, AWS, you are best served devoting enough time to study this type of interview questions. Now, enough time is relative here. This could range from weeks to months of preparation, plus an additional 1-3 months of interviews. There websites like Pramp and HackerRank or LeetCode that help prepare you for this. If you’re going down this path I recommend really researching the companies and making a list of the ones you want to apply for.
Another path is to just apply for lots of positions that sound good to you. I don’t recommend though because it can be very psychologically taxing to get lots of impersonal rejections—and if you take this approach you probably will get lots of rejections—, even if you tell yourself that you don’t care about any one company. In fact, it’s important to be aware that job searches are generally very stressful and that you need to be kind to yourself, especially as things get tough. Make sure you treat it like a job, take breaks when you need them, take care of your health, etc.
Regardless of the approach it’s important that you have a stellar presentation. A strong resume and LinkedIn profile are a good start. A website highlighting your accomplishment as often good too. However, keep in mind that your resume should always be targeted to specific jobs. That’s another reason the targeted approach is better.
If you don’t have any experience your accomplishments are usually going to be projects, of course. Make sure you have projects relevant to the roles you are applying. Also, try to look for volunteer experience building apps and websites.
If you don’t have the time to build a strong portfolio and you want to get started working now, you might need to look at more basic/low paying jobs at first. The reality is that it does take time and lots of work to build a solid portfolio, and not everyone has that kind of time. In my case, I found a job as a Web Content Manager, which was basically a little more than a glorified data entry job involving HTML. But once I got the job I managed to convince my boss to let me code some automation scripts. When that worked out I was given more and more programming tasks. Eventually I got more hours, then a full time job and, about 4 years later, I settled on the niche I was interested in. It took some time but I mostly enjoyed it and now I have a job that I absolutely love.
Good luck on your journey!
Discussions is where tech workers share tips, tricks, and stories about important career questions.
Start a discussion to get help from thousands of tech professionals.