How to Crowdsource Continuing Education as an Engineer
“Continuing Education” is a core part of many professions. But it’s a bit harder when it comes to software development, since something new is released or published every day. This makes it easy for us to get left behind once you start working with a stack that isn’t modern but stable.
Everyone is different and has their own way of learning. Personally, I have a problem with keeping up with my own continuing education goals at times, and for all the usual reasons:
- Easily distracted by newer technologies coming out.
- You’re focused on shipping using the current technologies.
- Lack of motivation to learn outside of work hours.
- Short on time due to other obligations or hobbies.
- It takes more discipline to keep a regular schedule.
Crowdsource your continuing education
What are some alternative ways to tackle this problem of self-growth, but make it a bit easier on yourself at the same time? My suggestion is to crowdsource your education. This is not quite the same as attending community learning events or signing up for Code Academy.
The idea is to have some form of human interaction that will help reinforce your learnings. I personally feel that practical experience is much better than mindlessly consuming content published out of the woodwork. Here are some approaches I’ve been taking lately:
This is pretty simple. The idea is that you pair with another individual to perform or solve a task. It is something you can do during work hours to help minimize the amount of time wasted banging your head trying to find a solution. Remember, there are other people who may have run into your problem before, or have more domain knowledge on the code you are working with.
And there are definitely other people interested in their own continuing education, so pair up!
While the idea is to get some task completed, you should also take the time to share as much knowledge whether it is relevant to the problem at hand or not. Make use of the time to also have some teachable moments. Here are some potential “agenda items” for your pairing sessions:
- Show someone how to use debugging tools.
- Share your favorite resources, such as caniuse.com, mdn docs, etc. You’ll be surprised how often people don’t know about some of the most popular resources.
- Taking the time to provide some background information about a service that is or was integrated can be refreshing: code can be readable, but business logic can make it a bit confusing.
Live Coding / Streaming
This has become a trend amongst some of the people I interact with daily. There really aren’t any restrictions at all, besides anything kept behind a NDA, and there is a pretty unique audience out there for this type of thing. There just might be some really smart people who will tune in on what you are working on or doing. And, it’s also nice having feedback from people.
How does this help you as a person?
- You’ll build confidence in your communication skills. Remember, you will be talking to people who are listening. This will also prepare you for giving talks to an actual audience.
- It will break you away from the mentality that there is single solution. This helps you take the time to think through the problem and various solutions before jumping into it.
- Streaming introduces you to an entire community of folks that you can ask for help. This could end up being a colleague or a random person. They might have more experience with getting through the problem you are facing.
Now, what to stream?
Projects you are working on…
This allows others to “experience” your work and though-process, but also allows you to interact with your audience/viewers to think it through (hey, even if you have no viewers, at least you’ve rubber-ducked yourself!) You don’t always need a person to act as your whiteboard, but talking through these concepts are sure to provide you with some “a-ha” moments.
Don’t be surprised if a solution or even simply some more insight comes to you. Presenting your project allows you to think of it in a new way.
As a side effect, you also help gain exposure for your project. And, if it’s open-source, you may eventually gain contributors.
Exploring a new technology: Learning how to use it or how it works…
We are always looking for guides/tutorials/documentation on how to do something. This is usually the case when we try to start on something new.
Why not stream your own struggle to learn it? This provides you with some form of documentation, if you are recording yourself, so that you can look back to see if you made any improvements. You’ll also be able to come into a different mindset of trying to “be smarter” and it helps you look at things from a different perspective. If you already know a bit on the subject matter, it helps reinforce what you’ve already learned.
I am a firm believer in that being able to teach means that you’ve reached a certain turning point where you actually know what you are doing versus going with the flow.
Sometimes, reading books related to programming can be tedious and unenjoyable. It can often take a long time to complete, simply because it becomes a bit mind-numbing.
So, ease the pain a bit and participate in a book club to experience the book together. Be flexible, though, and allow each other to move at your own pace.
- Don’t have any required meeting time, but identify a place (Slack group!) where you can leave notes for folks to grok at any point.
- Make your book club remote-friendly so that anyone can participate at any given time. We do live in a time of asynchronous communication, after all.
- Organize all of the notes and document them in a reasonable fashion so that even those who haven’t read the book can benefit.
Sharing is Caring
Tweet about it. Write a blog post about it. Sketch a cartoon to illustrate your learnings. Sharing really is caring.