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.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
Learning Techniques for Programmers, by Programmers
30 mins
- Under the Hood
- Different Levels of Understanding
- Memory
- Chunking
- Practice
- Focus Level
- Brain Washing
- Learning Techniques and Patterns
- Academic Learning
- Puzzle Learning
- Learning by Using
- Learning by Perseverance
- Learning by Teaching
- How Developers Learn
- Improving Learning
- Passion
- Practice
- Perseverance
- Taking Notes
- Active Engagement
- Making Mistakes
- Teaching
- Pairing
- Stimulate Learning
- Where to Go From Here?
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.
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.
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.
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.
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.
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.
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 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.
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.
It’s no suprise that the majority of tutorial readers work with the presented code, whereas a smaller group only does it occasionally.
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. :]
In order of preference, the most-used techniques for learning about a micro-topic, such as an API, method or class are:
- Search for an article, blog or tutorial
- Search on Stack Overflow
- 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
“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.