Recently, in a virtual career event at Cisco, I got a chance to hear some great leaders talk about the role continuous learning has had in their careers and how they make sure to always be learning.
As no two career journey’s are identical, there were some really diverse stories and brilliant words of wisdom.
This blog post, however, is not to share my takeaways from that session. It’s rather my take on integrating continuous learning in an engineer’s journey.
What is Continuous Learning?
Continuous learning has had various names including lifelong learning, constant learning, etc. To me, it is just a self-motivated way of increasing your knowledge, gaining new skills or sharpening existing ones but without the pressure of delivery dates and timelines.
Everyone has their own way of learning new skills. Some like to read line by line through books, some are more inclined towards audio/visual content and others believe in the process of learning by doing.
I prefer a hybrid approach to learn anything new (be it tech or not), by creating something which requires the skill. All my side projects have enabled me to learn something new every time.
The process starts by defining a problem to solve, and as I begin to work on the solution, I would watch videos/read documentation around the tools I have to use.
Benefits of Continuous Learning
Regardless of how you chose to widen your knowledge base. The outcome is more or less the same.
Here are a few ways in which the approach of working on small (but not inconsequential) side projects to learn continuously has helped me — and even my employer.
1. Improved Problem Solving
Like muscles in a human body, our brain also needs to be exercised regularly to become better at its task of solving problems. It is specifically useful when your day job becomes repetitive.
You’ll have to solve multiple unknown/unheard of problems while working on a side project. This boosts motivation and keeps those grey cells busy!
Working on different projects and technologies enables you to see a problem from different perspectives, thus helping you gain a deeper understanding.
2. Cross-domain Innovation
Having different perspectives to the same problem also enable cross-domain/cross-functional innovation. Steve Jobs took a calligraphy class in college and 10 years later when they created Macintosh; it played a big role in its beautiful typography.
Being an indie developer, you are one-person army. You need to do everything including (but not limited to) design, marketing, SEO, DevOps, content writing, customer support, etc. You’d have to learn new tools and techniques to do all of this.
Things I learned from my side projects have helped me multiple times at my day job. For instance, I had to work with node.js to write server-less functions for WeWorkRemotely app’s back-end. Recently I got a chance to automate a bunch of manual tasks using node.js in my day job savings hours of developer time.
3. Peer Knowledge Sharing
While continuous learning helps each individual, it is also very beneficial for the organization you are working for. With knowledge comes – responsibility, responsibility to teach, and to build a culture of sharing and helping.
With side projects, we are free to use bleeding-edge technology (obviously within free tier 🙂 ). Companies, however, take some time to adapt to new trends and when it is time to jump on to the bandwagon for your employer, you can always be the one guiding and helping your peers with the experience you’ve had while building your pet projects.
I tried React.js for the first time to create a landing page for Muhuratam, although it did not look great, I still got a hang of React basics. This came in handy when we started on a new React based project, and I could share with my team whatever I’d learned.
4. Internal Movement
Have you ever felt that you are stuck in a particular project and wanted to move to a different interesting project? I think the easiest way to move is if you can showcase what you bring to the table which can help the goal of the project.
In 2011 sometime into my first job, I was trying to move to a different team that was creating a very interesting android application. I knew Java, but that was not enough. So, I created Muhuratam and sent out an email to leads on that team asking for feedback. Android devs were a scarcity then, I was moved to that project by that very evening!
5. External Opportunities
Things like staying updated with current trends, being hands-on and ready to showcase your ability and eagerness to learn new things, are always considered an advantage in any resume. A side project helps you do exactly that!
My projects have consistently resulted in interesting conversations in all the interview discussions I have been a part of. Solutions and decisions taken while working on these projects have many times helped me answer some difficult questions 🙂
Now that you have made up your mind to create at least one side project, you might either have decided what you are going to work on or you are stuck between –
- You don’t have any ideas.
- You have so many ideas and can’t decide on what to take up.
If you have already decided what you are going to build next, do drop a link below in the comments when it reaches the MVP state. I would love to see what others are working on!
If you are stuck, here’s what I would suggest –
1. No Ideas
Once, I asked an ex-colleague with many patents under his belt about how he manages to come up with such brilliant ideas and file so many patents. This is what he told me –
“You find what you look for, I try to analyze every problem from multiple perspectives and see if there is a chance to come up with a novel solution.”
It is a different debate whether this is something to always go for, but if you are out of ideas then it helps to focus on what you want to learn/do next and then find opportunities do that in every problem no matter how big or small.
You can also always team up with people who have an idea to work on but need some help with it.
2. Too many of them
Decisions can be daunting, especially when you desperately want to work on each one of your ideas. The trick here is to list down all of these ideas together and then assign the skills needed to complete these ideas or the technologies you might want to use.
After you list all of them, it gives you an idea of which one is going to result in most learning and help you reach a defined goal. There might a project where you could use and learn everything new, but that would result in taking up a lot of your time and you might be frustrated before even an MVP is ready. Avoid such projects 🙂
Continuous Without Liability
People often ask me, “How do you get time to do all of this?” or “Why don’t you start doing freelance on the side?”.
The answer is “Liability”. When I take a salary from my day job, I am liable to do that work with complete sincerity. Keeping legalities aside, same would be the case if I took up freelance work. I will be liable to complete good quality work on time. This would mean either my day job or my personal life would be impacted by it. Not a great outcome (unless huge money is involved, in which case why not make that your full-time job?)
Side projects are self-motivated tasks for personal learning, they don’t have a deadline or some one’s money put on them. Everything can always wait! For example, I have been trying to complete this blog post for 10 days now.
I know everyone can’t work on side projects. There is a high chance that you have a hobby that takes up most of your spare time. Not every engineer has to work on side projects to be good at their job or grow in their careers.
Continuous learning, however, is a necessity in every field, not just engineering. You just need to figure out the method that suits your needs and interest.
If you do like creating things, learning by doing or exploring new technologies by testing them in real life then I would love to know more about what you are working on. Do drop a comment below about your awesome idea/creation or DM me on Twitter if you’d like to discuss anything tech-related!