Ask HN: What tips do you have for a life of active, independent learning?

13 points by mikemajzoub ↗ HN
Hi HN -

Being a software programmer requires a life of constant learning. What strategies do you use to support and enable this?

Do you deliberately budget xHours each week? Are you taking online classes regularly (through MOOCs or universities)? Do you meet up with friends and colleagues to puzzle through and play with new frameworks and ideas? Do you regularly go to conferences? Do you use side projects as a way to explore and learn? Or maybe you take a less deliberate approach, and just learn as you need to? Or do you do something else entirely?

I'm sure everyone has a different mix of strategies that works for them, and I'd really appreciate hearing some of them as I develop my own ways to effectively stay current.

Thanks!

In peace, Mike

PS - Also, perhaps equally helpful would be strategies you tried that didn't work for you!

14 comments

[ 3.0 ms ] story [ 40.7 ms ] thread
Hi Mike!

I use some of those methods. I am an open source conference goer, casual MOOC and YouTube how-to addict. My big one though is side projects and contract work. Short contracts are a great opportunity for implementing something fairly new to me, though not for the first time learning something and playing with it. More like a second step in the learning process.

Hi Mike,

This is my first post here so I will try to fit to how things work here.

François Rabelais wrote this sentence: “Science without conscience is the soul's perdition.”

The aim of a programmer is to deeply learn how things work and to be able to learn it fast. In my opinion, the best way to reach this point is to FACE the problem BEFORE possessing the appropriate knowledge.

This approach allows you to get way more knowledge from the course/guide/whitepaper because it will answer to many sub-questions had in mind. Many hackers use this method to learn tremendously complex things.

Hello Zadyree,

Your perspective is interesting. I'm interested to find out more. Could you describe in detail what do you mean by "the best... FACE the problem BEFORE... knowledge."?

Best wishes,

Jek

With pleasure.

We usually say it is better to first master the theory, in order to possess all arms we need to solve a problem. The problem of such approach is we first have no idea of the real use of the theory. We then learn by practicing over and over.

Using the learning method I proposed, you will spend time on understanding the problem without having enough knowledge to solve it, but once you access the theory (made by people who did researches to solve it before), you may start to understand the whole system because you feel concerned by what the theory provides you with.

100% agree. Trying to do things that are beyond your current experience, making the best stab at it you can, and then looking around for how to do it better: that's a superb way to learn.

I've been employing it all this year to rapidly transition from animation to live-action films. It works very well, not least because after bashing your head off a suboptimal solution to a problem, you're far more likely to remember the best-practise way of doing it.

I am still working on being consistent on my learning but the one thing that I find very discouraging. My study schedule is very errant due to my varied external commitments and inevitably I end up having long gaps in my study. When I get back, I find that what ever I have picked up two months ago are again new to me :(

So one of the biggest stumbling blocks in independent learning is to actually retain what you have already learnt over a period of time. I am in the process of putting anki ( spaced repetition memory training program) to the task but I am not sure of the effectiveness yet.

Of course, I would be very happy to know if anyone has faced this issue and solved it!

Have you considered that your mind was not able to keep the content of your courses for the very reason that it won't link it to precise uses? For example, let's imagine you want to learn the Pythagorean theorem. You may learn that the square of the hypotenuse is equal to the sum of the two other sides by heart, and hope it will stay in your brain until the 8th grade (but it's probably too late now).

Otherwise, you can try by yourself to know a way to find a relation between the two shortest sides and to the hypothenuse, and eventually find out the Theorem. Then, you can be sure you will remember it longer.

Why? I have my theory, based on Spinoza's ontology. It's a bout the three kinds of knowledge: 1st kind: You learned something from someone who told you, an erroneous deduction, or even experience. 2nd kind: You learned by demonstration, you KNOW why... 3rd kind: Your knowledge of the full system lets you deduct theorems, intuitivey.

Of course, the third kind of knowledge is not what I am talking about. It is the second kind that will interest us, as the knowledge of the third type is a lifetime exercise.

I have the same problem. I improved upon it by writing recall notes in a word processor - with diagrams, code, explanations - every 3 or 4 weeks. I do this for every topic I'm having difficulty with. It has improved my recall and understanding.

I did try Anki for a while, but I was unable to get comfortable with its user interface or workflow. This is possibly because the topics I'm learning are concept and math heavy like ML and image processing, and unlike spoken languages, don't lend themselves easily to rote memorization.

I am familiar with ML but I want to have the depth of knowledge and I am into probability now. And this is exactly the same problem I am facing. May be your approach will work well for me too.
I too spend time learning breadth of topics, including startups (though it is orthogonal to my work). However, I retain very little after a while. I stumbled in to Edgar Dale's "Cone of Learning" or "Pyramid of Learning" https://en.wikipedia.org/wiki/Edgar_Dale

Based on that, I plan to teach whatever I learn (God save the listener/viewer!) by compiling short videos and unleashing it on the common man, via youtube.

Also, note the criticism of above research/ideas at this blog: http://www.danielwillingham.com/daniel-willingham-science-an...

One more thing that kept me motivated during learning is to build tiny projects along the way (in case of technical learning). The take away from this is regular positive reward can be a good motivator.

60-90 minutes of my own time every morning focused on deep diving into ever more complex problems.

90 minutes of my employers time focused on going deeper into a topic that I'm working on.

I get breadth through a combination of: hn/reddit, talking to friends, talking to co-workers, reading books, and listening online courses/podcasts during my commute.

IMO far too many people spend their valuable learning time on breadth instead of depth. e.g. There are plenty of day job mid level Java devs who are learning Go via writing a side project. What a waste. They could be becoming senior level Java developers instead.

I suspect part of the problem is the desire to mix side project time, marketing time, and learning time.

Thanks for sharing. Would you mind telling specifically how do you go deep in a topic?
I don't budget time, but I have always had personal projects going and they are always teaching me something. I start projects that are just out of my reach, that I clearly do not have the knowledge to complete yet and chip away at them bit by bit, learning until I can implement my vision.
At this point in my life, there is not much strategic effort involved in getting myself to learn things. I think this is true for many people who spend most of their time engaged in intellectual activity.

It was once the case that various commitments, emotional states, and competing interests (consuming cheap entertainment like computer games, TV shows, etc.) reduced my efficacy here, but for reasons unknown to me I find these much less distracting than I did when I was younger. Sorry I can't be more helpful in this regard.

As I've gotten older, I would say the only conscious effort I've made is to educate myself more deeply on subjects of personal interest instead of constantly exposing myself to humanity's knowledge base at large. Sadly, there is too little time in a life to know everything. Better to have a deep understanding of what you find fascinating than superficial knowledge on a broad variety of subjects. (Of course, if you can manage both, more power to you.)