How I become a Software Engineer in my late 20s while working a full-time job

Samat Tolkunbekov
Insider Engineering
7 min readOct 24, 2022
Photo by Fernando Hernandez on Unsplash

At some point, there comes a moment when we all start to doubt our career decisions, feel out of place, stop enjoying our work and feel, and everything flows into a routine. It can be devastating, but on the other hand, it’s a great opportunity to revisit and try new goals. During such a period, it is difficult to find the confidence in yourself to accept such thoughts, and finding the courage to pursue something else can be even more difficult. Especially when you’re well into your 20s and have a full-time job.

I had the same feelings and thoughts, and I tried. And I can say that it was worth it, although it was hard. Hope that my experience and shared tips will help you achieve your goals and “take your place in the Circle of Life.”

Decision

Photo by Nathan Dumlao on Unsplash

“Once you make a decision, the universe conspires to make it happen.” — Ralph Waldo Emerson.

The first step is to decide. To make up your mind and make an important decision, you must dispel all your doubts. Let me share mine below in the hope that they will help and answer some of yours:

How can I be sure that programming will suit me?

You can never be sure. But I advise you to try some quizzes or exercises to make sure you are comfortable and enjoy the process. There are tons of great solutions on the internet, but let me share what my mentor recommended to me. The online game “Human Resource Machine”. This game perfectly covers and explains the concept of structuring algorithms and programming. Invest some time, try to complete 80–90% of it, and then reconsider your thoughts.

It did a great job for me.

Where to start?

From the language I would say, pick one and start coding, the rest will come. I will be sharing more below.

Which language to pick?

The community will mostly recommend choosing the one that suits your goals. But what goals can be discussed at this stage, most likely you have not decided anything yet. Will it be front-end or backend or maybe game programming?

My advice: do not overload yourself and start small, choose a language and a direction to study. Pick JavaScript and get started with the front-end development. Afterward, when you feel comfortable enough, you can always choose another path and try again.

Remember the main goal here is to start.

Should I be good at math?

In the beginning, you are unlikely to encounter difficult math problems, but later on, maybe. You don’t need to be a brilliant mathematician to become a successful developer, as a non-CS graduate with weak math skills I can assure you of that.

Margin Call (2011)

Plan

Photo by Kelly Sikkema on Unsplash

Let’s talk about a plan, a crucial aspect of which is time management.

“If you give yourself 30 days to clean your home, it will take you 30 days. But if you give yourself 3 hours, it will take 3 hours. The same applies to your goals, ambitions, and potential.” — Elon Musk.

It is very important to set clear goals and deadlines, otherwise, the goal will quickly become a distant and unattainable dream. In my case, I made a plan for 6 months with clear goals for each month. Let's see them in detail.

Month 0 — Internet, Browser, Web Services

Since I decided to become a web developer, the first month was devoted to the basics. How does the Internet work? What are Browsers, Cookies, Cash, Web Services, Hosting, and DNS? Studying these topics gave me a fundamental understanding of how all this magic works and interacts with each other. When I open the browser and insert the website’s address, what happens behind the scenes so that I end up seeing images, texts, and other content of the webpage?

The above topics were enough to get started. My main goal was not to delve too deeply into the basics, otherwise, the process would become too complicated, confusing, and time-consuming.

At this stage, I already had a mentor. Mentor feedback and reviews played a critical role in the process, they guided and kept me on the right track. There were many complex and difficult-to-understand topics, which the mentor dismantled and explained in plain English.

Month 1 — HTML & CSS

This month I started learning my first programming language. Although most do not accept the above as programming languages, for me they were. These two helped lay the foundation for my web development skills.

My first mistake, which my mentor corrected, was for me not to rush, take my time and practice more. Avoid just reading and completing chapters, otherwise, in a couple of days, everything learned will begin to be forgotten.

Topics on which I focused more:

  • Accessibility, Forms, and Validations for HTML
  • Grid, Flex, Responsive Design, and Media Queries

Closer to the end of the month, when most of the topics were covered I started building my first static web page. Of course, not everything worked out in the process, the code did not work and throw errors. At such moments, it is important to remain calm and not let the negative thoughts absorb you too much. It’s part of learning and programming. Just try to enjoy the process.

The course I followed was the freeCodeCamp “Responsive Web Design”. It had a great structure and after each lesson, there was a challenge to complete that helps to solidify the topic. Recommend.

Month 2, 3 — JavaScript

The hardest part of this journey without a doubt was JS. One month was not enough to cover the basics of the language, so I extended it to two months. Almost all the topics were difficult and I had to go back several times to review them. Sometimes I had to search YouTube for alternative simpler explanations. It is much better to alternate with practice, completing one topic and immediately moving on to coding.

Topics I paid the most attention to:

  • DOM Manipulation
  • Objects — Class, Prototype
  • Functions — Closure, Callback, Memoization, Module, Recursion
  • Inheritance
  • Arrays

As sources, I have followed another course from the freeCodeCamps “JavaScript Algorithms and Data Structures” and Douglas Crockford’s “JavaScript: The Good Parts” book. The course is great as always, but let’s talk about the book as well. In the beginning, it can be very challenging, but I believe it is essential for anyone who wants to learn JS. In the beginning, I finished the course and later on catch up with the book.

Month 4 — Projects & Review

Setting aside a whole month for practice was a great idea. Doing a real project helps you see gaps in your knowledge. There are many great projects on the web, although the “JavaScript Algorithms and Data Structures” course has some great project ideas as well. But I chose to focus on these:

  • Calculator
  • Snake Game
  • Tetris
  • Table tennis

Each project is not too big or complex and can be completed in about one month. After the code was finished, I set up a couple of review meetings with my mentor to review and learn best practices and optimizations. It’s hard to get these skills without submitting your code to more experienced programmers for review. Don’t feel insecure about your code, no one can write perfect code from the start, it’s a step-by-step process, and code review is an important part of it.

Check out this great speech “The Myth of the Genius Programmer” about the topic above given by Brian Fitzpatrick, and Ben Collins-Sussman at Google I/O 2009.

Month 5 — Other Libraries

After reviewing dozens of job descriptions, I noticed that almost all employers are asking for additional libraries or frameworks for JavaScript. At this point, checking additional libraries can be wise. Here ones I checked:

  • jQuery — it is an easy-to-learn and very helpful tool for working with DOM
  • React — is one of the best libraries out there, just worth taking a look
  • Redux — in addition to React, helps manage and centralize application state

The React and Redux documentation on their websites was a great source. Easy to read and understand, great examples of good library documentation. In addition to that can recommend the “Front End Development Libraries” course as well.

Month 6 — Preparation for the interview

In the last month, I have been fully focused on preparing for the interview. Before applying for an interview, I did my homework. Dozens of interview questions and articles, counseling meetings, trial interviews with a mentor, reviews, and recaps of past topics.

The most important thing I took away from this is the understanding that you will never be completely ready. No matter how many times you review and repeat, there will always be gaps and missing topics. The luck factor always plays an important role, the more shots you make, the higher your chances of success. Just start applying, then more, then more.

As once a wise man said:

TheOfficeisms.com

The plan above helped me get my first job in software development, I hope this helps you too. The journey has been arduous, with days of sleepless nights trying to figure out a bug or a missing argument, causing the code to fail. But in the end, it all pays off.

Just remember to be passionate and dedicated and invest in yourself.

After working for a couple of years as a front-end engineer, I decided to try my hand at the backend. If you want me to share this experience too, please leave it in the comments.

Good luck.

--

--