Press "Enter" to skip to content

How to become an excellent software engineer

As we all know, it takes effort to become a software engineer. You need to constantly learn and improve yourself. However, people often have many questions and puzzles about how to become an excellent software engineer and which aspects are more critical

In my 20 years of working as a software engineer, I found the difference between excellent and outstanding software engineers, and gave some suggestions below to help you become an excellent software engineer:

  1. Deeply master a programming language Choose a programming language and learn more. Learn as much as possible and become an expert on it. Some popular programming languages include Python, Java, C #, Go and Rust. To determine which programming languages to learn, you can refer to the following popularity rankings:
  2. Learn software engineering concepts After mastering a programming language, its syntax, semantics and structure, the next step is to learn different software engineering concepts, such as:
  3. Learn the complete software development lifecycle (SDLC) process Try to understand the complete software development process, from requirements to deployment. Learn about agile methodology, DevOps and quality assurance. And try to work on different projects; The more projects you participate in, the more new things you will learn and grow.
  4. Become a product centered engineer When carrying out the project work, not only meet the specifications; Take the initiative to complete the task. Think about other ideas and communicate with the product manager. Try to understand the whole system and the way of business operation. Become an owner who is fully responsible for product functions.
  5. Improve your communication and soft skills Maintain respect for others, communicate clearly, and be modest. Friendly behavior does not cost much, but its impact is incalculable. Learn to write, learn to speak, and be good at expression. This will make you stand out from the crowd. Try pair programming/team programming. Talk with people outside the engineering field, drink coffee or have lunch together, or have a brief conversation.
  6. Purposeful learning We need to learn, but the key is when and how to learn. Don't just learn for learning, it may not be efficient. We need to study consciously and before we really need to, which will have the greatest impact. How to learn effectively
  7. Working with more experienced people In your career, finding a mentor is the fastest way to progress. Mentors can help you find your own shortcomings and show you some new opportunities. Tutors can be found inside or outside the organization (you can view special services, such as MentorCruise )。 Always try to work with people you admire and are admired by.
  8. Use good engineering practices Learn and follow good practices, such as:
    • Use version control tools to write test code correctly (see the test pyramid) Learn to refactor code Learn to test driven development Code review Have DevOps thinking mode
    In addition, please learn the integrated development environment (IDE) you use and all the necessary shortcut keys, as well as the debugging tools. For more details, please read《 High quality work in software engineering
  9. Use efficient work skills In order to improve work efficiency, we need to learn different work skills, such as:
    • Prioritization (check Eisenhower matrix) Time management (check tomato clock) Attention concentration (keep deep concentration) Note taking (use Notion and other tools)
    These skills will help you grasp the most important things in the current task. For more details, please read《 How to improve the working efficiency by 10 times 》。
  10. aggressiveness At the same time, remember to maintain a positive attitude and initiative, which is an important cornerstone of every good software engineer. To learn more about this, read《 Seven Habits of Highly Effective People 》。
 Seven Habits of Highly Effective People (photo source: Nathalie Tu)
Seven Habits of Highly Effective People (photo source: Nathalie Tu)

In the end, we need more things, even though we already know a lot. It takes time, failure and experiment to become an excellent engineer. So go Practice, practice, practice!

 Software developer (picture source: Unsplash)
Software developer (picture source: Unsplash)

Learn the basics, not the framework

As developers, we like to learn new things and try them as soon as possible. These new things are usually some new frameworks and tools (such as React, Angular, Spring, Web Forms, etc.). However, these frameworks usually have only a short life cycle, which can only last two to five years in the best case. Instead of learning these frameworks, although it is necessary to some extent We should focus more on learning basic knowledge

Learning the basic knowledge of software development enables developers to Understand common principles and concepts between different frameworks and programming languages This understanding can provide greater flexibility and adaptability when using new technologies or encountering problems that require time to solve in a specific framework.

In addition, in-depth understanding of basic knowledge can More efficient and effective use of frameworks , because developers can better understand how to customize and extend the framework to meet specific needs.

With a Web application For example, this application allows users to upload and share pictures, and implements this function in Ruby on Rails. If the number of users increases, we only know that the framework is not enough, and only performance problems will be involved. However, if we understand the basic knowledge of Web development, we can identify bottlenecks and try different solutions, such as using CDN, optimizing image size, and using different storage solutions.

What basic knowledge should be learned:

  • algorithm
  • data
  • Elegant code
  • Design Mode
  • Distributed architecture
  • system design
  • There's more

To learn these basic knowledge in depth, please read these books: 2023 Compulsory books for software engineers

 Code (picture source: Unsplash)
Code (picture source: Unsplash)

Content by GeekAI web page translation service Automatic translation completed. Original address: https://newsletter.techworld-with-milan.com/p/how-to-become-a-great-software-engineer

Post reply