How to Become a Software Engineer in a Year
Design your year tactically and you can land your dream job
Software engineering has been touted as one of the hottest and most in-demand professions for years now. Thousands of college students (including myself) have pursued a career in software engineering in the past few years, hoping to land one of those lucrative six-figure starting salaries.
This may seem like an ill-advised approach to choosing a career path. While software engineering may not always be what it seems, it can be highly rewarding for those suited to it.
If you are comfortable with an office job, working in a team, and following a computerphilic lifestyle, software engineering is for you. In 2018, I landed a job at a large multi-national software company, which I ended up leaving. Today, I am sharing with you the plan I used to get that job.
Months One to Three
In the first few months, you need to set your goals for the rest of the year. Take a look at job listings you are interested in. What are they asking for? What are you missing? Setting your goals early on will help you in two ways. First, you will be able to have a clear path to your end-goal. This will continue to motivate you until the day you sign that contract. Secondly, you will be able to switch out of those goals if they end up not being what you had anticipated.
For example, you may want to work at Google.
Look at current job postings that Google has for the position that you are looking for and then honestly assess your current level on each of the position’s requirements. Is it feasible?
If the position sounds like something you want to do, make it your goal to learn the programming languages and domain-specific concepts described in the job posting. Be thorough, and be realistic.
Learn, learn, learn
The next few months will be filled with self-study. Having set your goals, you can then pick from the thousands of different technical learning resources available online. My absolute favorite for learning programming languages is Exercism, but there are many more out there.
You can use this time to master the specific programming languages that the developers use at the company you want to work for. Read up on as many resources as you can, and take part in as many open source projects as you can. Nothing beats learning by experience, especially when it comes to programming.
Read relevant books
Find published resources about the domains you are studying. I recently published a list of books that I personally recommend to programmers, but your reading should extend well beyond coding. To stand out from the crowd of applicants, you must show commitment to the industry that the company you choose operates in.
Software companies are rarely just about software. Usually, they offer a digital service that improves on or replaces its existing traditional equivalent. Your reading should include getting familiar with what the traditional approach used to be, and what the company does to innovate.
For example, if you want to work for the Calendar team at Google, you could read up on the techniques that time-management gurus suggest to make our lives more productive.
If you can somehow take that knowledge and turn it into a project, all the better.
Months Four to Six
Complete personal projects
Once you have gotten a firm grasp of the technical and relevant domain knowledge of the position, it is time to put it into practice. There is nothing more telling of a good candidate than someone who has already completed a project or two in the exact domain of the company.
Recruiters are trying to see if there is a place for you within the organization. One of the most important variables is how long it would take to bring you up to speed with relevant concepts. If you can display evidence that you are ahead in the game, you are almost certain to land that first phone interview.
Review the books you read in the previous few months. Can you model or apply any of the concepts presented by the authors into a useful software project? If so, get it done, and make sure it’s presentable.
Whatever you make in this phase you can present as the shining point of your resume. In fact, you can design the project so that the keywords to describe its functionality match keywords within job postings you are applying to. In this way, you are also ensuring a better success rate with automated resume screening algorithms.
This is a great time to start networking. Post updates of your projects on LinkedIn. Interact with others within the industry. Attend networking events, including conferences and career fairs. Get your name and face out there as soon as possible, and keep showing up.
An individual with a strong and consistent presence, according to psychology, is more likely to be perceived favorably.
It’s simple science: the more times people see you, whether online or otherwise, the more the associated neural connections are strengthened. Making a great first impression can get you through the door, but maintaining that reputation can really make you stand out.
Months Seven to Nine
Crack the coding interview
So far, you have built out your knowledge, your resume, and your network. In the third quarter of this year, you have a singular purpose: interview preparation. You can never be too well prepared for these.
Most technical interviews for larger companies are the same. Interviewers give you a problem. You solve it using algorithms and data structures.
The #1 resource for becoming an expert at this style of interview is, of course, Gayle Laakmann McDowell’s Cracking the Coding Interview. Using this book, you will be able to master the required tools to solve any problem technical interviewers can throw at you.
Read this book slowly. Solve each exercise on your own, then read the author’s solution and correct yours before heading to the next one.
Perfect your resume
In the eyes of recruiters, a well-written resume will say a lot about a candidate. Software engineering is a job that requires attention to detail. Your resume must look the part.
I am not an expert on resume writing but I can give a few tips you can use when writing yours:
- Use a readable font (eg. Times New Roman).
- Use formatting to separate information. For instance, you could format all job titles in italics and all location/date pairs in bold.
- Focus on the numbers. State your every achievement in exact values.
- Focus on the results. What was your contribution?
- Show your experience with both hard and soft skills.
- Have someone else proof-read it.
Even if you never get nervous during interviews, you must practice interviewing before you even schedule your first one.
Get a friend, family member, or better yet, a professional to take the spot of the interviewer. For optimal results, give them the job description of a job you are will be applying for. Role-play the interview as if it was really happening, and then ask for the other person to give you feedback.
- Some questions that are absolutely essential to prepare for are:
- Tell me a bit about yourself.
- Why are you interested in this position?
- Why do you want to join [company]?
In technical interviews, your interviewers are also likely to ask about the projects that they see listed on your resume. When developing any personal or team project, take a few notes about the process.
Take notes about what worked, what didn’t, and what you could do to improve. Make sure you can talk fluently about the project, its technical details and your personal contribution to it.
Months 10 to 12
Apply to jobs
There is no trick to this. Find the jobs that you like and apply for them. If you can, use a contact to refer you to the company. If not, write an excellent cover letter and send it in with your resume.
Throughout the interview process, you will encounter several employees working at the company you are aiming to join. Be respectful and friendly to each one, whether through email or in person.
Finally, remember that this process can take a very long time. Do not be discouraged, and do not spam the recruiters with email about your application.
While you are applying to jobs, it is easy to forget that the past year you have been building toward this process. You should continue working on projects, reading relevant resources and practicing interviews, whether technical or not.
The more comfortable you get with all the material, the more confident you will be on the day of the interview, and therefore more likely to make a good impression on your interviewers.
This one-year plan requires dedication and hard work.
Landing such a high-paying job is not something that is supposed to be easy, but it is certainly possible. You can adapt this plan to your personal goals and time-frame, as well as your current abilities and employment status.