3 ms·
Ask HN: What is your approach/plan for learning something totally new?
Suppose you are trying to improve/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.
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?
- PaulHoule 8y agoFor 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 8y agoThank you. Have you tried these tactics outside of programming?
- PaulHoule 8y agoThere 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.
- jryan49 8y agoI 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.