Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Books/Resources for Self Study - Algorithms?

  1. Feb 12, 2019 at 10:01 PM #1
    I have a book called "Grokking Algorithms", and when I'm done with my current tabletop game project I plan to work through this as much as it seems worthwhile to do so.

    I was not at my best when I took the class that corresponds to what's in this book, so I figure it would be good to study it further. It's basically a data structures/algorithms textbook with a lot of pictures and diagrams. I want to get better with linked lists, pointers, and that sort of thing. Basically I figure if I understand the theory better and do some code examples I'll be much more comfortable with these kind of important programming building blocks.

    I think I'll have time to do this, and even a little more, before I graduate. Do you guys have any suggestions for how I could further develop understanding that will help with being a more skillful programmer? This seems like a good place to ask because I think the people here who know about programming are more science and math oriented, like I am.
  2. jcsd
  3. Feb 13, 2019 at 3:01 AM #2


    User Avatar
    Gold Member

    I recently read a computer science book such as you describe, The Master Algorithm by Pedro Domingos. While not a textbook, the author provides a decent review and explanation of machine learning touching on linked lists, Markov chains, and probability theory.

    Perhaps other computer scientists will respond as my list of CS/math textbooks is dated. This C programming book covers pointers as implemented in the language.
  4. Feb 13, 2019 at 3:45 AM #3

    Wrichik Basu

    User Avatar
    Gold Member
    2018 Award

    If you want to learn data structures and Algorithms, the best books in the field are those by Donald Knuth. The name of the series is "The Art of Computer Programming".

    @QuantumQuest has an insight post: Intro to Data Structures for programming. Have a look at it. In addition, he will be able to site more books on Algorithms and data structures.
  5. Feb 13, 2019 at 6:34 PM #4


    User Avatar
    Science Advisor
    Gold Member

    Algorithms and data structures is the most fundamental thing for a programmer albeit unfortunately overlooked and understated in many cases. I would definitely recommend the classic CLRS book even for self study. Additionally, I would recommend "Algorithms in C" by Robert Sedgewick, if you want to go through C language or "Algorithms in C++" by the same author, if you prefer the C++ way. There is also a whole lot of other good books on the subject. You can take a look at my insights Intro to Algorithms for Programming and Intro to Data Structures for Programming. I also have a number of recommended books and resources there. Two online courses that I highly recommend is "Algorithms Design and Analysis" Part 1 & 2 of Stanford by Tim Roughgarden and "Algorithms" Part I and II of Princeton, at Coursera - instructor is Robert Sedgewick.

    In order to become a more skillful programmer, you have also to spend many hours to analyze, design, develop and debug code, develop some good programming habits like structuring / beautifying your code, write purposeful comments, utilize what is already tested / approved in the programming world, be it a library, a framework, a tool or whatever relevant to the task at hand and reinvent the wheel only for personal enlightenment. Although you may already be doing many if not all of these things I think that you may find something useful in this list.
    Last edited: Feb 13, 2019 at 8:33 PM
  6. Feb 13, 2019 at 7:22 PM #5

    Wrichik Basu

    User Avatar
    Gold Member
    2018 Award

    After what has been written in #4, there is little to add. Anyways, this is a video course:

    Data Structures and Algorithms (NPTEL)

    Not quite sure which programming language is used. Check it out once.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?