top | item 20433926

Ask HN: How do you personally learn?

190 points| tchaffee | 6 years ago | reply

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.

80 comments

order
[+] spiderfarmer|6 years ago|reply
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|6 years ago|reply
> 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.

[+] IceDane|6 years ago|reply
In my experience, that's the best way to learn. I think a lot of people are scared off by intellectual challenges that seem insurmountable because they underestimate what persistence can do.

I think my most important lesson in uni was not to give up, even if you feel like the subject matter might as well be in a foreign language. I distinctly remember sitting and reading documents on cryptography for a larger project and it was all more or less unintelligible to me. When it was over I explained all of those concepts and more during my presentation, and even got the highest possible grade.

That was accomplished by simply repeatedly banging my head against all the theory while researching it and reading different explanations and trying to go at it from different angles.

[+] Fradow|6 years ago|reply
Same here, and I'll add ask questions (to yourself or whoever you can). Lots of questions. When there is something you don't understand, find out first.

This is not limited to IT. You can also apply that to other domains.

[+] tchaffee|6 years ago|reply
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.

[+] rramadass|6 years ago|reply
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|6 years ago|reply
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 :)

[+] UnpossibleJim|6 years ago|reply
I tend to run when I take a lunch instead of shoving food in my face (I sit at a desk, I can do that whenever I want), and almost all my "break through" moments happen on the treadmill. It's a little frustrating, to be honest. All I'm trying to do is to not think about running, and consequently how much I hate it. BAM! Something clicks, and the solution to something I wasn't even thinking about comes to mind.
[+] Xelbair|6 years ago|reply
Plaintext vs diagrams or videos vary greatly by person.

I for example cannot stand videos at all when it comes to learning - it is either too drawn out, or too distracting - and i actually prefer plaintext. On the other hand i have few friends who absolutely cannot stand plaintext and need a good video, or real life interaction to learn.

The one thing in common in most posts is your 3rd point - build something that you want to build - that's the best way to stay motivated.

On a subject of notetaking - i really like recursive approach to notes:

* summarize the source

* read the source(n-1) and your summary(n)

* do a summary of your summary and repeat this process

I do it few times, depending on complexity of the subject.

[+] epiphanitus|6 years ago|reply
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.

[+] mattrp|6 years ago|reply
Good idea for a personal sprint retro.
[+] carapace|6 years ago|reply
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...

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

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|6 years ago|reply
+1 for the excellent Maxwell Maltz
[+] h0p3|6 years ago|reply
I use my wiki (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.
[+] probablypower|6 years ago|reply
I saw "stoic" and "bayesian" in the first 5 minutes of browsing your page. That's enough for me to decide to spend some real time digging into it later.

I'm looking forward to digging your brain!

[+] imakwana|6 years ago|reply
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... [2] https://fs.blog/2018/01/john-boyd-ooda-loop/ [3] https://tim.blog/2012/11/05/the-4-hour-chef-the-first-chapte...

[+] combatentropy|6 years ago|reply
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|6 years ago|reply
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|6 years ago|reply
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|6 years ago|reply
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|6 years ago|reply
"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|6 years ago|reply
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|6 years ago|reply
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|6 years ago|reply
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.

[+] probablypower|6 years ago|reply
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.

[+] arandr0x|6 years ago|reply
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.

[+] WalterBright|6 years ago|reply
After the fourth or fifth disaster, I begin to suspect I might be doing something wrong.
[+] idlewords|6 years ago|reply
Through a series of costly and humiliating mistakes
[+] tchaffee|6 years ago|reply
I like this because it's exactly what I asked for: don't leave out the obvious. Great point for brainstorming.
[+] yitchelle|6 years ago|reply
seconded this method for me. Hopefully more of the humiliating and less of the costly.
[+] coverclock|6 years ago|reply
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.
[+] mwilliaams|6 years ago|reply
For me it’s 20% what everyone else is saying and 80% stack overflow. For real.
[+] tchaffee|6 years ago|reply
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.
[+] epiphanitus|6 years ago|reply
What I love about stack overflow is that when you have a technical decision to make you can get a really thorough understanding of all of the pros and cons.

And if people are arguing over which solution is better, its even more valuable, because then you get to learn about all the hidden nuances of each solution and when they matter.

[+] andai|6 years ago|reply
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|6 years ago|reply
I've been doing an audio blog on just that topic: 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|6 years ago|reply
> 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?