Learning Mindset for Software Engineers

For software engineers, constant learning comes with the territory. Learning is at the center of what we do, whether it’s keeping up with new tech, or learning the architecture and codebase of a project you just inherited. Here are some thoughts on the learning mindset that can help keep you sharp.

Adopt the Beginner’s Mind

There are two kind of learning mindset I have seen. One that treats the beginner’s mind as a source of frustration, looking to grow out of it as quickly as possible. The other treats the beginner’s mind as a source of liberation, looking forward to practice and the freedom to try new things. It’s the latter mindset that leads to real growth and eventually mastery. That’s the mindset you want to adopt.

The goal is not to go fast, but to go at the right pace, and in the right direction. Progress for each individual will vary and so it’s important to adopt the appropriate beginner’s mind, be patient and let time do its thing.

Practice by constantly building

Software development is a practical skill. And the best way to improve a practical skill is by doing and repeating. That means you need to practice by constantly building new applications. It’s important to do this not just at work, but on the side too.
There are a few ways to do this. One way is to get involved in an open source project you feel passionate about. Active open source projects have strong communities that make you feel like you are part of a large distributed team working on software together.

Another way is to build small useful apps for yourself. For example I built a custom app for myself to track habits, workouts and meals that I eat. Since the app is just for myself, it is heavily customized towards my goals. I may choose to turn the app into a general product some day (like the recently launched thedailyapp.co), but I don’t have to. Building custom software has dual benefits, you get to use custom tools to improve your life and you get to work with interesting technologies to grow your skills.

Stick with it when the going gets tough

The learning journey is never a straight line. There will be moments you feel deeply challenged, and also moments of frustration. But success is only possible for those who are patient and persistent.

If you are somehow stuck, do get help. Ask a question on stackoverflow.com or an appropriate sub-reddit. Be detailed, clear and precise with your questions and you will be surprised by how helpful people can be.
Dev blogs are another great resource. Developers will often blog at length about common technical challenges and how they overcome them. The best way to find them is to simply Google your problem and look for blog posts that address different solutions.

Work with a mentor

The best approach in my experience is to work with a mentor. It’s helpful to work with someone who has past experience in the problem space or technology you are struggling with. A good mentor can guide you and coach you through challenges very effectively.

Mentorship at its heart is about relationships. For example, if you have just taken over ownership of a system from a previous tech lead, it helps to build a strong rapport beyond the handover meetings. This will help you lean on the person for help as you navigate the next set of technical challenges with the system.

Leave a Reply