
Ask HN: How do you personally learn? - tchaffee
My short list of the skills that have helped me the most in my career as a software engineer is not sorted. But the ability to quickly learn things is easily on that list. With technology constantly and rapidly changing, small improvements in the speed at which I learn things can have a big and cumulative impact on my productivity. But we rarely discuss personal learning strategies. What are your personal strategies? Please consider mentioning even what you consider to be dead obvious. It might not be to others.
======
spiderfarmer
I only learn when I have a project in mind that I want to do. No matter if
it’s work on or around my house, creating an app or designing something like a
logo or interior. Then I just start. Walk into a wall. Stop. Look for learning
material or inspiration. Start over.

Reiterate. Learn more. Reiterate.

I’m not easily frustrated by failure, starting over or general lack of
progress. If I have an interesting goal I just keep going. It might not be the
most efficient way, but it’s how I learn best.

~~~
tchaffee
> I’m not easily frustrated by failure or lack of progress.

That's one of those very obvious but super important things I was looking for.
I would have never thought of this myself, but it's one of the most important
factors in my own learning too.

------
tchaffee
I'll start with a few off the top of my head:

\- Make sure it's something I'm interested in learning. There is no substitute
for passion.

\- Find a hero. Find someone who is already an expert and attempt to get as
good as they are. But be realistic that you don't ever need to become as good
as they are. It's just something that helps you focus on where you are headed.

\- Have a list of other things you want to learn. You will get stuck a lot in
the beginning and it's better to just quickly switch to something else when
you are stuck and let your subconscious work on what you are stuck on. Sitting
in front of a screen frustrated and trying to get unstuck is usually a big
waste of time.

\- Go for a walk. Some of my best thinking is during a walk. And there's
mounting evidence that exercise generates new neurons.

~~~
andai
> there's mounting evidence that exercise generates new neurons.

This wikipedia article is one of my favorite discoveries. The list of benefits
just _keeps going._

[https://en.wikipedia.org/wiki/Neurobiological_effects_of_phy...](https://en.wikipedia.org/wiki/Neurobiological_effects_of_physical_exercise)

------
rramadass
You may find the following guidelines helpful (in no particular order);

1) Be curious always. This is the key to build motivation. Focus on developing
a "T-shaped" skill-set i.e. broad knowledge on a variety of domains with deep
specialization in a few as required by a job or needs.

2) Do not focus on competing with others. This is a sure fire way to lose
motivation. Always focus on persistent and incremental learning. You are only
competing with your "past you". Calvin Coolidge said it best;

 _Nothing in this world can take the place of persistence. Talent will not:
nothing is more common than unsuccessful men with talent. Genius will not;
unrewarded genius is almost a proverb. Education will not: the world is full
of educated derelicts. Persistence and determination alone are omnipotent._

3) Understand the difference between "learning for knowledge's sake" vs.
"learning for a job". The former is what you should strive for. It will
guarantee a lifelong occupation for the brain, however constraining your
external circumstances might be.

4) Always spend some time Reading and Thinking before jumping into Doing. We
live in a time in Human Civilization where almost all of the accumulated
knowledge is codified in some fashion for easier comprehension (Scientific
Laws, Theories etc.). When you Read, you get other people's experience for
free which can inform your actions when it comes to "Doing". Remember the
quote "Standing on the shoulders of Giants..."

5) Finally, learn to accept failure without falling into despair and losing
self-confidence.

------
shay_ker
Some really random, obvious things I do:

\- I really look for learning materials that have diagrams, or videos. Plain-
text blog posts and documentation are really obtuse for me to actually grok
what's up

\- I've got into a good habit of writing (with a notebook and a notes app). I
actually do weekly check-ins, almost like "sprint retros", just for myself.
Sometimes they're silly, but they're handy to crystallize whatever I was
thinking about the last week

\- If I want to learn a programming language or framework, I try to build
something I'd actually use, or something someone else can use. It's a useful
motivator!

Also, checking HN is a good way to stay on top of things :)

~~~
epiphanitus
Does anyone have a system they would recommend for organizing physical notes
that backs them up in the cloud?

I take a lot of notes the old fashioned way because I find it helps my
retention, but they can pile up fast when I'm particularly busy.

~~~
SamPatt
I use syncthing across various devices and organize a group of folders with
markdown files in them, then view / edit them with a markdown editor.

Super simple, free, and the best note system I've used so far.

------
carapace
I don't have time to do a proper write up this morning but I've got a pile of
brain dump for you.

First, learn to operate your "hardware" efficiently.

Look into NLP (Neurolinguistic Programming, it gets some crap for being
pseudo-scientific, which is not entirely undeserved, some NLP folks play fast
and loose with science.) I recommend this book, but there are others:
[https://www.goodreads.com/book/show/3803577-get-the-life-
you...](https://www.goodreads.com/book/show/3803577-get-the-life-you-want)

Also, investigate self-hypnosis. The biggest mistake people make is trying to
think with only their _conscious_ mind.

Next, what kind of learning? Most of what you're talking about is "little
stuff", really. Learning on the level of values or identity is much more
powerful and far-reaching than picking up a new habit or skill.

Levels of learning, from most profound and general to most specific:

    
    
        identity
        values
        beliefs
        capabilities
        behaviours
    

See also Gregory Bateson's work, this seems a decent source: "Bateson’s Levels
Of Learning: a Framework For Transformative Learning?" Paul Tosey, University
of Surrey
[https://epubs.surrey.ac.uk/1198/1/fulltext.pdf](https://epubs.surrey.ac.uk/1198/1/fulltext.pdf)

Fun stuff:

"Programming and Meta-programming the Human Biocomputer" John C. Lilly (YMMV)

"Psycho-cybernetics" Maxwell Maltz This is based on self-image modification.
Dr. Maltz was a plastic surgeon who noticed that some people had profound
psychological changes from cosmetic surgery while others didn't. Upon
investigation he discovered that the difference was whether or not the
external change in appearance affected their internal self-image. The surgery
was a (hellof a) way to effect change in the patient's self-image. So he
started teaching people how to do that directly, so they didn't need the
cosmetic surgery.)

"Super-learning" Ostrander, Schroeder, & Ostrander Old but interesting stuff.

~~~
logari
+1 for the excellent Maxwell Maltz

------
h0p3
I use my wiki ([https://philosopher.life](https://philosopher.life)) to help
me reason about everything. Some things take a long time to discover or
digest, and I like that I get to structure the path that I take.

~~~
its_the_future
Take this... it may help you on your quest.

[https://en.wikipedia.org/wiki/Martin_Heidegger](https://en.wikipedia.org/wiki/Martin_Heidegger)

[https://en.wikipedia.org/wiki/Alfred_North_Whitehead](https://en.wikipedia.org/wiki/Alfred_North_Whitehead)

[https://www.youtube.com/channel/UCAYKrWW8wyjQX6qmL94zNLg](https://www.youtube.com/channel/UCAYKrWW8wyjQX6qmL94zNLg)

~~~
h0p3
These are lovely gifts. Thank you. =)

------
imakwana
I struggle a lot with learning due to ADHD but I found below
heuristics/techniques helpful in overcoming barriers to learning: 1) OKR :
Objectives and Key Results - especially hierarchical deconstruction of OKR [1]
2) OODA : Observe-orient-decide-act loop (similar to REPL in Lisp) [2] 3) DSSS
: Deconstruction, Selection, Sequencing, Stakes - an accelerated learning
technique promoted by Tim Ferris' Four-hour Chef book [3] 4) Outlining and
Concept Mapping with Workflowy or Org-mode 5) 4DX : Four disciplines of
Execution as described in the book Deep Work by Cal Newport

[1] [https://www.amazon.com/Measure-What-Matters-Simple-
Drives/dp...](https://www.amazon.com/Measure-What-Matters-Simple-
Drives/dp/024134848X) [2] [https://fs.blog/2018/01/john-boyd-ooda-
loop/](https://fs.blog/2018/01/john-boyd-ooda-loop/) [3]
[https://tim.blog/2012/11/05/the-4-hour-chef-the-first-
chapte...](https://tim.blog/2012/11/05/the-4-hour-chef-the-first-chapter-and-
a-publishing-first/)

------
combatentropy
I learn best when I make something as soon as possible, however basic. Then
after a while I go back, find the best book on the subject I can find, and
read it from start to finish.

For example: JavaScript. I procrastinated learning JavaScript for years. It
was intimidating. Then jQuery came along, which is not exactly JavaScript, but
it was easier to pick up. After several months, I was ready for the next step.
I bought David Flanagan's book, JavaScript: The Definitive Guide, and just
started reading it from the beginning. I don't know if I actually finished it,
because the second half is reference, but I at least skimmed that part.

Copying snippets from the Internet will get you started but leave your
knowledge patchy and even wrong. Eventually you need to read an organized and
thorough tour. For example, I would never have understood JavaScript's
prototypes by copying snippets.

On the other hand, if I had tried to start on page 1 of a thick book, without
hands-on experience, it would have been equally unfruitful. It would have been
too abstract. With some practice under my belt, the advice in the book had
something to adhere to, in my mind.

------
username90
My strategy is roughly: Figure out what is the hardest part and do that first.
Spend a lot of time to do it right. Then iterate until there are no hard parts
left. Or in other words, don't waste time doing things you are already good
at.

~~~
tchaffee
To anyone experienced and good at something, this is such an ingrained habit
it's one of those obvious things we easily forget. Average musicians practice
the song over and over, great musicians practice the hard part over and over.

------
Tharkun
Aside from learning by doing, I spend a fair amount of time building
intuition. Reading a lot is the bulk of my strategy. Blogs, books, HN
comments, reddit and the occasional YT video. This is all passive, so it's not
as good as actually _doing_ stuff, but I find that it accumulates (slowly) and
helps me build more context, which ultimately leads to something of an
intuition for whatever I'm working on. I've been doing this for about twenty
years.

I've recently been experimenting with note taking and spaced repetition.
Basically when reading, I try to add the occasional tidbit to an Anki deck. I
don't think I've gotten the hang of this yet, I currently feel like I'm not
adding enough entries, but I want to avoid creating too many notes.
Suggestions about stricking a balance would be greatly appreciated.

Edit: typo

~~~
rahimnathwani
"Suggestions about stricking a balance would be greatly appreciated"

Michael Neilsen (spelling?) suggests adding something into your Anki deck if
it's worth >=10 mins' time to memorise. (As that's the total time you'll spend
reviewing it in Anki, if you keep using Anki forever.)

------
codingdave
Deconstruction. The ability to break something down into its smallest parts,
and understand how the relationship of those parts makes something tick, will
teach you how it works. It also them gives you the ability to innovate, as
when you put the parts back together, you can do so in new ways.

~~~
tchaffee
This is a great one. It's actually so important it's a separate item on my
short list of top skills. I have it as "ability to debug", but "ability to
decontruct" is a better and more general category. Thanks!

------
firstplacelast
I have to actually DO things to learn it well. Out of all the subjects I had
in school, I was best in math and I think that's why. You can actually do math
at home in your room and get immediate feedback (the answer is either right or
wrong). You can't DO science in your room, you just memorize and see if you
memorized correctly. You can do things like write English, but at the same
time there's a lot of objectivity there and it's hard to get immediate
feedback.

I CAN memorize well. But that is barely learning something. I do not learn by
memorizing, I do not learn by being lectured at for an hour at a time. School
was not very worthwhile for me outside of the fact that I had to collect
signals so people will believe I'm slightly better than mentally retarded. I
slept through much of high school - my teachers would pull me aside and say
"please try to stay awake - your grades are great so I guess it's fine but
please try."

I skipped half of my classes in undergrad - some of the easier business and
science courses I only showed up for the tests. Some of my courses I went from
an A to a B/B- minus because they penalized absences.

And I still ended up with good-to-great GPA's, a healthy number of academic
scholarships, and a couple degrees.

If I'm not actually in it, building it and getting relatively quick feedback
on if my solution is correct or not - I'm not learning very well. I'll
memorize all day - but what a waste of time.

------
arandr0x
I have no strategy, learning just feels insanely good. Usually things I can't
make sense of just get optimized away/drift into the ether and I don't care
for remembering them (if it's important I will keep detailed notes of
procedures, names etc at this point, but generally details/trivia don't cross
my "care threshold"). <\-- and honestly that is super important. It's just as
much what you _don't_ learn, you know?

But things that change my understanding of a domain, let me contribute to
something other people are building, or otherwise tell me how the world works?

Chances are I will spend hours non-stop talking about them relentlessly to
anybody in range (or silently to myself) usually while moving, pace around so
I can think faster, draw them, play around with problems that involve them,
see everything in every domain as a manifestation of them for a while, and so
on and so forth.

And apparently eventually it sticks. Like the first few notes of the song that
was playing every morning of 8th grade or the color of grandma's roses. You
can't fall in love with something for a while and then not think a little of
it every time it's quiet.

------
probablypower
If I decide to learn an entirely new skill 'X', my steps are generally:

1\. Imagine how I would do 'X'

2\. If I hit any walls, I look up that specific step

3\. Eventually I end up with a complete idea of how to do X, so that I have a
basic mental model of X to challenge and grow

4\. I then look up videos/articles/books on how to do X - important to do this
before testing step 3 as "1 month in the workshop saves 1 hour in the library"

5\. Once I've seen a few different ways of X, then I try to do it. If it
doesn't work I go back to step 4 and learn more.

6\. (OPTIONAL - if I want better results) I first iterate on the 'final
product', to see how tweaking various steps affect the final result. For
example, if I'm brewing beer I'll do two attempts in parallel with one varied
parameter, so I can figure out how that single parameter is affecting the
result.

7\. (OPTIONAL - if I feel creative) Once I have a good idea on how to do X
with success and sufficient quality, I then consider if I can innovate.

8\. (OPTIONAL - if I want to be a master) Once I'm done innovating on X, and
feel satisfied that "this is good enough", I try to make the process more
efficient.

9\. Share results with interested friends, and use their feedback to go back
to step 6.

------
WalterBright
After the fourth or fifth disaster, I begin to suspect I might be doing
something wrong.

------
coverclock
1\. I can only learn by doing. If I can't turn it into a project, then I'll
never internalize the details, and cannot really claim to have learned
anything. 2\. For it to be a project, there has to be a deliverable. Could be
a repo on GitHub, a clock sitting in the living room, a blog article, or
something repaired around the house. But there has to be an artifact I can
point to when I say "I learned this." 3\. Don't get stuck. If progress gets
delayed on one part of the project and you have to wait for something -
whether it's a part, or it's just going to take some time to figure something
out - then work on another part of the project in the meantime. Keep moving
forward, even if it's not the central thing in which you're interested, even
if forward motion is slow.

------
idlewords
Through a series of costly and humiliating mistakes

~~~
tchaffee
I like this because it's exactly what I asked for: don't leave out the
obvious. Great point for brainstorming.

------
mwilliaams
For me it’s 20% what everyone else is saying and 80% stack overflow. For real.

~~~
tchaffee
Yes! SO is one of my biggest learning resources. I'll go into a little more
detail: the minute I want to learn something I start looking on SO for
questions to answer. Yep, questions to answer. I can't answer any of them at
the beginning, but I sort of try to brainstorm it a little and guess at an
answer. And when someone else does answer, I learn a little. Eventually I can
start to actually answer a question here and there. Sometimes I get it wrong
and people correct me. And that's another learning experience. Repeat on a
daily basis or even several times a day and it hugely increases my learning
rate on any give tech topic.

------
andai
My most productive learning has happened while I was deeply invested in
creating something new. Being a bit thick, I would run into obstacles almost
every step along the way, but being thick has its benefits: the obstacles
break down before my skull does.

I've tried going through books and courses, thinking, ahh, it's time to get
serious, I must Learn JavaScript or Learn C or what have you, and this never
gets me very far. But if instead, I decide to Make Thing, where Thing just
happens to require C or JavaScript, now I have a point, a purpose, a
destination, and though there may be headaches, I know that they are worth it,
and I get where I'm going in the end.

------
AlchemistCamp
I've been doing an audio blog on just that topic:
[https://alchemist.camp/learning-machine](https://alchemist.camp/learning-
machine)

I've experimented a lot with MOOCs, OCW, spaced repetition, paid courses,
teaching strategies, etc. The specific ideas I've recently been most focused
on when learning are:

\- The depth of processing. I learn much faster and retain the
knowledge/skills longer when I take a very active approach that involves
deeply processing the material I'm learning.

\- Making my studies more game-like. Games are fantastic, not only for
motivation, but also for learning.

\- Tightening my learn-use loop.

~~~
tchaffee
> when I take a very active approach that involves deeply processing the
> material I'm learning.

Can you give a concrete example of what that looks like?

~~~
AlchemistCamp
Sure. If I'm reading, I ask myself what I expect the author to suggest or I
ask myself specific questions I think the chapter could answer. Then, as I
read, I update my priors.

If I'm taking notes, I'll do it by hand (which leads to better retention of
information than typing), and I do it in cursive (which involves deeper
processing than printing). In the past I tried taking notes in another
language, but that was too slow.

If I'm learning a language, I'll try to spend more time listening to audio
instead of watching video. When working on pronunciation, instead of just
trying to say a phrase "correctly", I'll try to say it like a specific actor
in the way they would with the same pacing and the same facial expressions.

If I'm learning a web framework, I'll take breaks from reading guides or docs
to rewrite something I've previously written in an older framework. Then I'll
go back to the guide.

------
ralusek
Start from examples almost immediately. If you start with the foundation or
background, you'll lose me almost immediately, because I lack the context to
tack the new knowledge onto.

Show me what we're doing/how we're using this knowledge, and very frequently
I'll start thinking "hmm I wonder how they do that, I bet that's why we have
to do XYZ first." Then you learn about it, you've had a moment to think
through it in your own, and now you have plenty of context scaffolding to
stick to.

------
mikorym
Personally. Spend a lot of time on a topic and choose a small amount of
things. Don't let the list of things you want to learn grow too larger before
things are ticked off.

------
awillen
I just try to start doing a simple example of whatever I want to learn, and
after I realize all the things I don't have/know that I need, I start to build
out a more organized framework.

For example, a few years ago I had the vague idea that mortgage rates were low
and investing in real estate was a good plan. I didn't know where to start, so
I just started looking at listings. Quickly realized I'd need an agent to get
more detailed info about the properties I was interested in and to make
offers, so I Googled "Buyer's agent <city>" and found the local association of
Realtors. From there I found an agent who owned similar investment properties
to what I was looking at. Once he started getting me more detailed information
about properties, I realized I didn't know how to analyze profitability well.
Talked to my agent and read books/articles until I could build a basic model
with appropriate assumptions. So forth and so on until I bought a property.

I think it's often too challenging to build a plan on how to learn something
if you're starting from scratch, so just picking an obvious starting point and
doing _something_ is a good way to build momentum and learn a little bit that
you can then build on.

------
nickjj
I just keep writing code, glancing at docs when needed and try to spend as
much time as possible actively using the thing I'm learning instead of reading
about or getting stuck in "what if" scenarios. In most cases writing as much
code as possible (and looking up things as needed) will help you learn things
faster than sitting back and reading.

A few days ago I wrote a post on what I learned from 7 programming languages
over 20 years[0]. It kind of touches on the process of learning and takeaways.
I almost always have a project in mind to build when learning something new.

Basically I'm not afraid to experiment. I don't think it's a problem to write
code and then throw it away, or spend weeks learning how to use something to
ultimately throw it away. You almost always learn something you can apply to
something else which is really the main takeaway from the post.

[0]: [https://nickjanetakis.com/blog/it-is-not-a-waste-of-time-
to-...](https://nickjanetakis.com/blog/it-is-not-a-waste-of-time-to-learn-a-
few-languages-or-frameworks)

------
cygned
I try to understand things as deep as possible, often that goes together with
building it myself. I am not satisfied with “that’s the way it works”. That
worked well for a lot of things, I often read other people’s code to see how
stuff works. This approach is the reason why I refuse to use Kubernetes; I
wasn’t able to understand it, it has just been too complicated so far.

------
awinter-py
take 3 months off and do a project that requires a new skill

this may be a personal observation (not sure it's industry-wide), but
companies are averse to letting in-house people apply new skills on the job.
They can even be averse to reading and experimentation during work time. Even
when they're cool with it, the work day isn't structured for heads-down time.

Most managers have little patience for intentional 'try fail' cycles.

structured work is especially hostile to category jumping -- for example, I
switched from high-speed finance to web, I picked up marketing & branding
knowledge, from self-started projects. It would be hard to seriously try these
at a job but they've paid dividends in my career.

there's a forgiveness / permission spectrum here but interrupting an ongoing
job for 'mini grad school' has been the way that I keep fresh and make
vertical jumps in my programming / tech management career.

------
ratsimihah
At a micro level I learn by doing. Just building stuff, trying to extract
general principles as I go.

At the macro-level, I try to learn things where I can transfer knowledge as
much as possible. It's easy with software development, as critical and
computational thinking and top-down/bottom-up reasoning can be used
everywhere.

------
non-entity
Honestly thinking back, I can only really learn nowadays by doing, and I have
to be genuinely interested in it. Furthermore, I've found only by jumping in
can I retain the attention needed to learn.

As an example. I recently tried to learn a programming language I had some
interest in. Initially, by attempting to follow a book chronologically which I
grew bored of by the 4th chapter. Later, I had something I wanted to make, and
decided to jump in using the book / docs as a reference when doing something I
wasn't familiar with and amazingly, I was able to keep focus and actually
learn.

Unfortunately recently, many of my learning projects are coming to a halt
because I find I need to purchase _X_ and wait for it to ship, usually
temporarily losing interest in the meantime.

------
vidanay
I can learn things quickly. Read a few chapters, poke at some code, make
something work.

I do however need a few months to _understand_ something. I have found that
this "incubation" time works well for me, and I find myself far more
comfortable with the subject afterwards.

------
qafy
I learn best when I just jump right in and get my hands dirty. I definitely
use an iterative approach over an incremental approach. I prefer to just take
a rough pass at structure gross estimates in my head of what needs to be done
where. I just get something working even if its just `return true; // TODO`
for now, and then iterate over and over with a finer-toothed comb each time.

This sounds like general work practice but it's highly tied to learning for
me. When I use this strategy I tend to learn on the go and learn what I need
to know rather than worrying up front about what I should research or wasting
time planning things that don't end up materializing.

------
glafa
I make a plain text file of a certain topic (e.g chess, economics, politics)
and progressively add my own thoughts on in it and useful info I get from
others (books, videos, lectures). A lot of early modern thinkers had this
thing called a commonplace book. like John Locke, William Paley, Jonathan
Edwards, Leopardi, Bacon, Emerson and Thoreau. I think it's a pretty good way
to learn. I prefer having a digital version of it since it's much easier to
access and I don't have to worry about losing it.

[https://en.wikipedia.org/wiki/Commonplace_book](https://en.wikipedia.org/wiki/Commonplace_book)

------
flagZ
If the goal is to acquire a skill, it's about deliberate practice... I have to
come up with a project I want to do, make sure I have energy for it, set time
aside for some days, and take a step forward each day (or each other day..)

If the goal is to acquire new knowledge and explore new fields, setting 1h
aside each day to read (and study/highlight) non-fiction books works very well
for me. I am very strict about this, almost like a second job. For me, it's
about acquiring and digesting knowledge gradually. More than 1h a day does not
work for me.

Hope this helps!

------
deepaksurti
\- I Don't learn for the sake of learning, in the phase of life, where I have
to be picky!

\- Spend some time (few hours to 1 week max) based on the subject I am trying
to learn

\- Augment my learning with mind maps and Anki flash cards for long term
augmentation

\- My favourite: make a small from scratch, throw away version of whatever it
is trying to learn, so I internalise it (again set a 2 week time constraint).
Example: write a home grown version of Numpy (not everything the core only) or
an augmented reality library (may be something that can just detect the
horizontal plane)

~~~
asdkhadsj
Can you go into more depth about mind maps, and specifically how they help
you?

I'm building an information repository _(of a sort..)_ and my plan for
retention is spaced repetition _(ala Anki /etc)_, but I've been unsure how to
fit mind maps in it. I've got an inkling that I can automate mind map
construction based on a form of labels, but tbh I'm not sure what problem I'm
solving with mind maps. How do you find they help you?

~~~
deepaksurti
It is an interesting idea to be able to generate mind maps automatically.

I just keep a few pages aside, scribble notes, use bookmarks for pages if I am
reading a book. Only when I am done, I build a mind map. Usually a book's mind
map is made up of multiple mind maps, 1 per chapter.

I use mind maps for the forest overview while flash cards are my trees and
leaves! I find the combination very simple to build, maintain and fun to
review. Hope this helps, let me know if you want any help in your auto mind
map construction idea.

~~~
slouischarles
Great combo suggestions. Are there any specific tools you use for the mind
maps?

~~~
deepaksurti
Really a personal mix of analog and digital; I will try to explain a bit in
detail, hope this gives an idea.

So I use Bullet Journal (analog notebooks) for perusal work and Notion/Org
Mode for office work; Notion for non IP work and Org mode for IP work. My org
mode is not in cloud anywhere; only on my disk. All my planning and to-dos go
somewhere in here.

I follow this directory layout convention in my home directory:

Projects/<Subject Area>/: \- Books \- Articles \- Courses \- Papers

So for everything I am working through, say a book 'Realtime Rendering' under
'Graphics' subject area, I make a dir 'Books/realtime-rendering' directory
with 'mind-map' directory which contains all mind-maps scanned from my analog
mind map notebook where I make the mind maps with pen and paper. This also
contains the exported Anki flash deck for that book.

After making this a habit, I have found that I have become selective about
what to work through; I take my time to find out as there is good but worth-it
effort to make flash cards and mind maps for long term memory augmentation.
Even if I am not very regular (only about 50-60% a week) to review my cards, I
am way better off now than before putting this system in place.

------
qznc
I use Anki to learn the basic language and terms. When I joined a new company
and domain last year for example, it was a lot of new acronyms.

When searching through documentation, I look for the dense writing of
scientific papers. Clear definitions are very useful but often missing in
documentation.

Look for the "greybeards" and listen to them. Their intuition is valuable.
However, if you have a solid argument then have no fear to voice your
concerns. If you disagree with someone more experienced then take the time to
really find out why.

------
broth
1\. When learning something, learn it in small chunks — like reading a chapter
at a time from a book. Then write things down on paper and review regularly.

2\. Keep a bullet journal[1] for learning new things.

3\. Try explaining what you learn to your spouse, friend, coworker, and see if
they can understand it. If you’re able to explain it in simple enough terms
then most likely you have mastered that. Also, teaching reinforces your
knowledge.

[1] [https://bulletjournal.com/](https://bulletjournal.com/)

------
mattrp
Create a list of the people who know the most on the topic and what they are
saying / what position they have. For ex. If I want to learn about what Lidar
is I start with What does Elon Musk think and then try to find all the people
who have the opposing view and learn what they think about the topic. Once you
have two or three parties on both sides of a topic you can start to formulate
your own next-step questions /research topics.

------
benbristow
I learn best jumping in the deep end and learning from previous patterns in
code and understanding why something was done the way it was done.

Reading books & loads of technical writing doesn't seem to set in very well
for me.

Watching conferences and online course videos also helps understanding
concepts. I couldn't for the life get my head around Redux when reading their
website but I bought a udemy course for $5 and it basically clicked instantly!

------
dawhizkid
I've found I need structure and accountability, which is annoying since
usually that means you're spending money (i.e. a personal trainer, a paid
class/bootcamp instead of googling).

A really interesting startup idea would be to figure out how to scale
accountability in a way that, psychologically, would be similar to a
coach/teacher/mentor but at a fraction of the cost.

~~~
ryanmercer
>A really interesting startup idea would be to figure out how to scale
accountability in a way that, psychologically, would be similar to a
coach/teacher/mentor but at a fraction of the cost.

There are many services like this for losing weight and what not where you
basically bet that you'll reach your goal in the given time. Sites like
dietbet and healthywage.

It wouldn't surprise me of something already exists tha can be used as is for
learning.

------
sidcool
Another question: How do you avoid getting overwhelmed when starting to learn?
In fact, how do you decide what to learn?

------
chris_st
For difficult subjects, or stuff I might not work on immediately, I go through
a book or class and take COPIOUS notes.

The idea is that they're good enough for me to use to explain the subject to
someone else; the old proverb about "You only understand something when you
teach it to someone else" is really true.

------
bipinvk9
I do a lot of self-introspection. It started as my effort grow into a more
mature person and now it's is a habit. But this habit sometimes leads me to
overthink. I'm still evolving as a wise person, I think. It should never stop!

------
smilesnd
Scanning before reading getting a idea what it is going to try and teach me
before actually reading it.

Writing down every word I don't know/understand and getting comfortable with
them.

Playing with the subject matter.

Discussing the subject matter with people.

------
dsr_
For most skills, I absolutely must have a small project in mind from the
beginning. I have no patience for learning a new language or tool if I don't
have a particular project that uses it.

------
Gravityloss
I play around. I want to see what kind of output some different inputs cause.

Works better with composable concepts and where you can get quick feedback.

Bret Victor has had some excellent thoughts on this area.

------
stunt
In addition to other comments, I try to find somewhere/project that I can use
and practice the new skill.

------
User23
I learn with the classic read (or watch), do, repeat loop.

------
logari
I am going to write my answer before reading others' comments, because I don't
want to be primed by the other comments.

Because we are all different in some sense, and yet similar in the main sense,
certain strategies work for all of us, while some for only those who are
similar in that narrow sense.

I need not mention the general sense, since I suspect there maybe many
comments with a high probability of mentioning the general case.

In the narrow case of what works only for me, I cannot learn when I don't have
a big picture context for my learning. A Book like Lubanovic's Python cookbook
is certainly not my style. I need an overall context, so that each small bit
makes sense within that context.

For instance, if I want to learn a foreign language word, seeing it deciphered
in a textbook, alongside a text does not guarantee my learning it or
remembering. Even less so, if it is a word in a "word list dictionary". I need
a text which excites my interest enough to want to know the unknown words in
it. A Reader's-Digest-like shallow text is not exciting or stimulating enough.

Ditto to programming and CS. I need to know where each learning bit fits in
the overall scheme and the scheme should be exciting. I don't want to learn
(cannot) simply because something is popular due to network effects (C++) when
I know there are better solutions like a combination of Rust, Racket, and
Ruby.

I also need to know whether it is worth my input. Like in the C+ case, is my
effort paid in triplicate? If not, not interested. Intrinsic motivation in
learning something can translate to a pay off, but it better be as good as
(similar input output ratio) Scheme/Lisp/Racket to justify learning it.

Recently I have been looking at Java, in the popular book by Eckel. I am
having doubts as to whether I should go deeper in Ruby or also see what Java
offers. My motivation is damped by the way Scala is written since it seems to
be what Java aimed to be but couldn't. I am stuck now. On one hand, I want to
know If I am missing something if I dont learn Java. On the other, I dont want
to learn sth arcane and programmer-unfriendly when and since I have
alternatives like Scala and Ruby and Kotlin.

Hence, for me to want to learn creates the necessary mental readiness to
actually learn it. I picked up Ruby fairly quickly because the explanations by
David Black, in his Well Grounded Rubyist were excellent enough to allow me to
learn it all in one place, with zero frustrations.

In summary, for me to learn sth, it has to be useful, interesting,
stimulating, and practice-friendly. After this is satisfied, I need clear
explanations and logical progression with hands-on real-world applications.
With all this, I dont need any tricks or strategies. It will all fall into
place.

Best,

James

