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 3 of 4 of this article. Click here to view the first page.

How Developers Learn

Here’s a question I frequently ask of others: how did you learn the basics of programming? It’s no surprise that about half of the respondents to our survey learned programming on their own or at a college/university.

How did you learn the basics of programming / computer science?

In terms of learning efficiency, for every one person that favors video courses, two people prefer reading, and four people report that both methods are equally efficient.

You learn more efficiently by

As you might expect, people tend to use tools that are within easy reach.

Official documentation, books, blogs and videos are the most popular learning resources, followed by other methods that are either more expensive, such as conferences and courses. Lowest on the list was reading open-source materials, writing and teaching.

What do you regularly use to learn?

Per Kelvin Lau, “it’s helpful to approach learning through different media, such as writing, reading, watching and listening. Each engages your brain differently, which can help create more paths for memory retrieval.”

I find that I don’t spend as much time as I’d like to on learning. In fact, I’m of the majority who spends, on average, four hours or less per week learning. However, jut under half of the respondents enjoy learning for five or more hours per week.

I can’t comment on the 8% who don’t reserve any of their off-work time for learning. I’m assuming their employers take care of their needs, but it does make me wonder how they stay on top of things.

How many hours per week do you regularly allocate for learning, on average?

It’s interesting to see that, on average, two out of four respondents spend less than $200 per year, one quarter spends less than $500, and the other quarter up to $5,000 — it’s pretty easy to reach four digits with just one or two conferences.

How much do you spend per year on learning (books, videos, classes, conferences, etc.), on average?

No doubt that developers are night predators: eight out of 10 do their learning after work, six of 10 learn at work, and two out of 10 squeeze it in before work.

20% explicitly take time off work — presumably, for conferences or courses.

When do you do your learning?

When learning a new, complex topic, half of developers prefer reading a chapter every few days, but a quarter prefer to finish the book as soon as possible — maybe because they can’t wait to figure out who the murderer is?

The remaining quarter of respondents prefer to read a chapter when they actually need it. Is that learning on demand, or learning by using? I think probably both.

What is your learning preference?

Learning with the goal of staying up-to-date is a challenge for most of us — 75% of respondents — due to lack of time.

A quarter blame it on a lack of quality learning resources. Hmmmmm.

Since there are many resources out there, I wonder if they’re not aware of their own learning styles or just haven’t found tools that suit their needs. It’s also possible that they need quality resources for edge cases and niche topics, which can be difficult to find.

What

It’s no suprise that the majority of tutorial readers work with the presented code, whereas a smaller group only does it occasionally.

When you are following a tutorial with code, do you usually test/try the code?

I thought that more people would use a tablet for learning. But, like me, seven out of 10 prefer a computer. Only two out of 10 use a tablet or phone, whereas almost one out of 10 prefers traditional books — no wi-fi, no battery, no screen: just ink and paper. :]

When learning, what do you usually use for watching videos and reading?

In order of preference, the most-used techniques for learning about a micro-topic, such as an API, method or class are:

  1. Search for an article, blog or tutorial
  2. Search on Stack Overflow
  3. Browse the official documentation

Less popular, but still frequently used methods are:

  • Watch a video
  • Read a book
  • Ask someone
  • Post a question on Stack Overflow

When learning about a macro-topic, such as a new language, framework, or technical concept like advanced debugging and reverse engineering, readers gave similar responses:

  • Search for an article, blog or tutorial (still the most used)
  • Read a book, such as our latest release iOS 11
  • Browse the official documentation
  • Watch a video

…Followed by less-used methods:

  • Buy a video course
  • Ask someone
  • Attend a conference

When asked about the least efficient learning method, two out of four said conferences are the worst way to learn. One out of four say that books, videos and video courses are the last method they’d consider, while about one in six feel that blogs, articles and tutorials are not well suited for learning.

Improving Learning

Improve learning

“I have enough experience, I have nothing else to learn!” said no savvy developer, ever. There’s always something to learn in a world where technology continues to evolve.

Here are some key things that I’ve experienced, or observed in others, that can help you learn more efficiently:

Passion

The more you enjoy a topic, the more you’ll want to know about it. Passion is what drives your will to keep learning.

Aaron Douglas agrees:

“Learning new things takes a lot of effort for people with ADHD. If you’re learning something that is directly applicable to something you’re currently passionate about, any information channel will feed that craving. If I’m trying to learn something required, for work or a task, but it’s not a compelling topic, I need well-written books to keep my interest.”

Note that the opposite of passion isn’t necessarily apathy, but if you have little interest in a topic then convincing yourself to learn about it is a tall order.

Practice

Practice helps you set your knowledge in stone. Just like learning a new language, the more you can use it in practical settings the more fluent you become.

Perseverance

Failure to understand a concept shouldn’t discourage you. What’s unclear today might be explained by tomorrow. And when you don’t give up on finding a solution, you eventually crack the case.

In many cases, you can treat your problem as a black box. For example, with the right search terms and time to search Stack Overflow, you can find a solution or something close enough to use as a model. You can often solve the problem even if the solution’s inner workings aren’t clear.

Wait, am I endorsing “copy & paste” programming? No! Far from it.

I’m saying that working models are great when you have limited time or you’re struggling with a new concept. But use it in moderation, it shouldn’t be a go-to solution.