Alan Kay, the father of object-oriented programming, shares some very interesting ideas around teaching and understanding. James Bach also touches on the subject in Secrets of a Buccaneer-Scholar. Noam Chomsky and Sir Ken Robinson further acknowledge the failure of modern education in a very deep and interesting analysis.
I think this is very unfortunate, because it means that we (the people) are somewhat mislead in a system that does not encourage individuals to pursue our their inner passion.
But I have a somewhat optimistic view that it is never too late to pursue your goals, even though you have been mislead in the past, for whatever reasons…
Some time ago I read a very encouraging article explaining that intelligence is never constant, it is work in progress.
A mountain of evidence suggests that intelligence really is a skill. That is, the harder you work, the more you learn. So, when you encounter something difficult, it is better to treat that as a challenge than as a sign that you have reached your mental limits. It is also better to believe that studying hard will lead to good learning than to believe that studying hard leads to poor learning. By putting in extra effort on difficult concepts, you come away with more knowledge.
Ultimately, this aspect of learning feeds on itself. The more you learn at any given time, the easier it is to learn new things in the future. The effort you put in to learn is rewarded by making it easier for you to learn more things in the future.
And it works the other way as well, use your brain or loose it.
I sometimes get the question why I do programming and read about it on my spare time. The explanation is that if you have passion and love for what you do, motivation comes naturally because you are acting along the lines of your most authentic self. It is not about “enduring” your job in the traditional sense, it is who you are. This stimulates enthusiasm and creativity in a very powerful way. Focus on your strengths, as Richard Branson points out.
I cannot stress enough on the importance of having a responsible attitude towards self-education – learning without someone telling you. Taking the opportunity to learn something new and continuously sharpen your skills, every year.
And so I have a few tips for software developers to get into this state of mind. You may of course feel that these advices feel boring and annoying to apply in practice. But if that’s how you feel.. I would advice you to think twice about if software development is for you (if you havent read the links i posted earlier, do so and you’ll see what i mean). So here goes..
Practice continuous self-assessment of your previous work, maybe by looking at old code and try to think out-of-the-box on how it can be improved.
Fork and read code from popular Open Source projects and try to change them. Or even better, join a Open Source project that interest you. This can also be a way to extend your social network with bright, caring and driven individuals that also probably will inspire you in positive ways.
Improve your ability to perceive many different perspectives by learning something entirely different. Try to take two different ideas and combine them in different contexts to create something new, the basic principle of innovation. I have elevated my way of thinking of design a lot from reading philosophy for example, in particular Ontology (study of reality) and Epistemology (study of knowledge). Or why not learn business strategy and planing, management techniques, or economics? Aristotle’s philosophy covered physics, metaphysics, poetry, theater, music, logic, rhetoric, linguistics, politics, government, ethics, biology etc.. that’s an impressively broad set of subjects!
Read books, at least one every year, and try to find timeless books written by people who are famous for their brilliance. If you find out what these people read – add those books to your reading list. Isaac Newton said, “if I have seen further it is by standing on the shoulders of giants”. Eventually you will learn to discover the same fundamental red threads buried underneath different domains, perspectives, shapes and forms.
I just started a blog and i regret not doing it earlier. It makes you really reflect and organize your thoughts and pushes you to find and think about new or interesting things to learn.
Try to be humble and a good listener – which can be hard in the face of arrogant and ignorant people – the greatest enemy of learning is knowing! Never, ever ever ever, be afraid to ask questions! Socrates used questions to stimulate critical thinking and illustrate ideas, he said, “and in knowing, that you know nothing, makes you the smartest of all”. Richard Feynman summarize this mindset in a beautiful way.
The more I learn, the more convinced I get that software development truly is about knowledge acquisition and ignorance reduction.
I wish you Good Luck on the lifelong road of learning!
For every step you take toward mastery, your destination moves two steps further away. Embrace mastery as a lifelong endeavor. Learn to love the journey.
Related Articles :
This guide will introduce you to the world of Software Architecture!
This 162 page guide will cover topics within the field of software architecture including: software architecture as a solution balancing the concerns of different stakeholders, quality assurance, methods to describe and evaluate architectures, the influence of architecture on reuse, and the life cycle of a system and its architecture. This guide concludes with a comparison between the professions of software architect and software engineer.