[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)