I Wrote Down Everything I Learned While Programming for a Month

As engineers we live in a culture that celebrates learning. Many of us seem to be in a constant haste to learn more. But just how much are we really learning every day? Without measuring how effective we are at learning, the culture that creates a buzz for learning might well be doing nothing more than giving us an ill-conceived sense of accomplishment that we can use to feel good about ourselves.

Amid the fad of learning, I too tried time and again to shed off the complacency and immerse myself into new knowledge actively while programming for work and leisure. While applying myself such way made me feel like I was on a healthy track for growth, there always lingered a sense that I was actually not learning as much as I made myself believe. The insecurity was strong enough to motivate me to experiment by measuring everything I learn for an entire month while programming.

To measure my learning for a month, I used my open source program called Dnote. I wrote it ten months ago, driven by the similar doubts about the effectiveness of my everyday learning as an engineer.

dnote

It is a command line interface to write short notes to a file. Every time we learn something while programming, we can jot down a bite-sized summary using Dnote and move on with our task. That way I was able to write down everything I learned without any distraction from my work and look at the notes later to refresh my memory.

Statistics

learning heatmap

In order to share my findings more clearly, I created an interactive calendar heatmap for my everyday learning. Each cell represents a day. The darker the color, the more learning occurred on the day represented by the cell. You can interact with it and see all my notes and books on my public Dnote profile.

In the month of January during which I conducted the experiment, I had written down 53 notes in 20 books. In other words, I had learned 53 new lessons in 20 areas of knowledge. Here are top 5 books and the number of new notes for the month.

Book Name Note Count
css 10
js 8
linux 5
computer science 4
network 4

From a glance, the result seems to me quite promising because I spend my 9-5 working with web technologies such as JavaScript and CSS. And such offhand observation leaves me with a glimmer of hope that, after all, I am actively learning new things in my field and growing as an engineer every day.

Yet such rushed conclusion leaves us vulnerable to the confirmation bias. We often give into such bias to dwell on the comfortable. After all, it would be pretty uncomfortable to discover that we are stagnating in our growth. Despite the possible discomfort we need to delve more deeply; the statistics warrant more attention because they might shed lights on what and how we are learning, and how we can do it better.

Attentions Are Cheap

First of all, the amount of attention we devote to ‘learning’ is not directly proportional to the amount we actually learn. In one month, I averaged about 2 lessons per day, assuming I code for 6 full days per week. Such rate is surprisingly low, given the amount of attention I pay to news and opinions about programming.

For instance, I habitually read Hacker News for hours every day, because there are many tidbits and useful information relevant to my interest in computers. Yet the fact that I learned merely two new things every day leads me to question whether my reading of Hacker News is really helping me learn. Without discrediting sources of learning such as Hacker News, I am proposing that some ways that we attend to learning might only be giving us an illusion of learning.

In search for growth, we gradually form a habit of devoting more of our attention to activities that promise us feelings of immediate satisfaction. It feels to me that such instant gratification might be hampering our personal and professional growth. What really matters is not the amount of attention spent on learning, but the quality of attention coupled with a willingness to recognize and capture new knowledge to make it ours.

Recognizing New Information

It has come to my attention during the experiment that we normally do not pay proper attention to new piece of knowledge when we come across it. I feel that we are focused so much on the instantly gratifying feeling of learning that we seldom recognize the opportunities for learning. In our pursuit of knowledge, we have, ironically, lost the ability to discern the very thing we set sail to chase.

While voraciously consuming technical articles and presentations, I only occasionally stopped to think to my self “oh, that’s cool,” when I came across something smart. My experiment, however, forced me to actively identify and pay closer attention to those bits and pieces. Instead of simply parting ways with new information, I single them out and wrote it down in my own words. And later I was able to reconvene with them using automated weekly digest email.

learning email digest

Simply recognizing a new lesson allows us to channel our attention in a manner that is appropriate for learning. That way, instead of forgetting, we can remember what we learn. Otherwise we are merely pouring our attention into a bottomless jar. With our lackadaisical attitude towards learning, we might be discarding the very thing we should cherish as lifelong learners.

Productivity Is Not Learning

Being productive does not make us learn more. We easily confuse productivity with learning because there are some correlations between them. Yet we must not confuse the correlation with causation.

learning heatmap

Some days I would felt extra productive at my work because I was getting many things done. However when I looked back at the learning heatmap later, I realized that I had not necessarily learned more. Counter-intuitively, I had sometimes learned less on those days. Some of the grey cells in the heatmap in January are actually days when I felt really productive at work. Productivity did not cause learning.

Such finding puts each of us in our own driver’s seat. We are often encouraged to be productive at our jobs, not to maximize our learnings and growth. It is up to us individually to encourage ourselves to learn and grow, because no one else will.

Conclusion

All in all, writing down everything I had learned about programming for a month allowed me to see through the fuzzy meaning of learning and clearly quantify just how much I was learning. And overall, the result was somewhat alarming not only because I was not learning as much as I had thought, but also because we seemed to misunderstand the ways of learning.

I feel that we who are in search of learning and growth have the right attitude but not the most sound methodology. And the lack of great practice is saddening because our desire to learn and grow is noble and should not go to waste. I have a mad hope that by simply recognizing the new information and paying attention to them with respect, we can become truly one with them, and that the idea of learning will then find its true likeness within us.

Dnote is a free software. You can get it from GitHub.
Get new Dnote stories in your inbox.