BEGINNING A SOFTWARE ENGINEERING CAREER
Nicholas Leask
Recently many of us have heard something like, 'anyone can begin a career in tech!' I'd like to elaborate on that statement by creating a 'formula' to ensure success in entering the tech market. Note: Although I am an instructor at a bootcamp this information is applicable across different learning paths. In this article I will elaborate on what each step includes, the efforts required by an individual seeking to become a software engineer, and ultimately we will have a 'formula' to beginning your career in tech.
I've created a checklist that, if you complete it, you should soon be:
[❓] Interested in Development
[❓] Learned to code
[❓] Updated your resume
[❓] Applied for jobs
[❓] Learn from the interview process
CHECK YOUR INTEREST IN DEVELOPMENT
Now, let's look to address the first bullet, "(Am I) Interested in Development?". I would like to sincerely preface that attaining a job in software engineering is not effortless. However, I'm not going to be the college professor below saying:
If you have the drive and motivation to become a software engineer you CAN succeed in taking this big step towards a career change. Step one is the most elaborate because we want to ensure you're heading down a path you're going to be excited to pursue and happy to be in. It is VERY difficult to be a successful engineer if you aren’t motivated by what you do.
Without knowing what software engineering is, the question, 'am I interested in software engineering?' can be a hard one to answer. I'd like to describe software engineering quite simply. A software engineer is someone who builds, fixes and creates features for electronic devices. Some things they do are: build and maintain computing utilities, operating systems, applications, websites, database programs, user interfaces and more. If this sounds exciting we're 1/2 of the way to checking the first box.
Next, we're going to list some job titles and associated jobs. Software engineering jobs exist for companies ranging from 2 person startups to companies like Amazon with 100k+ employees. Please click the links and peruse the job descriptions, don't look at qualifications yet.
If you find some aspects of the above jobs interesting, odds are you'll enjoy a development job! We're good to check this box. The next item isn't "required" but is very helpful if you REALLY want to be sure that coding is for you. This step is to build something!
There are hundreds of possible projects that you could tackle to understanding if you'd like software engineering, here are two (free) options: The first is to create a game. The following tutorial is to make Rock-Paper-Scissors. If you choose this project, don't forget to set up your coding environment first! The second project is to build your own website using SquareSpace.
As a note, software engineer, developer, and programmer are titles that are somewhat interchangeable. Designer is not. If you find yourself drawn to design, knowing how to code is helpful but not necessary. Some personality traits of software engineers, developers, and programmers are that they like problem solving, enjoy building things, are incredibly empathetic, inquisitive, and have high perseverance. If you don't believe you have one of these items you may want to consider that a 'red flag'.
Let's update our list! I promise the following items are much simpler than the previous one!
[✅] Interested in Development
[❓] Learned to Code
[❓] Updated your resume
[❓] Applied for jobs
[❓] Learning from the interview process
LEARN TO CODE
From here you have 3 potential paths, the most important to remember for all 3 is that you are the one in control. You will only get out of it what you put into it.
The first is the traditional route. You'll take a 4 year degree, take courses that both are and aren't focused on software engineering but will 'make you a better, more well rounded person.' Apparently this is why I was required to either watch French movies or learn basket weaving at one point in college. A traditional education is widely accepted at most companies. Ultimately though many universities forget that the final goal of education is to begin a career. And their career assistance may be lacking. (Cost: $30,000-$200,000+, minimum: free community college 2 yrs, 2 yrs state tuition, maximum: $50k/yr tuition)
The second is the complete other end of the spectrum. The self taught route. Here you will become best friends with the internet, find all the resources you can and teach yourself how to develop. You'll have the experience of researching what you're most interested in and finding resources to teach yourself that information. The best and worst part of this is that you can learn at your own pace. Too slow and you'll never see any dividends. However, if you are a good self-manager and have clear goals, this could be a great route for yourself. (Cost: $0-$3,000, potential costs include a computer, online learning resources, resume workshops, etc..)
The final option is taking a software engineering bootcamp. Programs can be anywhere from 9 weeks to 12 months. They can have prerequisite requirements with tests to get in, or teach you from the ground up. At a bootcamp you'll have an instructor and support team giving you direction to help you acquire the right knowledge. There are usually lectures, practice, resume prep, LinkedIn prep, and interview prep. The absolute goals of a bootcamp are to learn to code and get a job.(Cost: $0-$30,000, minimum: full scholarship or funding, maximum: % of your initial salary)
If you take the first or last path, upon graduation you should have the understanding, portfolio, LinkedIn, and resume to start your job search. We'll assume the same if you self-taught yourself!
Let's update the list again!
[✅] Interested in Development
[✅] Learned how to code
[❓] Updated your resume
[❓] Applied for jobs
[❓] Learning from the interview process
UPDATE YOUR RESUME
Writing a good resume can be difficult. Some things I always like to highlight for our students are the following: Firstly, try and stick to only what pertains to the positions you'd like. For example if you'd like to become a software engineer, highlight your ability to code and projects you've worked on, not your prior sales, investing, etc... experience. Next, if you have work experience you're keeping, focus on metrics such as, 'I set up a process that decreased redundant calls by 30%'. Following those two points will ensure your content is pertinent, motivating and interesting. The next step is to ensure your keywords will be picked up by ATS (Applicant Tracking Systems). For example, did you learn to code with JavaScript? Then be sure to have the word 'JavaScript' written at least 3 times. Lastly hand your resume to anyone you can, friends family, anyone with a good eye for detail and have them check for poor grammar, spelling errors, and other simple mistakes you may have missed.
Let's update our list again:
[✅] Interested in Development
[✅] Learned to Code
[✅] Updated your resume
[❓] Applied for jobs
[❓] Learning from the interview process
Your penultimate step is to apply for jobs. Make this task a 'SMAC' task. Specific, Measurable, Achievable, and Challenging. I'd say 25 applications a week is a good start. This task is specific because it is well defined, measurable because you have either done 25 applications, or you haven’t. Achievable because 25 is not too difficult, and challenging because initially the application process may seem daunting. Also once you have interviews to prepare for 25 will be a good number to keep up with.
My favorite application method is to start with ONLY utilizing LinkedIn and then ease into using different avenues to potential hire. Once you have the LinkedIn flow down, expanding into website specific applications is great. Once you're comfortable with this method, expand again; message relevant internal employees via LinkedIn. When you do this be sure to talk both about the person, not just yourself. For example: 'Hi Sammy, I see that you took a bootcamp to launch your career and you're now working at Google. I'd love to connect and discuss the efforts you've taken to reach your goals so far. Thanks, Nic'. This can help you target roles before they are on the market for hundreds of people to apply to!
Down to one item on the list!
[✅] Interested in Development
[✅] Learned to Code
[✅] Updated your resume
[✅] Applied for jobs
[❓] Learning from the interview process
Finally! We're now in interview processes and speaking with hiring managers. At this point you could work the law of averages by applying, interviewing and ultimately landing a position. However, to maximize your chances be sure to learn from each interview. Note the items that you missed and you think held you back. For example were you asked about linked-lists or inverting a binary tree and you stumbled? Be sure to study those topics because failing out of one interview process is fine, and to be expected. Failing out for the same reason twice can put a mental speedbump in your road to success.
Ultimately if you're at this phase you are near success. Keep on pressing submit, keep speaking with recruiters, keep being yourself. You want to work at a company that fits your personality, NOT the personality that you created to beat an interview process!
Let's update our list One. Last. Time.
[✅] Interested in Development
[✅] Learned to Code
[✅] Updated your resume
[✅] Applied for jobs
[✅] Learning from the interview process
[✅] 🎊Become a Software Engineer🎊