10 Things Software Developers Should Learn about Learning
I wish I new it when I start learn how to code. Or as early as possible in my life.
Here's a quick look at some important lessons from a recent ACM research paper, simplified and mixed with system thinking ideas. It's all about making learning in software engineering more straightforward and practical. I naturally desire to make this information more accessible to others so they can use it. As a self-taught developer constantly learning as part of my life strategy to be #FutureReady, I've decided to write my personal takes on these lessons. Splitting them into chunks makes them easier to read and understand.
As SE, we never stop learning. This could be said about almost any profession. Like every programming language being updated, popular frameworks get updates too. Also, *NEW* and *HOT* programming languages come with new frameworks, almost like fashion.
A 2020 study says that 89% of people think teaching should match how students like to learn. But for years, research has shown that it's more about matching instruction to the subject than learning styles. For example, science classes work better with graphs for everyone, not just for those who prefer visual learning.
Series Overview:
In this series, we'll explore various aspects of learning in software development:
- Human Memory vs. Computer Memory: First, we'll look at how human memory differs from computer memory, understanding the impact of this difference on learning in software engineering.
- Long-Term Memory and Working Memory: Next, we'll explore the two parts of human memory: the expansive long-term memory and the more limited working memory.
- Expert vs. Beginner Programmers: We'll delve into how expert programmers understand code differently than beginners, shedding light on the cognitive processes involved in coding.
- Learning Process in Programming: We also see that learning about programming moves from big ideas to specific examples and back again, reflecting the dynamic nature of mastering software development.
- The Importance of Repetition in Learning: It's important to remember how and when we repeat learning makes a big difference, especially in programming.
- Internal Knowledge vs. Online Information: Despite all the online info, knowing stuff in your head is still crucial for programmers, and we'll discuss why this internalization is vital.
- Unique Problem-Solving in Programming: Problem-solving in programming is unique and can't just be transferred from other areas, a concept we'll explore with system thinking in mind.
- Challenges of Being an Expert Programmer: Being an expert has its perks, but it also comes with its own set of challenges, which we'll examine in detail.
- Identifying a Good Programmer: What makes someone excel in programming? We'll reflect on this complex question and share our thoughts.
- The Role of Attitude in Learning: Finally, we'll discuss the critical role of the right attitude in learning to program effectively.
Summary
This series presents ten insights into learning in software engineering, from understanding human memory to recognizing the importance of a growth mindset. These points offer a roadmap for effective learning and problem-solving in the evolving field of software engineering.
Some key recommendations from our learnings are to read code regularly, recognize the different skills required for coding and teaching, take time with learning, break away from problems occasionally, internalize knowledge, balance learning between abstract and detailed examples, and maintain an optimistic attitude.
Further Reading:
Consider these books for more profound exploration:
- "Why Don't Students Like School?" by Daniel T. Willingham
- "The Programmer's Brain: What Every Programmer Needs to Know About Cognition" by Felienne Hermans
- "How Learning Happens: Seminal Works in Educational Psychology and What They Mean in Practice" by Paul A. Kirschner and Carl Hendrick
I'm starting this series with the first three posts already published. Each day, I will add links to new posts, and by the end of the week, all ten discussions will be available for you to explore.
Stay tuned as we uncover these insights, one post at a time!


