Curiosity is at our core (it’s right there in the name) and with that comes a lot of learning. Whether it is diving into a new idea or picking up a timeless skill, the process has to start somewhere.
It depends on what I'm trying to learn. If it's programming related I like to read blogs, Stack Overflow, and books so I can follow along and copy/paste examples to see them work for myself. If it's something physical like woodworking, I don't like to read about it and prefer to watch videos on YouTube.
It really varies, but some common themes are:
Mostly I read. A lot.
Start broad. I usually start with a broad Google search of the topic. I limit my searches to the current year so that I only get the latest results. Especially with web programming, browsers, frameworks, and the approaches to working with them changing so frequently that you have to be looking at the most recent articles and examples so you're not wasting your time on something that's dated. When initially Googling, I'm really trying to get a lay of the land via the search results' titles and descriptions. I'll do quick dives into interesting articles to get a bead on what topics to focus on next.
The docs. A lot of the bigger software libraries and frameworks have really started nailing documentation. It's being versioned and managed like software itself (or even generated from the software), so it's staying up-to-date and then being paired with relevant examples. Definitely give the docs a chance. You might be surprised. Protip: Make sure the version of the docs you're reading matches the version you're using.
The source. I was kind of intimidated by looking deeply into the source code of large projects at first, but, once I got over that, it's become the most powerful of the approaches I've found for learning. Pick an open source project close to what you want to achieve and scan through how it tackles similar problems. Look at the project's tests. The tests are likely covering your use case and can serve as code examples. So much can be learned scanning the source code.
The issues. Another place to look is a project's issue tracker. If you're running into a problem or just trying to figure out how to approach something, odds are someone else has seen that same problem or at least something similar. Don’t limit yourself to open issues. Search closed issues and you might find the answer. Bonus: Those answers often come from some of the original authors and maintainers, so they really know their stuff.
I learn by solving a problem in most instances. There is something I am trying to do or some hurdle I am trying to overcome and that is what serves as my guide for how I look for a solution. If I am running up against a coding problem, I will do a search and look through blog posts, issue trackers, and especially documentation and see if I can’t glean what I need. Sometimes you get lucky and just end up at a Stack Overflow question that is exactly what you need.
For something like working on a car, fixing a toilet, or even woodworking, I will always start with YouTube. The fact that you can find a video to do just about anything in your house or car is amazing. Something about seeing that tiny screw in a video before you attempt to remove it in real life really helps me have a sense of confidence that I know what I am doing.
When it comes to broader subjects like politics, the state of the tech industry, or video games, I turn to podcasts, newspapers, and Feedly. I love listening to a podcast on my way to work. I can have something to occupy my mind during the dull commute. At my desk I will usually look at Feedly and the New York Times to see what I may have missed from the day before. I will also keep an eye on Twitter throughout the day and dive deeper into things I don’t know about or want to understand better.
In practice and repetition. I can read about things all day long, think that I'm absorbing them, and then go to do the task and realize that I only thought that I understood how something works in reality. If I actually do the task and then do it again on another project or job, it starts to sink in. Do it enough times and it really starts to make sense.
With coding, if I were to find an explanation for a problem that I'm having on a site like Stack Overflow and I used that example fix in my own code, 9 times out of 10 it clicks and I realize what I was doing wrong in the first place, which actually helps me absorb the information. If someone did all of the coding for me (working with others on a project), rather than me implementing it myself and see how it works with what I've already written, the absorption just isn't there. It takes a lot longer to "get". I'm always sure to ask questions from those with more knowledge than me, even if they may seem like stupid questions at first.
I typically need to do something to learn it well. I can read documents all day but it won't sink in unless I take some action with it. I will try to hunt down tutorials or videos that relates and usually search through lots of Stack Overflow questions when the tutorials are close but not exact. Once all that fails, I ask someone and usually am not impressed at how simple the answer was and feel I should have known that.
I'm rarely the first to break new ground these days so I start learning by reaching out to my various Slack networks. Chances are someone there has experience with the topic or technology I'm looking to get into and can point me toward some great initial resources. Ideally, I will begin with some basic online tutorials similar to Codecademy’s structure. That gives me a foundation to be able to ask informed questions and begin searching for something more specifically related to what I want to accomplish.
Then, I typically search on Reddit for communities that can point me toward more specific applications/tutorials that can apply to the project I'm trying to complete. Lately, more than anything I gravitate toward video tutorials on YouTube, finding a good teacher, and then following him/her on social media to see what other resources they recommend when I've exhausted his/her content.
At this point, I like to drown alone for a while since I learn best by breaking things. I regroup and create an idea for a test project so that I have something more tangible to work toward. I'll break that project apart and if needed I will search for another round of tutorials related to the pieces of my actual project. I will try to break the tutorials down and rebuild them from scratch with different modifications to make sure the knowledge has sunk in. Finally, it’s time to put the pieces together and build my prototype. I've found that I need a several deliverables alongside a final goal to push me along so that before I know it I have accomplished the actual goal of learning and retaining new knowledge.
I learn best by doing. I can never stay focused enough while reading to actually comprehend what it’s about. My eyes are following, but my mind is doing it’s own thing. In the instance that my eyes and mind are in sync, I usually forget what I just read 15 minutes later.
If I’m learning something new, I enjoy video tutorials where someone is talking as I’m doing. I also like the visual of being able to see the thing that I’m trying to create. That definitely helps the concept sink in more. If I’m troubleshooting, I give myself a fair chance in trying to solve the problem myself, but I don’t let it consume me. There are few problems that haven’t already been solved, and I have better things to do. Like many, Stack Overflow is my goto.
That is how we learn, what about you? Where do you go for information? Is there some technique that you have picked up that helps you learn and retain information? Let us know in the comments!