[HN Gopher] Learning Algorithms
___________________________________________________________________
Learning Algorithms
Author : paedubucher
Score : 31 points
Date : 2023-08-12 18:37 UTC (4 hours ago)
(HTM) web link (paedubucher.ch)
(TXT) w3m dump (paedubucher.ch)
| rg111 wrote:
| The author would do himself a great service if he chooses some
| other resource for learning algorithms.
|
| CLRS isn't bad. It is meant for a reference, and it also assumes
| that you are taking the course in college with an instructor
| teaching you.
|
| There are other great resources out there.
|
| Two I recommend are:
|
| - Algorithms, Coursera (Sedgewick, Wayne)
|
| - The Algorithm Design Manual (Skiena)
|
| I have recommended self-taught programmers in the past, which all
| of them liked:
|
| - A Common Sense Guide to Data Structures and Algorithms,
| PragProg (Jay Wengrow)
|
| - Algorithms Illumited, book or Coursera MOOC (Tim Rougharden)
| speakspokespok wrote:
| I always recommend 'A Common Sense Guide to Data Structures and
| Algorithms' as well but I'd like to call out the 2nd edition
| has expanded the recursion chapters and in general the end of
| chapter assignments are better. The 2nd edition was born from
| several years of teaching material from the first edition.
| sdenton4 wrote:
| Skiena is great.
|
| My usual learn-a-new-language routine is speed-running the
| first 25ish Project Euler problems. They cover a lot of three
| usual language basics.
|
| https://projecteuler.net/
| sn9 wrote:
| Skiena posts recent semesters of lectures on Youtube as
| playlists, as well.
|
| Going through them at 1.25-1.5x speed, a lecture per night or
| every few days, is extremely helpful.
| paedubucher wrote:
| One issue I have with CLRS is that array indices usually start
| at 1, but sometimes they use 0, because it works better in that
| particular case. Some functions I used in Erlang
| (lists:sublist/3, lists:nth/2) use 1-based indices, too. I
| thought that 0-based array indices (and exclusive upper bounds)
| were quite a done deal in computer science (https://www.cs.utex
| as.edu/users/EWD/transcriptions/EWD08xx/E...).
| colesantiago wrote:
| Are there any startups doing or requiring complex or exotic
| algorithms these days to solve unique engineering problems?
|
| Would really love to know to see different and various use cases.
| BossingAround wrote:
| I've recently been trying to learn algorithms as a self-taught
| software engineer. I've made it quite far without much deeper
| knowledge of the area (I do have some basic overview of course),
| but it has always been on my mind that I should to study up.
|
| I've tried CLRS, but oh boy it's a) a slog to go through, b) very
| sparse with explanations. You might say that the whole book is
| one explanation after another, and you'd be technically right,
| but there's nothing more frustrating than an overly complex
| explanation that might be absolutely precise yet complex to
| understand. I also often feel like the language is needlessly
| complex.
|
| On top of that, for example, the mathematical explanations often
| skip steps that are obvious to authors. You might think it's
| reasonable, but to a struggling newcomer, this is a huge drag.
|
| Unrelated to algorithms (but not totally), I am now studying
| Discrete Mathematics for Comp Sci [0] since I felt like my math
| knowledge (or lack thereof) is holding me back in reasoning about
| algorithms. Even those courses have a fair share of skipping
| obvious steps in mathematic explanations, but it's doable so far
| (especially with tools like ChatGPT and Wolfram Alpha to check my
| understanding).
|
| I'm just trying to be a better engineer, and I'm having a really
| hard time trying to find a suitable resource to learn from.
|
| [0] https://www.coursera.org/specializations/discrete-
| mathematic...
| goodbyesf wrote:
| > I'm just trying to be a better engineer
|
| Your time would be better spent on accumulating domain
| knowledge in whatever industry you are working in - finance,
| healthcare, government, etc. Especially if you want career
| advancement or make yourself look more attractive to
| prospective employers. Unless you are directly involved in
| writing algorithms or academic research, you really won't be
| proving time and space complexity of algorithms in your job. A
| general understanding is sufficient for 99% of the jobs out
| there.
| trealira wrote:
| I'm still in university, but I took discrete math at my
| university last semester and took data structures over the
| summer between semesters.
|
| My data structures course mainly was graded from Zybooks
| assignments. I think it's actually a pretty good and
| understandable resource. It was this:
| https://www.zybooks.com/catalog/data-structures-essentials/
|
| Anyway, maybe after you study discrete math from Coursera, that
| Zybook could help. It has some basics about big-O notation and
| determining the big-O of an algorithm (and calculating the
| number of operations it requires), but after that, it's all
| explanations of data structures accompanied by many animations
| and pictures. It may be tedious for someone who already knows
| how e.g. red black trees works, but it helped me understand
| them, as well as unbalanced BSTs, AVL trees, B-trees, heaps,
| and graphs. The stacks and queues were tedious for me, because
| I already know them.
|
| I do think having taken discrete math helped me; I still
| flipped through CRLS during the course on the side, and their
| explanations were less impenetrable because I know the basics
| of mathematical proofs now.
|
| There's also a book on data structures that went over hash
| functions (it's out of print, but I found a PDF online). It was
| also helpful for me. I'll reply to this comment with it when I
| get home.
___________________________________________________________________
(page generated 2023-08-12 23:00 UTC)