Learning new systems

This week I’ve been thinking a lot about independent learning. The more CS topics I learn about, the more I see how much I don’t know. There are so many languages, frameworks, systems, concepts, etc. to explore — being an expert on all of them is impossible.

One thing I hear a lot is that, in CS fields, you can’t think of your learning as done just because you’ve got a degree in your hand. These days, I don’t think any of us, regardless of field, have that luxury. The next job/role/position will always ask us to learn new things and conquer new concepts. This isn’t a bad thing. Learning can be fun! But, let’s not forget another piece of wisdom…

Fun and Failure both start out the same way." George Michael's  inspirational poster. #ArrestedDevel… | Inspirational posters, George  michael, Arrested development

If you know a surefire way to not fail at life and learning, please share it with the rest of the class. In the meantime, I’ll just have to do my pathetic best.

Step one: don’t get overwhelmed. There’s a saying I like about murdering an endangered species for crass, caloric concerns…

How Do You Eat An Elephant? – Ayat Saleh

When learning a new system, I like to start with a high-level overview. Getting the sky-high view helps me contextualize what I’m about to learn, where this system fits, what I might want to use it for, etc. Not exactly groundbreaking stuff, but hey, it works!

I’m not ashamed to admit that I often turn to Wikipedia for this. There are myriad useful articles with broad overviews of CS concepts, though I generally don’t find it quite as useful for learning how to use a new tool or framework.

A good book on the topic should include a good overview as well. I just started reading Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurélien Géron, and it’s chapter 1 overview of machine learning is the best overview I’ve read in a while. I felt a lot less stressed about diving into this large, complex, and nebulous topic after getting to grips with just a few broad strokes.

Step two: get your hands dirty. Playing with code examples and making toy, hello world programs and the like is a great way to remember what you’re learning and come up with new questions and avenues to explore. One great thing about them thar’ internets is that you can often find a good online tutorial that includes basic information along with the opportunity to practice immediately.

Step three: don’t worry about learning everything all at once. It’s not often practical to read a book on the new topic cover to cover, especially as we often find ourselves needing to learn about several new topics at once. I do enjoy learning all the little details and tricks you can find with a fuller approach, but it’s usually necessary to be a bit more focused.

Working on small, incremental steps to what I actually need to learn for my current project is a practical approach. Early on, I’ll often be knees-deep in a code editor, working at a glacial pace while looking something up for every other line of code. I’ll know I’ve gotten more comfortable once the official documentation no longer reads like lorem ipsum and I can refer to it freely without needing to refer to it constantly.

Step four: ????.

Step five: you’re an expert! Congrats! Wipe your chops, give a quick eulogy for the last extant elephant, and kick that imposter syndrome to the curb.

Song of the week: And Saints – Sleigh Bells

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *