Are you looking to break into software engineering at the enterprise level? This post will show you how to break into one of the highest paid positions with the best growth potential out there. Landing a software engineering position can be daunting and competitive and will require you to utilize your intelligence, training and creativity. After all, to advance a major company is no small task so companies seek employees of a certain caliber.
Personally, I don’t have a traditional computer science background but come from an education in Physics (where I graduated cum laude with honors) with professional experience in genetics, working with synthetic RNA and DNA. I took it upon myself to learn software engineering by making mobile apps in Java with Android Studio, web apps in Python with the Flask framework and eventually in C# with ASP.NET. I was recently an outsider looking in and competing with all of the Computer Science majors has taught me a thing or two about what it takes to break into the industry.
Breaking into Enterprise Software Engineering
As I write this, I’ve been a software engineer working on projects for a major Telecom provider for all of three weeks. I feel like this is an appropriate time to write this since only a few weeks ago I was finding my way through the job search gauntlet and subsequent interview process. I’ve searched for jobs before, but this was my first experience looking for work in the software industry. I’ve decided that finding a software job is certainly a different beast.
Challenging Software Engineering Interviews
For most software jobs, you’re required to pass a behavioral interview and a technical interview. The technical interview tests your knowledge of relevant technologies and your ability to apply said knowledge.
This generally involves the interviewer giving you a coding problem to solve on the spot, with the assigned problem varying in difficulty depending on the company or interviewer. There’s no faking your way through this process because even if you can talk the talk, you still must walk the walk. This adds an additional layer of anxiety to an inherently intense process.
I was doing everything I could in order to prepare myself for the interview process. It wasn’t uncommon that I’d find myself staying up late after work, practicing coding problems on websites like hackerrank.com, reading discussions on reddit.com/r/cscareerquestions or skimming the pages of books like Cracking the Coding Interview.
Resources to Prep for Software Engineering Interviews
However, there are many ways to gain the learning experience needed to land a job in the industry. Whether it is by earning a traditional degree in computer science from an accredited college, enrolling in a competitive bootcamp, or going the arduous yet fulfilling autodidactic route, it takes considerable effort, time and resilience. But the opportunities are out there and the tools needed to take advantage of these opportunities are more plentiful and accessible than ever.
There are websites like codeacademy.com and udemy.com which offer free courses of varying difficulty to get you started or bolster your knowledge. Additionally, there are websites that test your skills by giving you interview-style technical questions, such as leetcode.com, hackerrank.com and rosalind.com (rosalind.com caters more towards bioinformatics but the point still applies).
I often hear from others who are trying to get their foot in the door that personal projects are of vital importance. Personal projects are a good way to learn new technologies and they provide great topics to talk about during the interview. You should be able to passionately and thoroughly convey the work you’ve done to the interviewer, which is a big plus. I’d suggest finding something you like to do in your free time and trying to work with it. For example, if you enjoy video games, use your software knowledge to create something useful and entertaining, like an add-on, website or mobile app related to a game. Or, for that matter, you could always create your own video game with relatively accessible engines like GameMaker: Studio or Unity.
Building a Portfolio and Resume to Become a Software Engineer
Whichever path you choose, you’ll have to put in the required time and effort to build your portfolio and resume. I can attest that the process, although somewhat daunting, is certainly worth it. I couldn’t help but smile when I realized that I was being paid to do something that I typically enjoy in my free time.
In my case, I didn’t realize I wanted to code for a career until relatively late. Consequently, my path wasn’t exactly straightforward. I went to school for physics, and upon graduating, I found myself working in a genetics lab. During this time, I took an online introductory course in Python at a community college (note: there plenty of free alternatives) and found it strangely addicting.
The gateway to my addiction started with relatively boring homework assignments but quickly transformed into late nights finding ways to improve my skills by practicing coding problems. I discovered that I liked programming so much that I wanted to do it at work, too. I looked around the lab I was working in at the time and found ways to automate small tasks.
That’s one of the beautiful things about software — the need for software automation is ubiquitous.
If you’re an outsider looking in and you’re trying to break into the industry, I recommend you take a look around your current workplace. There’s surely something that can be automated.
After a while I was given the opportunity to collaborate in an internship role with the bioinformatics team to create a program that automated our LCMS quality analysis. This turned out to be a significant learning experience for me. I learned more about coding from this internship than from any of the courses or websites I used. Not to mention that if you go the internship route, you’ll have great experience to add to your resume.
In my opinion, in regard to learning how to code or improving your code, nothing beats working with professionals in order to solve real problems. I’ve found this to be true even moreso as I work with my colleagues at BETSOL.
Good ways to build portfolio and resume
- Automate tasks at work
- Personal projects
- Open source projects
- Coursework (note: you will need more than coursework alone to stand out)
What’s your path?
Three weeks into the job and I’m truly enjoying my time as a software engineer. I’m surrounded by intelligent, knowledgeable and kind people who enjoy coding and problem-solving just as much as I do. When I have questions, they’re more than willing to answer them and when necessary expound on them to teach me something new. I’ve made it over the initial hurdle but the real work has just begun. And I can’t wait for what is yet to come.
Do you have any questions for me? Do you have some suggestions and resources I missed? Hit me up in the Comments below!