
Ask HN: What tips do you have for a life of active, independent learning? - mikemajzoub
Hi HN -<p>Being a software programmer requires a life of constant learning. What strategies do you use to support and enable this?<p>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?<p>I&#x27;m sure everyone has a different mix of strategies that works for them, and I&#x27;d really appreciate hearing some of them as I develop my own ways to effectively stay current.<p>Thanks!<p>In peace,
Mike<p>PS - Also, perhaps equally helpful would be strategies you tried that didn&#x27;t work for you!
======
zadyree
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.

~~~
jbchoo
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

~~~
zadyree
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.

------
sheepmullet
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.

~~~
joshux
Thanks for sharing. Would you mind telling specifically how do you go deep in
a topic?

------
rtl49
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.)

------
drakonka
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.

------
sharmi
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!

~~~
lovelearning
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.

~~~
sharmi
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.

------
LeoSolaris
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.

