Ask HN: What tips do you have for a life of active, independent learning?
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 ] threadI 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.
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.
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
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.
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.
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!
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 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.
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.
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.
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.)