How to become a software engineer?

29 Jan 2023

This was a question that my friend asked recently and it got me thinking. What were some common patterns that people followed in order to acquire the skills needed to be a software engineer?

In this blog, I’d like to break down my personal journey of becoming a software engineer and some key themes that I have seen in other people’s journeys to provide a broad picture of how to become a software engineer.

What is a software engineer?

In my eyes, a software engineer is someone who uses technology to solve problems. The technology that they use depends on who they are, the problem context and the maturity of their technology. But it always revolves around solving a problem for consumers, businesses or the government.

With this in mind, the most direct way of becoming an engineer is to be extremely good at solving problems. So now the question becomes: how can I solve problems?

The golden rule: build products to become a software engineer

When I started my software engineering journey in university, I asked this question to people from my senior years and people already in the industry and everyone has a very consistent message:

Create your own coding project to learn software engineering

This is the golden rule for anyone who is looking to create a career out of software engineering. It serves two purposes:

  • Building your own project teaches you to discover a problem, which simulates working on real-life projects
  • While building it, you will need to make many architectural/coding decisions, which amasses your portfolio of best practices

To formally execute this, it is important to start small first and build harder and harder projects. Oftentimes, new starters want to jump straight into building a full-stack app, without grasping the basics needed to execute that. When learning any skill, rushing is equivalent to building a house on sand. Starting small allows you to consolidate your foundation, such that your development quality and speed is higher in future projects.

Tools and frameworks that engineers use to build products

In my journey, my goal end goal was to be able to create a full stack app, which is an app that had a frontend user interface, a backend layer for handling business logic and a database to store information. I made small steps towards this goal by building the following projects:

  • A portfolio website with ReactJS
  • A stock tracker website with python Django
  • A stock voting system as a mobile app on Xamarin forms and Azure cloud

The order of the projects I built incrementally builds my skill as a full stack developer, starting with frontend skills with the portfolio website, then backend skills with the stock tracker and finally, full stack skills with the mobile app. Learning incrementally allows you to continuously improve your skills by building projects that are “just” outside your comfort zone. The more you build harder projects, the further you are able to stretch your uncomfortable zone until you reach a point where you can build anything you want; it will just be hard and takes time and it will not be impossible.

Is this the right fit for you?

To tackle this question, I’d recommend reading this book called: So good they can’t ignore you by Cal Newport. This book postulates that a person starting their career should explore a field where they are “good” at it since passion can be derived from what you are good at. From my experience, a person who likes solving problems using technology (specifically) can find software engineering to be a rewarding field. You are challenged every day to learn something new and pick up new best practices and having that tech-driven learning attitude goes a long way in software engineering.

So good they can't ignore you by Cal Newport

Coming back to “being good” at software engineering when starting out, I will again emphasise the importance of building your own projects to learn from them. Actively coding can be far more beneficial than purely looking at the theory (although this assumes you have a decent foundation in computer science concepts).

And don’t be afraid to build “filler” projects initially. Not every single project you build must be the next tech startup and there will be projects where it is entirely focused on learning a tech stack whilst being a generic app. I’d encourage taking those generic apps as lessons on how to build a great app so that when the time comes, you will know how to do it.


To summarise all the points above, becoming a software engineer takes practical experience. Building your own app or for someone else can be one of the most valuable lessons you can learn as an engineer and for those looking to start a career in tech, remember that anyone can become a software engineer. All it takes is an innate interest and work ethic to keep learning and building!

If you are interested in learning more tips about working as a software engineer, check out this blog about workplace stamina:

And here are some bloggers on BULB who I'd recommend reading to learn more about software engineering:

Write & Read to Earn with BULB.

Join now

Enjoy this blog? Subscribe to Johnson Chau


Software engineering is one of most demanding as everything is now done via some application that requires coding knowledge.So, becoming a software is essentially seving the humanity and making world easier and better place. To be good in it ,we must be good in coding skills. Also,it's crucial for aspiring software engineers to gain hands-on experience through internships, personal projects, or open-source contributions. This not only helps demonstrate your skills to potential employers but also provides an opportunity to apply what you have learned in a real-world setting and develop your problem-solving and coding abilities
I can describe this article as an overall summary on how to become a SE.
Some great advice especially the reference filler projects that enable you to develop and learn your skills that will benefit you in the future.
Thanks so much for mentioning @Johnson Chau!!! I am really happy about this. A little bit of contribution, I always practice my tech skill too, creating new fake apps, I love to buy new books about software architecture and engineering and read them of course hahaha and to catch these new bits of knowledge in my brain I like to share it in my blog such as here in @BULB Official
To learn something new need lot of dedication and hard work to learn coding and software engineer skills we need to work on technology that presently running in software industry.
Remember that becoming a software engineer takes time and effort, but it can lead to a fulfilling and lucrative career in a growing and dynamic field. Continuously learning and developing your skills, and building a strong network, will help you achieve your career goals.
Becoming a software engineer requires dedication, hard work, and continuous learning. You can develop the skills, build a portfolio that can be used to showcase your work to potential employers. You should acquire experience needed to succeed in this exciting and dynamic field. Thanks for sharing.
yes you are right about practicing
Software engineering is really tough for a person like me but if you want to develop a new software that helps people in different ways then this field is amazing.
Not everyone will be a software engineer but the post is needful
Carlos on Web3
Thank you, I'm planning to take a Full Stack course to get some projects off the ground and after that I plan to start Software Engineering college
Software engineers design and create computer systems and applications to solve real-world problems. Software engineers, sometimes called software developers, create software for computers and applications.
Paul Traps
You have given very useful information. I will take admission in engineering college next year. And I will become a good engineer by following the path shown by you. My dream is to become a software engineer. I could not get admission this year due to money, but I will not give up.
I love the shoutout of the book "So good they can't ignore you"! So important to be great at your craft and that comes with consistent practice