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.
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.
This is not limited to IT. You can also apply that to other domains.
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.
- 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.
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...
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.
- 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 :)
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.
Super simple, free, and the best note system I've used so far.
Then in the chapter 2019.
For notes on books, I still take those on paper
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.
Now with math or science, video tutorials seem to better teach me.
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.pdfFun 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.
I'm looking forward to digging your brain!
https://en.wikipedia.org/wiki/Martin_Heidegger
[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...
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.
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
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.)
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.
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.
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.
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.
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.
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.
Can you give a concrete example of what that looks like?
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.
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.
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.
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-...
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.
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.
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.
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.
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!
- 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)
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?
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.
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.
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.
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.
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!
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.
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.
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.
Works better with composable concepts and where you can get quick feedback.
Bret Victor has had some excellent thoughts on this area.
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
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.