5 ms·
I had a good relantionship with Segdewick's books, before being turned off by Cormen a few times. They are less math focused, and overall have a beginner friend
by nomemory 5y ago
I had a good relantionship with Segdewick's books, before being turned off by Cormen a few times. They are less math focused, and overall have a beginner friendliness to them. They won't take you by the hand an explain things like you are 5, but nevertheless they are more easy to digest.
Also as a non-popular opinion in this current age, I recommend you to learn how to implement your algorithms in C, rather than an easier to grasp programming language. Even if you are probably not not going to program in C in your future career, understanding how memory management works will give you an edge later.
Also given C's loose style, you will also get some skills in organizing your code in a language that doesn't impose a lot of obvious constraints to the way you write your code. You will be able to build your own conventions, and evolve them once you get more skilled. Seeing what others are doing is also important.
Good luck!
PS: Don't fall into the macro trap, you will never get out. (inside joke).
- Karsteski 5y agoI've actually implemented a few algorithms and containers in C, I agree with your advice on that front! Were you referring to [Computer Science: An Interdisciplinary Approach](https://www.pearson.com/us/higher-education/program/Sedgewick-Computer-Science-An-Interdisciplinary-Approach/PGM317047.html https://www.pearson.com/us/higher-education/program/Sedgewic...)?
- dkjaudyeqooe 5y agoHe's more likely talking about "Algorithms": https://books.google.hr/books?vid=ISBN9780321573513&redir_esc=y https://books.google.hr/books?vid=ISBN9780321573513&redir_es...
- scns 5y agoCS50 from Harvard on https://edx.org https://edx.org used to teach Computer Science using C and still might do so.
- Karsteski 5y agoI've actually gone through CS50x, but I felt that was only a base introduction compared to a regular old CS curriculum
- cloverich 5y agoThis was the book I used. It is more accessible yet interestingly some comments seem to characterize it as "beginner friendly" in a way that suggests it is less canonical. Make no mistake, if you learn the material in Sedgewick well you'd be light years ahead of 99% of your peers. It likewise provides depth and foundations for things like leetcode, thus far the majority of leetcode problems I've done were toy versions of things covered in the book. On a more personal / subjective PoV, IMHO its just a much better book than the majority of the others. Its not as basic as Grokking Algorithms nor as interview focused as Cracking the coding interview. I would suggest the latter if you just want to be good at programming interviews.
- bennysomething 5y agoInteresting, I was working through sedgewick course on Coursera, I hit a bit of a wall, it seemed like one of the assignments was just really badly explained. However lots of other students were fine so it's probably me. I considered getting the grokking booking instead. What's the main difference between sedgewick and the grok algo book?
- carabiner 5y agoDo you remember which assignment? I did the first one, percolation and hooo boy, that was a trip. The problem statement buries the key library that you use for everything at the bottom of the page. Did get it eventually though.
- bennysomething 5y agoHi, yeah week 3 collinear points, I had to post a number of questions on the message board due to language being ambiguous. In the end I could only get 74 percent and I had no idea why. I spent hours and hours and hours on it. Yes percolation was a tough first assignment. Week two was linked lists and really straight forward. Also I found Sedgwick's explanations too terse, I ended up on YouTube countless times watching other videos that helped me get what he was saying. I think it's probably me though, it's a Princeton course so I guess it's aimed at the very bright!
- kevinventullo 5y agoI’ll sort of second this by saying that Sedgewick’s Algorithms I/II courses on Coursera are top-notch and completely free. He is a truly thoughtful educator. Completing those courses was probably the most useful thing I did when prepping for interviews as part of a career change 6 years ago.
- willhinsa 5y agoAwesome!! Any other tips you have for someone going through that career change as well? I have a Mathematics BA, and worked as an actuary. I've self taught myself varying degrees of SQL, Python, JavaScript, and C, but I've found it difficult not to feel like an imposter without formal qualifications, even though I know I'm a capable learner and love solving challenging problems.
- geoka9 5y agoSoftware dev is a trade, not a science. With a math degree and stats work experience, I'd say you're better qualified as far as credentials than most of us professional devs.
- kevinventullo 5y agoI came from math as well! For what it’s worth, I’ve found that even the brightest computer scientists and software engineers have a solemn respect for mathematics. Don’t worry about formal qualifications. This is an industry where the largest and most successful companies were started by college dropouts. It’s still very young and things are changing faster than academia can keep up. A willingness to learn and relearn is critical. My prep for big tech interviews basically boiled down to those algorithms classes, doing ~150 leetcode problems, slapping together a small junky android app, and perusing undergrad CS material on Wikipedia. To be honest, the first two are probably enough to get your foot in the door at the biggest companies.
- aidenn0 5y agoDiscrete math is to Computer Science as Calculus is to Physics. If you still remember any discrete math from your Math BA, you should have zero issue consuming any undergraduate textbook on theoretical CS.
- dS0rrow 5y agothis recent book published by No Starch implements everything in pure c: https://nostarch.com/algorithmic-thinking https://nostarch.com/algorithmic-thinking
- alleycat5000 5y agoThis book is a fun read too!
- tomhallett 5y agoI like how Segdewick's book comes with working examples in java, which feels very approachable for a practitioner. In comparison, Cormen's book has lots of pseduo code examples where the indexing is 1 based. Cormen lays out the reasoning for this early in the book, how 1 based indexing is clearer for teaching, which sounds completely reasonable but is an additional hoop to jump through when trying to build working examples of the algorithms.
- mindcrime 5y agoI'm a big fan of Sedgewick's books myself. I like how he has parallel series of his books, for different programming languages. So you get "Algorithms in Java" or "Algorithms in C++" or whatever, depending on your preference. I think he has at least C, C++, and Java versions. https://www.cs.princeton.edu/~rs/ https://www.cs.princeton.edu/~rs/
- JeremyNT 5y agoDo you know if there's much difference between these beyond the language used? It seems like he's only updating the Java version these days, and that's what is used in the Coursera course. From what I can tell he's collapsed it down to just a java version entitled "Algorithms" that hit 4th edition in 2011. I'd rather have the exercises / examples in C but not if it means swimming upstream.
- mindcrime 5y agoIt's funny, I have each book of all three of the respective original series: Java, C, and C++. But I have never sat down and done a "side by side" comparison. And I've mostly worked through the Java version. I guess I had assumed that the contents were largely the same modulo language oriented variations, but I can't swear that that is the case. From what I can tell he's collapsed it down to just a java version entitled "Algorithms" that hit 4th edition in 2011. I never got around to picking that one up, so I don't really know anything about it.