Software Engineering Mindsets and Attitudes for Senior Engineers
January 18, 2024
The "Towards Senior Engineer Series" is a collection of notes based on recent readings of books and lectures from various industry senior engineers, aimed at understanding the path to becoming a senior engineer. It leverages the wisdom of industry giants to explore ways to advance more swiftly in this field. These notes are shared with those who are also aspiring to become senior engineers.
This article documents crucial mindsets and attitudes as shared by experienced senior engineers. The content is dynamic and will continue to expand with new key concepts as they are discovered. Additionally, any similar concepts, if found presented differently, will be supplemented into the key points.
Mindset 1: Master the basics
Before you can move on to more complex tasks, it is important to master the basics. This means having a solid understanding of the fundamentals of software engineering, such as programming languages, algorithms, data structures, and software design principles. It also means being able to write clean, efficient, and maintainable code.
It is easy to get discouraged when you are assigned tasks that seem simple or boring. However, it is important to remember that even the simplest tasks can be challenging if you approach them with the right mindset. Instead of complaining, try to challenge yourself to see how well you can do.
In addition, if you do not master the basics, it will be difficult to earn the trust of others. When you can demonstrate that you have a strong foundation in the basics, you will be more likely to be given more challenging tasks.
Mindset 2: Know yourself
Once you have mastered the basics, it is time to start thinking about what you want to achieve in your career. Do you want to be a technical expert? A manager? A product manager? There is no right or wrong answer, but it is important to have a clear goal in mind.
Once you know what you want to achieve, you can start to develop a plan to get there. This plan should include things like:
Set specific goals and deadlines for yourself. Identify the skills and knowledge you need to develop. Create a network of mentors and colleagues who can help you achieve your goals.
Mindset 3: Think like a problem solver
Senior engineers are not just good at coding. They are also good at solving problems. This means being able to identify the root cause of a problem, come up with creative solutions, and implement those solutions effectively.
One way to develop your problem-solving skills is to practice thinking like a "why" engineer. When you are faced with a problem, don't just ask "how" to solve it. Instead, ask "why" the problem exists in the first place. This will help you to identify the root cause of the problem, which is essential for finding a lasting solution.
Mindset 4: Look beyond your own work
In addition to being good at your job, it is also important to be a team player. This means being willing to help others, contribute to the overall success of your team, and be open to learning new things.
One way to develop your team player skills is to "look up, down, and out." This means:
Look up: Pay attention to what your manager is working on and how you can contribute. Look down: Help your teammates with their work and learn from their experience. Look out: Stay up-to-date on industry trends and technologies. Mindset 5: Understand your customers
In the end, software is created for users. Therefore, it is important to understand your users' needs and wants. This means conducting user research, collecting feedback, and iterating on your designs based on user feedback.
It is also important to remember that users are not always technical experts. When you are designing software, it is important to make it easy to use and understand, even for non-technical users.
Conclusion
These are just a few of the mindsets and attitudes that senior software engineers should have. By developing these mindsets and attitudes, you can set yourself up for success in your career.