Live data from Hacker News

How to do hard things

drmaciver.com

121–123 of 123 posts

Re: How to do hard things

#121
post #75

The most valuable thing I learned at university was how to tackle difficult problems. Taking advanced math and science courses where I had to really study, and still struggled, and having to write essays so frequently that I could no longer procrastinate or wait for the spark to hit me, was more valuable in the long run than any of the actual knowledge I gained. The advice to break a hard problem down into simpler pi…

Most valuable things I did not learned at university: * Ignore whole craze toward being cool, participating in random competitions, chasing opposite sex * Keep detailed notes of your days, who did you meet, what did you learned? * Don't worry too much about acquiring every possible new skills that you come across * The most important part of the textbook is exercises and that's not because there would be tests. If yo…

What did you achieve ? Where are you now in your professional life compared to your early colleges ?

Re: How to do hard things

#122

I am a 4th semester CS student from Germany and still don't grasp recursion, even though I already took the data structures & algorithms courses. If you did have something like a magic moment where it made sense to you, please enlighten me as I would really like to truly gain an intuition (and implement a parallelized msd-radixsort for learning-purposes because I failed to do this assignment yesterday).

Read "The Little Schemer"

Re: How to do hard things

#123

I am a 4th semester CS student from Germany and still don't grasp recursion, even though I already took the data structures & algorithms courses. If you did have something like a magic moment where it made sense to you, please enlighten me as I would really like to truly gain an intuition (and implement a parallelized msd-radixsort for learning-purposes because I failed to do this assignment yesterday).

Recursion works when you can break solving a big problem down to solving a smaller version of the same problem. So, like, if you want to balance a heap, you can start at the root node, and call "balance" on the left heap and right heap.

So, each step needs to get you closer to the goal, working on a smaller problem, until you reach a base case, a really small problem that you don't solve in terms of recursion. You check for the base case, a really small problem you actually solve directly instead of handing it off to another recursive call, and you actually return your solution to the caller.

Post reply on HN