Books/Resources for Self Study - Algorithms?

Click For Summary

Discussion Overview

The discussion revolves around resources and books for self-studying algorithms and data structures, particularly in the context of programming. Participants share their experiences with various texts and suggest additional materials that could enhance understanding and skills in this area.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant mentions using "Grokking Algorithms" to improve their understanding of data structures and algorithms, particularly linked lists and pointers.
  • Another participant references "The Master Algorithm" by Pedro Domingos, noting its coverage of machine learning concepts related to linked lists and probability theory.
  • A suggestion is made to consider Donald Knuth's "The Art of Computer Programming" as a foundational resource for learning data structures and algorithms.
  • Participants recommend the classic CLRS book for self-study and suggest "Algorithms in C" and "Algorithms in C++" by Robert Sedgewick for those interested in specific programming languages.
  • One participant emphasizes the importance of practical experience in programming, including analyzing, designing, and debugging code, alongside studying theoretical materials.
  • A video course titled "Data Structures and Algorithms" from NPTEL is mentioned, though the programming language used is unclear.

Areas of Agreement / Disagreement

Participants generally agree on the importance of studying algorithms and data structures, but there are multiple competing views regarding the best resources and approaches for self-study. No consensus is reached on a single recommended book or method.

Contextual Notes

Some suggestions depend on familiarity with specific programming languages, and the effectiveness of resources may vary based on individual learning preferences. There are also unresolved questions about the applicability of certain courses and materials.

Who May Find This Useful

This discussion may be useful for individuals interested in enhancing their programming skills, particularly those looking for self-study resources in algorithms and data structures.

gibberingmouther
Messages
120
Reaction score
15
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.
 
  • Like
Likes   Reactions: Klystron and Delta2
Physics news on Phys.org
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.
images?q=tbn:ANd9GcQS-ghkWGs3JFFFh9N0VFTRQvTGdCPo9wQUytUDUwB4C162FvVfBnXbvVX_GXZ3t3n2AVU.jpg
 

Attachments

  • images?q=tbn:ANd9GcQS-ghkWGs3JFFFh9N0VFTRQvTGdCPo9wQUytUDUwB4C162FvVfBnXbvVX_GXZ3t3n2AVU.jpg
    images?q=tbn:ANd9GcQS-ghkWGs3JFFFh9N0VFTRQvTGdCPo9wQUytUDUwB4C162FvVfBnXbvVX_GXZ3t3n2AVU.jpg
    1.6 KB · Views: 723
  • Like
Likes   Reactions: gibberingmouther
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.
 
  • Like
Likes   Reactions: QuantumQuest, gibberingmouther and Klystron
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:
  • Like
Likes   Reactions: gibberingmouther and Wrichik Basu
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.
 
  • Like
Likes   Reactions: gibberingmouther

Similar threads

  • · Replies 14 ·
Replies
14
Views
11K
Replies
41
Views
7K
  • · Replies 28 ·
Replies
28
Views
9K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 17 ·
Replies
17
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 16 ·
Replies
16
Views
5K
  • · Replies 17 ·
Replies
17
Views
12K
  • · Replies 16 ·
Replies
16
Views
10K