10 lessons for become a great Software Engineer?

Photo by ThisisEngineering on Unsplash

As we all know being a software engineer is not an easy thing. Beyond Interview you need to know a lot, constantly learn and improve yourself. But, during my career I found what differ good and great software engineers.

Here are recommendations on how to become a great software engineer, have summarised it in 10 key lessons.

1. Master one programming language in depth

Take one programming language and go in-depth with it. Learn everything you can and be a master of it. Some good languages you can select today are Python, Java, C#, and Rust, …

𝟮. Learn Software Engineering Concepts

When you master a programming language, its syntax, semantics, and constructs, the next thing is to learn different software engineering concepts, such as:

  • Software architecture
  • Software design
  • Design patterns
  • Clean code
  • SOLID, DRY, KISS, and YAGNI principles

3. Learn the complete SDLC processes

Try to understand the complete software development process, from requirements to deployment. Learn about Agile methodologies, DevOps, and Quality assurance.


And try to work on different projects, on more projects you work you will learn new stuff and grow.

4. Be a Product-Minded engineer

When working on your project, don’t settle just with specs and jump to implement it. Think about other ideas and approach your product manager with them. Try to understand the complete system, but also how business works. Be an end-to-end product feature owner.

5. Avoid copy-pasting code

When I was starting my career, I used to do Copy and Paste a lot; when I say a lot, I really mean a lot. This was definitely one of the biggest mistakes I made when I started.

The problem with Copy and Paste is that you’re actually not learning much, you just grab some code here and duplicate it there and you miss all the important details within those chunks of code that you copy everywhere. One more thing to keep in mind is that it also leads to code duplication, but hopefully, I don’t need to remind you of that.

6. Learning from peers and mentors

You should always be willing to help others out when they ask questions or need advice. Teaching others gives us a greater perspective on specific topics/situations that may otherwise seem foreign (or intimidating) if we are only observing via text/video alone. Also you can take advice and recommendation from team and maintain a open minded culture.

7. Improve Your Soft Skills

Be respectful of others, communicate clearly, and be humble. Being kind has no financial cost, but its effects are immeasurable.

Try pair/mob programming. Talk with people outside engineering, grab a coffee, or lunch, or do a hallway chat with them.

8. Intentional learning

We need to learn, but the trick is when and how. Don’t just learn things, because this is inefficient. We need to learn intentionally, just before we need it and this will make the biggest impact.

9. Work with someone who has more experience

The fastest way to progress in your career is to find a mentor. He can help you find your gaps and show you some new opportunities. A mentor can be found inside an organization or outside (check specialized services).

10. Use good engineering practices

Learn and follow good practices, such as:

  • Using version control
  • Use a gatekeeper for your code repository like SonarQube to have a automatic quality check
  • Write your tests properly (check the test pyramid)
  • Learn how to refactor
  • Learn TDD
  • Code reviews
  • DevOps mindset

Also, learn your IDE very well, and all the important shortcuts you need. Debugger too.

Also read :


Leave a Reply

Your email address will not be published. Required fields are marked *

two − one =