Learning Techniques for Programmers, by Programmers

As a programmer, you know there’s a constant need to stay up-to-date with technologies you love, as well as the ones you don’t — you need to keep learning to stay relevant in your industry. Learning is a key component of experience. And experience is a cornerstone of a rewarding, fulfilling career as a programmer. […] By Antonio Bello.

Leave a rating/review
Save for later
Share
You are currently viewing page 2 of 4 of this article. Click here to view the first page.

Practice

“Practice makes perfect”, or at least that’s what the old saying tells us. Perfection may be a far-fetched goal at times, but practice always helps you achieve two important things:

  • Complement conceptual understanding with practical understanding.
  • Make learning permanent.

Permanence is probably the most important benefit that you get from practice. The more often you make practical use of a theoretical concept, the more confident you are next time you use it — and each time you repeat it, you reinforce its permanence in your brain!

Focus Level

I was a smoker until a few years ago. During smoke breaks, I’d occasionally discover a solution to a challenging problem with while I was thinking about something else.

What has this to do with learning? Not much, actually. But it’s a way to explain two different ways of learning:

  • Concentrated (or focused): Focusing on a specific topic
  • Diffused: Looking at it broadly, while relaxed, without focusing on it

Sometimes you can’t solve a given problem because you’re peering at it problem too closely — you develop myopia, or worse yet, “tunnel vision”. When you take a break, you can’t help but view a problem from a different perspective, which helps you discover a solution.

There’s no good or bad when it comes to focus level. It’s actually best to alternate between the two.

For instance, you might read through a brief overview to learn about a complex topic then dive into a learning module that covers a specific sub-topic. Then you might zoom out to revisit the overview and repeat modules until you’re comfortable with the subject matter.

Brain Washing

With Pomodoro technique, you alternate working in concentrated mode with reward time in timed segments, for example, 25 minutes of focused work followed by five minutes of no work. Then you repeat until your work day is done. This approach gives your brain an opportunity to “cool down” after exertion and even wander into a diffused state of focus.

Sleep is another form of “brain washing”. After a day spent working, the brain accumulates fatigue and you need to wash it out. Ever heard somebody say “Let me sleep on it”, or “I woke up with the answer”. Sleep clears your brain’s cache, so it’s important to allow yourself to get a full night’s sleep.

#3 Brain Washing

Learning Techniques and Patterns

Learning is a science, and there are several learning techniques, styles and models.

The classic model is the Visual, Auditory and Kinesthetic model (VAK), which defines three sensory receivers:

  • Visual: Learning through written language and visual references. Visual learners often enjoy lectures that come with handouts and videos.
  • Auditory: Learning through listening and sometimes by repeating thing aloud, either reading out loud or by moving the lips. Auditory learners do well with lectures, podcasts, and reading.
  • Kinesthetic : Learning while doing, touching and moving. Kinesthetic learners react to movement and tactile stimulations, and may lose focus when there’s nothing to do. These learners benefit from hands-on labs and tutorials.

I won’t talk about these in detail. As I mentioned in the introduction, I’m not a learning expert by any means.

What I want to focus on, instead, are some recurring patterns that I’ve experienced myself or have observed in other people. This list is not comprehensive — I am sure there are several other patterns.

Disclaimer: I am using arbitrary names for the below learning patterns. They mean something to me — and hopefully they’ll resonate with you. However, they are not technical names.

Academic Learning

Academic refers to the way topics are taught in school. It’s the classic learn everything first, then (hopefully) apply what you’ve learned.

When learning a complex topic, you start with an introduction or orientation — a high level look at the topic. Next, you try to learn it as a whole, using whatever method works best for you, e.g., video courses, books, tutorials or live classes.

Puzzle Learning

In many cases, a large topic comprises several micro topics that are like pieces of a puzzle. Rather than learning the entire topic as a whole, you focus on one piece at a time.

This model can leave you with a “foggy” view of a topic until you’ve explored all the pieces. But each piece makes the topic as a whole more clear. At some point, you’ll realize how the pieces fit together and will see the big picture.

Puzzle Learning

Learning by Using

This method intersects with puzzle learning; it comprises learning a sub-topic through building a project. It’s almost the opposite to academic learning where you learn first and apply second.

When asked about unconventional learning methods, Mike Oliver said that the biggest thing critical to learning for him and his team is doing. When he hires new engineers, he expects them to be pushing code on day one to fix a bug or otherwise do something needed within the code base. This is true regardless of seniority or prior experience with the language. “You will learn infinitely more in a system if you’re required to work with it immediately, than if you read documentation, watch a video, or do some other form of passive learning.

And I really like this: Don’t focus on learning; focus on doing, and the learning will come.

Learning by Perseverance

Have you ever read an entire chapter in a book but mumbled to yourself, “I didn’t understand a thing”?

When learning through perseverance, you simply keep reading and re-reading even when you don’t truly understand the subject. You might repeat a chapter or plow through the whole book again. And you repeat that cycle until things become less obfuscated.

This learning technique is usually not ideal everyday learning. But for a limited sets of topics you need to master, it can be an effective approach — at least it’s been effective for me.

Learning by Teaching

It may sound counterintuitive, but teaching can aid in learning — maybe not for learning something from scratch. It’s most applicable to advanced topics that are related to subjects you know well.

I’m sure you experienced this when writing a blog post, preparing for a conference, or simply by answering questions on Stack Overflow. You may not have considered it a learning activity at the time, but I bet you learned something from the experience.