Live data from Hacker News

Ask HN: Do you get impatient when learning new things?

news.ycombinator.com

31–40 of 84 posts

Re: Ask HN: Do you get impatient when learning new things?

#31

I get incredibly frustrated with 1) people who "design" (and I use the term very, very loosely) the actual tools you're learning, and 2) then even more so for the people who teach the tools, as though it's the only thing that existed - even though any member of the target audience has to know a thousand very closely related things, so that honestly you could just point out the 5 tricky things. For point 1 - things sh…

1, tool writers assume we have like infinite time to follow 27-point directions that could be 100% automated. And tutorial writers assume we have infinite time to read all about the history of the world. An alternative explanation is that their audience is wider than your stated 99%. Somewhat ironically, if you scroll down ~20 lines on the Rust book page you linked there is the deep water you are demanding.

I don't think, for example, "semicolons terminate statements; blocks in curly braces; module import is use module::submodule::symbol; comment with // or /* */ which can nest." is deep water. The tutorial has to make a decision: does its audience know what a loop is, or how to even think about an algorithm that would use it? If the audience doesn't, then it's not a Rust programming language book, it's a Beginning Programming with Rust book. If the audience does, then they just need to be told the syntax.

Even when they ostensibly do that, "The main concept that makes Rust unique is called ‘ownership’. Consider this small example:" could be better-stated as a difference between Rust and (list the languages that don't have it.)

Tutorial authors and tool authors also waste INCREDIBLE amounts of time through dishonesty. For example, Functional Programming like Haskell is largely defined by the hoops you have to jump through syntactically and in program structure due to what it avoids. But a Haskell tutorial will NEVER make it obvious within the first two minutes that you are doing something fundamental different from C, Java, Python, C#, Perl, whatever - and that it has a whole concept, monads, just to get around this artificially imposed self-limitation.

They're just dishonest, waste incredible gobs of time, and don't get to the point.

When was the last time you picked up a language book that made it completely obvious in the first minute what it was and wasn't suited for, how many hours you would need to practice it before you made progress, and what the absolute bare minimum number of minutes you would need to invest before you could start doing anything in it was? It's a guessing game. "Wow, this only took me two minutes!" (json). "Wow this took me two weeks and I still can't do shit!" (haskell)

I Googled "I tried learning haskell for" to report on what I found. There happens to be one hit on that exact syntax. Guess how long the guy "tried" learning haskell for? A few months.

Re: Ask HN: Do you get impatient when learning new things?

#32

I get incredibly frustrated with 1) people who "design" (and I use the term very, very loosely) the actual tools you're learning, and 2) then even more so for the people who teach the tools, as though it's the only thing that existed - even though any member of the target audience has to know a thousand very closely related things, so that honestly you could just point out the 5 tricky things. For point 1 - things sh…

From the Rust book intro: "After reading this introduction, you’ll want to dive into either ‘Learn Rust’ or ‘Syntax and Semantics’, depending on your preference: ‘Learn Rust’ if you want to dive in with a project, or ‘Syntax and Semantics’ if you prefer to start small, and learn a single concept thoroughly before moving onto the next. Copious cross-linking connects these parts together."

It sounds like you should have started at "Syntax and Semantics". For me, I really enjoyed starting in "Learn Rust" because I'm more of a "learn by doing" kind of person, and I find that I cannot retain any information from pages of syntax descriptions.

Neither of us are wrong, we're just both different when it comes to learning.

Re: Ask HN: Do you get impatient when learning new things?

#33
my 2c - I'm a very passionate learner - a softtop engineer (eg no education) who got where I am through the blood sweat and tears of personal drive and learning on the go. I'm a decent engineer now, and have really figured out what works for me so this is my current perspective on approaching learning.

The practice is important. I plow through books too but you need a project to become proficient. I bought a laptop and started working on some small scala projects on my laptop and reading books. That was enough to let me submit some janky scala for an interview and land a job as a scala engineer.

Some material is harder to learn, some of it is easy. I think it's better to defer reading books for a bit and get some familiarity with the basics so you have a point of reference while reading. The other day I was assigned a pretty big feature with a piece of the domain I wasn't too familiar with. I spent a few days writing a parser to get closer to the spec before starting to work on design docs etc. Having the familiarity then allows me to make sense of the research and existing design documentation so I think having a point of reference is a really important part of the reading/learning. If it's too far away from my current experience, I can't draw new pathways so it just falls out of my head. If I have that basic seed, I can grow some new pathways and expand my position with reading etc.

Ultimately, I think the best way to learn is to actually present the information again to other people. This is the culmination of practice and research together. To write a detailed article on a topic, you'll have to both write the code and also do a lot of reading. Any gaps in your knowledge you'll identify while you're writing and then it's a simple bit of google-fu to get a really solid level of understanding on a topic as you fill out your article.

Re-implementing things is also a terrific way to expand your knowledge. If you read a pattern book, you'll have some high level understanding of how the patterns fit together. Once you apply the pattern once, though, you'll never forget it and you'll see how it works at a very different level. So couple that with writing an article, etc, and it's a super effective approach to learning.

Re: Ask HN: Do you get impatient when learning new things?

#34
post #32

I get incredibly frustrated with 1) people who "design" (and I use the term very, very loosely) the actual tools you're learning, and 2) then even more so for the people who teach the tools, as though it's the only thing that existed - even though any member of the target audience has to know a thousand very closely related things, so that honestly you could just point out the 5 tricky things. For point 1 - things sh…

From the Rust book intro: "After reading this introduction, you’ll want to dive into either ‘Learn Rust’ or ‘Syntax and Semantics’, depending on your preference: ‘Learn Rust’ if you want to dive in with a project, or ‘Syntax and Semantics’ if you prefer to start small, and learn a single concept thoroughly before moving onto the next. Copious cross-linking connects these parts together." It sounds like you should hav…

I didn't read through that book, I've never tried learning Rust so that's why I googled Rust tutorial so I would have an unbiased opinion on the first thing I found. You've just LITERALLY made my point for me by quoting instructions that sound like they expect to spend 20 hours on this thing right now, including referencing two other tutorials. Imagine if the first time you used a hammer it came with a reference to three different books you should read about it. That would be stupid - nobody would use a hammer then.

They should replace their expectation of 20 hours with 20 well-chosen lines anyone can use to start. If the language doesn't do that because it's too high-context, change the language so it's easier. Baby steps in Rust, or any other language, shouldn't take any number of days.

Re: Ask HN: Do you get impatient when learning new things?

#36
I'm currently learning Clojure by reading the Clojure Programming book. Its really been a struggle. You're right about the impatience part. I think everyone goes through it at one point or another.

Especially with learning a Lisp language, you can be really frustrated by having to read so much before you can actually create something.

But slowly and surely I'm learning. I just re-read the chapter(s) I don't understand over and over again.

So my advice is don't try to skim over a whole book. Try reading as slow as possible, and if you don't understand something, take a break and then get back to that same shit once more. And of course, write some code as soon as possible.

Re: Ask HN: Do you get impatient when learning new things?

#37
Just calm down, sit your butt down and read (pertinent to a book). I can understand a million other ideas bouncing up and down constantly but then to make other million ideas happen, you've got to do this.

Why?

Well, logically, if you've started learning something I'm guessing its because you want to do something with it? So have some patience.

Re: Ask HN: Do you get impatient when learning new things?

#39
I have a problem with doing the exercises, either in a textbook, or for an online course. I always expect to have the right answer straight away (whether a quiz or a coding problem), and get really frustrated if I don't. I guess 16 years of school conditions you to think like that. I also get a lot of anxiety when learning new stuff, wondering "what if I just can't understand this subject matter, period".

Re: Ask HN: Do you get impatient when learning new things?

#40
post #39

I have a problem with doing the exercises, either in a textbook, or for an online course. I always expect to have the right answer straight away (whether a quiz or a coding problem), and get really frustrated if I don't. I guess 16 years of school conditions you to think like that. I also get a lot of anxiety when learning new stuff, wondering "what if I just can't understand this subject matter, period".

I think the "just can't" part can be mitigated by remembering your past successes. I don't think there was a time where I could never understand something (if I really tried) no matter how hard I tried. Might take a long time, but, eventually at least kinda got it. Now, understand some things in depth... definitely not, but get familiar, sure.
Post reply on HN