After being out of the educational system for about a year, it’s common to reflect on what learning is all about. Chalk up the past 20+ years to school and post-secondary studies, and I realize that I’ve spent my whole life learning and growing and changing. It wouldn’t make sense to stop that thirst for knowledge after leaving a formal institution.
A friend of mine recently asked me a poignant question:
How do you stay up-to-date on the latest technologies and trends? How do you keep up?
When I first started full-time work, I felt pretty overwhelmed with all the life decisions required. Where does my paycheck go? What am I saving for? When do I retire? When do I even have time to learn?
We learn all the time, whether it be practical or useless knowledge. Whether it be on the job or in spite of it. I find that if you don’t have the opportunity to learn at work, set yourself some SMART goals to achieve. Without drive, you really won’t go very far.
I’ve heard of a statistic where a lot of people, when they retire, quickly pass away due to a lack of spirit. If you’ve only lived for your work, there’s not much else out there when you can’t do it. So I say, learn for the sake of expanding your own horizons, and your technical chops. Languages will come and go, fads will change, but you want to be able to keep up your ability to learn, and to learn quickly.
Many companies seek out experienced developers and engineers who can learn quickly and have the know-how to learn the required skills in depth. That kind of skill needs to be trained and nourished.
Some people may ask: where do I even start? Here are my thoughts:
- Check out Hackernoon or Medium or any technical blogs out there
- Look at r/programming
- Read a textbook
- Brush up on your algorithms and data structures - I’m sure there’s always more to learn here.
- Take an online course on a new topic: databases, caching, security/encryption, crypto, etc.
I think the biggest thing is starting. Get into the habit. Allocate some time and do your own personal sprint/hackathon for a few hours just to do a deep dive on a concept. Reading is one thing but actually implementing and using new tech is important. My mentor often comments on how trivial it is to implement the usual tutorials, but I think there’s merit to it nonetheless. Have to learn to crawl before you can walk before you can run. And try to find some niche use case that few people really explore, and make a journey out of it. Dig deep and ask questions, especially with the implementation. If there’s any magic involved, figure it out.
Another big area of discovery and learning is in contributing to open source software (OSS). To provide a bit of a fair warning, I find it very difficult to find a project that you have interest in and are looking for help AND have small beginner-friendly contributions available. In order to code and design better, it is essential that one looks at good code and best practices…. in practice. We don’t live in a utopia or code in a vacuum, so the more exposure that one has to good examples, the better. Read code! Critique it. Reflect on it. Every year, GitHub has the “beginner-level” tags available but I guess I’m always too late on the uptake.
Writing and mentoring is a facet of learning. Teaching others requires a mastery of the topic, and if you can’t dumb down complex ideas, it’s probably a sign that you don’t know it very well. ELI5 actually works, as well as rubber-duck debugging. Heck, this blog is itself a reminder to continue on the pursuit of knowledge and improving my technical chops.
Just remember, stagnation is the end. Don’t let yourself lose interest and know that somewhere among the great corners of the web, you’ll find something you’ll want to learn about.