-
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: -
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: -
Software architecture -
software design -
Algorithms and data structures( Explain common data structures and algorithms based on Go ) -
Design Mode -
Elegant code -
SOLID, DRY, KISS and YAGNI principles( Main software design principles you should know ) -
system design -
data -
Git( How to learn Git )
-
-
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. -
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. -
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. -
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 ) -
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. -
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 》 -
-
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 》。 -
-
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 》。
Learn the basics, not the framework
-
algorithm -
data -
Elegant code -
Design Mode -
Distributed architecture -
system design -
There's more
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