How to learn hard things in tech
I feel like a pretty slow learner, which may be surprising coming from a self-taught software engineer, but it’s true. I regularly need to learn a new technology, software, or toolset. More often than not I feel like I’m sitting there staring at the wall with no idea where to start. Can anyone relate? I think to myself: There is literally no way I can understand this on my own. What should I do? How am I going to learn this enough to actually use it?
So when learning technologies, software, and new tools how do I push through to the end? Here are some steps that I’ve found that work pretty well for me:
Start with the smallest working example —it doesn’t matter where this comes from, it could be a website, blog, the documentation for the technology, a friend or coworker, it could be from anywhere. This is your basic working example. It’s the baseline for building further knowledge.
Try to modify it and watch the results —if modifying it does what you expect, keep the modification and build on the results. If not, undo it and try again. If you can get the technology to do what you need it to do or understand the task at hand, then you’ve learned the hard thing. Congratulations! If you’re still stuck or feel like you’re missing something, move on to #3.
Read or watch someone explain the technology —if the technology isn’t behaving as you would expect, you likely need more information on how it works. This is where tutorials and video walkthroughs come in handy. They’re great for general overviews as well as in-depth specific instruction and can help fill in any remaining gap in knowledge or understanding.
Repeat steps 1-3 as often as necessary —by the time you’ve gone back to a basic working example, tinkered with it, and referenced outside tutorials you’ve likely got the hard things within grasp. If you’re still struggling after these steps, welcome to the Slow Learner Club!
If you keep doing this enough times eventually you will have accomplished the task, you will have learned the hard thing. I bet you will know the technology a lot more than you did before you started. This is basically the approach I took to learn computer programming with no formal Computer Science classes or coding bootcamp, and this is still how I learn new technologies daily.
A quick note about the order of the steps: I used to start with #3 because it’s usually easier and sometimes faster. But more recently I have been forcing myself to start with only the documentation (#1 and #2) and see how far I can get before I get stuck. It’s a muscle I’m trying to exercise regularly and I think it’s getting stronger.
What’s one difficult thing you want to learn? Any other slow learners out there? How do you learn difficult things? Do you also break things down into similar steps? Is there anything you’d add to this list?
Thanks for reading The Technically Challenged Newsletter! Subscribe for free to receive new posts and support my work.