About a week before this writing, I got an email from my friend. She asked, “How do I get to be good in Python before my interview next week?”
This is not an isolated question, with all the hype the field has been getting over the past years, it has created an illusion within the general populace that it’s easy to become a master engineer.
By consuming media through computers over many years, many have been disillusioned into seeing their familiarity with software products as wisdom into how they work.
Still, just like any other discipline, software engineering can be mastered using time tested techniques.
In this entry, we shall look at what I believe is a viable path towards becoming a master.
Make the big decision to make the smaller decisions
The common misconception is big decisions matter more than small ones. Thus the new year’s resolutions list or the strategic decision making seminar.
In practice, it is the small decisions which are the hardest and the ones that matter the most.
Deciding you want to learn how to code is easy, deciding this Friday evening you will not go out with your friends or watch Netflix but will instead wrangle with design patterns is the hard one.
Find a way to get feedback
The easiest person to lie to is yourself. Have you ever met an individual who first saw an IDE two months ago and today they call themselves senior developers? Well, I have. They are not even lying, they absolutely believe this to be the truth.
The problem this individual faces is they have no idea how they compare to everyone else or what the industry demands of an engineer.
If you can make it through the first arduous days and weeks of programming, it’s very possible for you to be able to hack a semblance of an application. This does not mean you have a programming product.
This is a program that can be run,tested, repaired, and extended by anybody. It is usable in many operating environments, for many sets of data. To become a generally usable programming product, a program must be written in a generalized fashion. In particular the range and form of inputs must be generalized as much as the basic algorithm will reasonably allow. Then the program must be thoroughly tested, so that it can be depended upon.
To grow then you must push yourself to work with others, to put your code out there in the world to be scrutinised by others, I assure you, it will make you better.
Build it into your identity
There is no done. The field is so wide, even if you dedicated every single waking hour to consuming the literature available, you would die before you had it all.
Is this discouraging news? I would like to think not, it means your life will never lack purpose. It means every day there is a chance to experience the subtle joy that arises when you learn something new.
Thus you must commit yourself to becoming an engineer, to continuously grow and learn. Becoming better needs to become a natural part of your life just like say eating or breathing. Have you ever met someone who is now a master of breath and now no longer needs to breathe?
Where are you on your path to mastery? Talk to me in the comment section below or on my twitter @jchex