Things I Would Have Done Differently As A Software Engineer

Things I Would Have Done Differently As A Software Engineer


4 min read

Embarking on a career as a software engineer is an exciting and challenging journey. It's a field that constantly evolves, demanding continuous learning and adaptation.

As I reflect on my path as a software engineer, I realize that with every step I took, there were valuable lessons to be learned. In this article, I will share with you lessons I wish I had known when I started.

From the importance of building a strong foundation in computer science principles to the value of continuous professional development, these insights will help aspiring software engineers navigate their career paths more effectively.

Let's start.

Picking the first job more wisely

In the first 1-2 years of your software engineering career, your priority is to learn and absorb as much as you can.

Your first software engineering is the job where you'll pick up good (and bad) habits.

In your first job, you'll learn how to read a codebase, create your first pull request, do your first code review, work as part of a team, and more.

It's where you'll form your view around best practices for software development.

Your first job may make or break your career. If you can, pick your first job wisely. But don't be discouraged by one bad job.

Don't stay in jobs where you're not growing.

Read How To Choose A Software Engineering Job to learn about the factors to consider when choosing a software engineering job.

Focusing on the basics

Every year, the tech industry creates a new framework, programming language, and database.

You don't have to learn all of them.

Focus on the basic skills that will help you in the long run, such as:

  • Data structures and algorithms: these will mostly help during the interview process.

  • Reading other people's code.

  • Writing clean code.

Read 10 Career Advice for New Software Engineers to learn about actionable tips to succeed in your software development career.

Developing problem-solving skills

Problem-solving is the process of identifying a problem and generating potential solutions to solve a problem.

Problem-solving is the main skill of a software engineer. Companies hire software engineers to solve complex problems. You must recognize this.

Depending on the problem you're trying to solve, you may decide whether you can solve that through coding or not.

Not all problems need to be solved through coding.

You can develop and strengthen your problem-solving skills by:

  • Working on projects of larger scope.

  • Learn and practice different algorithms (for example, "divide-and-conquer").

  • Solving mathematical problems.

  • Being open to learning and unlearning.

Saving and investing

As a software engineer, your salary will increase relatively quickly.

Learn how to save, budget, invest money and avoid lifestyle inflation. You'll thank yourself in a few years.

Attending networking events

As you advance your career, networking will become more and more important. Your network will help you when you least expect it.

Attend networking events in your local area and do your best to keep those connections. They will pay off in the long run.

Read Top 5 Networking Tips For Software Engineers to learn more about how to network as a software engineer.

Embracing failure and learning from mistakes

Failure is an inevitable part of any software engineering journey. It's important to embrace failure as an opportunity for growth and learning. Instead of letting failure discourage you, use it as a stepping stone toward success.

When you encounter failure, take the time to analyze what went wrong and identify the lessons learned. Reflect on the mistakes you made and use them as valuable insights for future projects.

Don't be afraid to ask for help or seek feedback from your senior peers – this can provide a fresh perspective and help you avoid similar mistakes in the future.

Failure is not a reflection of your abilities or worth as a software engineer. It's a natural part of the learning process and an opportunity for improvement.

Embrace failure, learn from your mistakes, and keep pushing forward.


By the end of this article, I hope you have learned what I would have done differently if I was going to start all over again as a software engineer.

If this article is helpful to you, consider subscribing to my FREE weekly newsletter. I share more content like this.

Until next time!

Did you find this article valuable?

Support Maddy by becoming a sponsor. Any amount is appreciated!