
Ask HN: What is your approach/plan for learning something totally new? - justaguyhere
Suppose you are trying to improve&#x2F;learn French Scrabble and French is not your first language. Or you are learning to play Go - or Sanskrit. Lets consider mostly logical stuff here (math, programming, board games etc) and lets say you are learning it on your own.<p>Other than the usual steps of picking good books, courses etc - do you have any other method to improve? If you can, could you provide specific examples?
======
jryan49
I kind of do a tornado approach of reading a lot about researching and reading
about things I'm trying to learn and just doing it. Back and forth. I pick
reading when I feel like reading, and doing when I feel like doing, so it
keeps me motivated and I don't get too bored of doing/reading.

Like I'm trying to make a clone of a game I used to play in the 90's so I
started using Unreal Engine to just start putting stuff down. I realized I
knew way too little to even get started so I started reading their manual.
When I got bored of that I went back to just trying things out myself. Same
with 3d modeling and blender. Watched some youtube videos, found a beginners
series on how to do some things. Then I just applied my knowledge and made a
half-assed model for the game. It's not a great model, but it's enough to at
least learn how to import it into Unreal and keep going from there.

I guess it's kind of like agile for learning. Short loops, evaluate what
you're doing and why, and what your end goals are. Don't get stuck doing one
thing for too long. This also helps short circuits my perfectionist
tendencies. Directed chaos.

------
PaulHoule
For me it is a balance between book learning and practical learning.

For instance I spent a long time watching anime and I picked up some words on
my own, but when I started studying Japanese from a book things just clicked:
time over time I'd have this recognition that I'd heard a phrase thousands of
times and I'd remember it perfectly from that.

Similarly with programming I use a mixture of the two.

Sometimes there is no substitute for just sitting down and banging out code.
Other times you need to understand things conceptually.

My main language was Java for a while and then I wound up doing Python because
Python work just kept coming. Python has an adequate user's manual so I've
focused on learning the manual inside and out so when I need an answer I don't
go to Stack Overflow or the splogs that dominate Google results but I know how
to look it up in the source before idiots inject errors.

Python is entirely conventional and it doesn't require new concepts. Other
languages are harder.

For instance the manual for Clojure is by no means adequate for getting your
head around how to use immutable data structures. The guy who wrote Clojure
wrote an O'Reilly book that does explain that stuff and you should buy it and
read it if you want.

Similar problems come up if you want to learn scala. For instance the "cats"
library has something called an Applicative Functor and rather than explaining
what that is it points you to a theoretical CS paper with a lot of strange
symbols that aren't greek or hebrew but rather something the author made up.

For scala I've found that the O'Reilly "Scala Cookbook" is pretty good because
it gradually builds up the use of Scala idioms so just like experienced Scala
devs you can write code that looks really simple. If people never see you
fight with the compiler they'll think you are really smart.

Try to learn Maven or Spring from Stack Overflow and you'll be destined for
the circle of hell where you have to maintain XML files written by people who
cut and pasted stuff from SO until it almost works -- but it is a house of
cards because the slightest change causes "spooky action at a distance" that
breaks everything.

Really understand the manual and those systems don't look complex.

~~~
justaguyhere
Thank you.

Have you tried these tactics outside of programming?

~~~
PaulHoule
There is a whole science of sports training but a big part of it is to take
things in measured doses.

It took me about a month to learn to consistently throw and catch a boomerang.
I took it easy at the beginning because it takes a lot of strength and I could
easily have hurt myself.

I've been coaching my son on how to run on walls and using the same principle.
At some point you start losing your edge and you should stop before that
happens.

