Engineering the Journey of Continuous Learning
/It's important for professional software developers to always be learning, but this often requires effective time management. Indeed, balancing a professional and personal life, all while having to constantly improve by gaining and applying useful knowledge, can be challenging.
A valuable discipline I’ve practiced over the years is delegating the discovery of relevant and high-quality content to others simply by following their work and activity. This technique can save time required for research, it can serve as a quality filter to the data encountered, and it can expose you to opinions of people who may not necessarily agree with you (something I recommend).
There’s so much written and recorded content from the past decade that it’s impossible to stay up to date with everything happening in your field. Employers ask for specific technologies for their codebases and workflows. Future employers ask for applied knowledge on areas you most likely aren’t familiar with unless you’ve specifically worked with them in the past. Furthermore, the communities of the platforms we develop for switch trends often, and we’re expected to stay on top of these changes and form comprehensive opinions on them.
For beginner software developers, it tends to be easier to find the answers in search engine queries, as there’s a sufficient amount of online content describing how to reproduce a specific result. However, as we advance as engineers, we discover abstract notions and methodologies applied to a variety of platforms, but not necessarily ours. For example, there’s plenty of material on design patterns and test-driven development; however, when transferring these ideas to another platform, such as Swift and iOS development, it can get messy. There are few sources of quality content on these subjects, and often times, this results in the developer abandoning the time investment and effort to truly understand and apply these notions to their platforms and projects. Even so, taking the time to attempt to learn and apply these ideas in our own work will make us aware of what we need to be learning next.
Another significant skill is the ability to create well-timed, rational, and thoroughly explained arguments. While evolving professionally and developing multiple outlooks, arguing with peers about the use of an optimal solution will probably occur more often than before. Yet in spite of these situations being stressful, they can expose weaknesses in our skillsets and reveal areas that require improvement. They’re an excellent occasion for questioning our beliefs and validating our knowledge, but they also point out where we lack expertise. A professional software developer will perceive these moments as opportunities to validate their knowledge or learn something new.
To overcome the aforementioned challenges, you can follow the work and opinions of advanced software developers or people who inspire you. By observing their beliefs and patterns, there’s a good chance that references — most likely from people they admire and respect — will emerge in the content. This process can be performed exponentially until a solid network of authors and speakers, on a wide spectrum of technologies and topics, is formed.
Thanks to social media, RSS, and other online services, the above approach is mostly free of charge. Blog posts and articles mention and link to other ideas quite often. People retweet influential messages daily, and their bios on Twitter contain information about themselves and the work they’re doing. The same principle applies to open source contributions and GitHub.
This process of learning can also be applied to software engineering texts and other print sources. Though books are often more cost prohibitive than information on the internet, they also contain more than face value might imply. Reading a book exposes you to the main ideas and suggestions of its author(s), but the footnotes and the fine print should also be given consideration. In fact, these cross-references and citations often prove just as, if not more, valuable as you continue your journey of continuous learning.
So if you’re looking at your work load and wondering how you’ll be able to do your job and still have time for professional development at the end of the day, fret not. Following and consuming content from the right people and investing time to learn about their work is a simple technique that will expose you to new ideas and approaches that will help you progress in your career. In turn, fine-tuning this skill will make your life immeasurably easier and aid you in becoming a lifelong learner in your field.