One aspect of the Apprenticeship Patterns reading that stuck with me was the requirements a person needs in order to be a successful software developer. A “growth mindset” as its referred to in the text is the idea that no one is born with inherent talent in a skill, its through dedication and failure that one reaches success. The growth mindset is a mindset that welcomes failure, because it teaches you to tackle the problem from a different angle. It’s the belief that something can be improved if you’re willing to put in the work despite failing. From failing, there is a lesson to be learned, from success you don’t learn anything. In a field that is constantly changing and improving, it’s crucial for a developer to have the ability to adapt to new features and languages. As a developer, you’re continuously learning how to do things more effectively than the last time, whether it be utilizing data structures or pushing out a feature. This aspect goes hand-in-hand with encouraging experimenting. Through experimenting for better solutions and failing, you get to learn why something doesn’t work or why a solution is preferable over others. On the other hand, though experimenting you might find solutions that actually improve efficiency, resulting in solutions that you can reference when solving similar problems.
Another essential aspect is pragmatic over dogmatic. It’s easier to first make a practical solution and polishing it later than trying to create a perfect solution the first time. It trains developers to think adapt when faced with changing conditions and favors optimizing for efficiency. Additionally, I think this tackles the common problem of procrastination because it allows developers to initially focus on solving the problem and disregarding how your code looks. It doesn’t matter how efficient your solution is if it doesn’t solve the initial problem in the first place.
Both of these aspects improve a developers efficiency and promotes a continuous learning routine. It allows us as developers to improve our skills and better prepares us the problems we face in the future. The rapid invention of technology today doesn’t guarantee a developers future in software, which is why we as developers must keep up with the pace and polish our skills.
From the blog CS@Worcester – Computer Science Through a Senior by Winston Luu and used with permission of the author. All other rights reserved by the author.