Time-Driven Engineers
Through my career, I’ve come across different kinds of engineers that I’ve learned a lot from. But indirectly I have also learned from them the different patterns that directly contributes to their professional growth and their ability to stay relevant in this industry.
There are two very observable types of learning patterns amongst software engineers, I like to call them in more technical terms as time-driven engineers and event-driven engineers.
Let’s talk first about the Event-Driven engineers (EDE).
EDEs get only motivated to learn and grow their knowledge when an event occurs, such as having to do an interview, moving into a new team and having to learn a bunch of new things to catch up, or simply having to do a tech leveling session to educate others about some new technology.
The problem with being event-driven, is that events don’t occur that often for most people to continuously learn and grow, which results in the case of stale knowledge, especially in the software industry, what you thought you’ve known is now old-school and v 2.0 is out and you got to keep up.
An EDE could spend over ten years or even more working at the same company with the same domain knowledge and the same systems without having to learn any new skills, technologies or patterns. Merely making sure the system continues to run as expected and that’s it.
The other kind are the Time-Driven Engineers (TDE).
TDEs have a continuous scheduled pattern of learning, everyday represents an opportunity to learn more, grow more and to take advantage of the time they have available through their day to get to make the best of it.
TDEs can learn in so many ways, such as reading blogs, code, books or watch tutorials or simply have daily meetings and joining groups where they discuss different technologies and patterns.
But teaching others can also be an opportunity to learn, we retain over 70% of the information we teach others and it helps us get different perspectives about what we’ve learned when we communicate that knowledge to others.
Being a TDE could cause missing opportunities to learn from certain events, being a EDE as we said, could cause a stale outdated knowledge and getting out of touch from what’s going on in the industry.
The best of the two is to be both, continuously schedule learning new skills, patterns and technologies on daily basis, but being able to adjust and be agile with your learning schedule when an interesting event arises to learn something from.
Learning because of certain events occurring is very beneficial if mixed with continuous learning and growth, sometimes some events occur that will consume our already scheduled time for learning so we can learn from them and be able to handle them.
And that’s fine, we should be agile and flexible enough to adjust our learning schedules and patterns as we go — otherwise learning would be very academic and dull if it can’t be connected to real life and be adjusted based on the events that we go through.
Trying to adjust my continues agile learning schedule, I found it to be very beneficial to change what you learn and how you learn it every day, for instance as a software engineer, it’s very refreshing to take some days to learn simply by reading someone else’s code on github, while other days I’d read books, articles or blogs and some other days I’d just watch tutorials, videos or listen to podcasts of interesting topics around technology.
And like I’ve said earlier, teaching others and getting feedback from them could also contribute to our own learning, experience and growth in soft skills like communication skills, positive attitude and self-confidence amongst many others.
Switching between the ways we learn could have a big positive impact on the continuity of our growth. Having several ways to learn plays much better with how our brains are built and eliminates the feeling of dullness or boredom that may occur from following the same pattern of learning on daily basis.
Here’s some of the different ways we could learn as engineers on daily basis:
1. Reading (books, blogs, forums)
2. Watching (tutorials, conferences, lectures)
3. Discussion (With colleagues, friends, family, experts on social media, emailing authors)
4. Teaching (Online, mentoring, lecturing and writing blogs, answering questions on StackOverflow, sharing articles, thoughts and experiences)
5. Coding (Open source projects contributions, reading others code, engaging on Github in documenting and discussing pull requests)
And finally, we should treat learning the same way we treat our basic needs such as eating, drinking and breathing, it has to be a fundamental part of our day to day lives, feeding the intellectual aspect of ourselves is just as important as feeding the physical and the spiritual aspects to achieve true happiness through success, and harmony within ourselves, our families and friends and with the rest of the world.