I have learned python syntax (from books like fluent python or python cookbook etc.) and I want to learn the underlying concepts of computer science (in an abtract way), do you have some books/courses to suggest to me (others than algorithms and data structures' resources)

I've found a book called Python Programming. An introduction to computer science by John Zelle, but I am worried about the potential huge overlap between the above-mentionned books and this one.

Some books found while brwosing the web, but I don't have an idea about its usefulness :

  • Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, and Julie Sussman
  • Compilers: Principles, Techniques, and Tools by Alfred V. Aho
  • How to design computer programs by by Matthew Flatt, Matthias Felleisen, Robert Bruce Findler, and Shriram Krishnamurthi
  • Theory of Computation by Michael Sipser

PS: My backgraound is a Bachelor degree in Mathematics. My goal is to gain sufficient knowledge of CS concepts.


  • 3
    $\begingroup$ I'd be worried about a book titled "Python Programming: An introduction to computer science." That's a bit like "Driving cars: An introduction to automotive engineering." The two concepts are clearly related, but the first one doesn't actually do much to introduce the second one. $\endgroup$ Commented Jun 19, 2019 at 9:16

1 Answer 1


Computer science is a very broad field - see this Wikipedia outline. Machine learning is just one topic within the field, and there are other parts of computer science that have little or no overlap with machine learning. For example, the theory of compiler design is unlikely to be of much use to you when studying machine learning.

My suggestion is to approach this from the opposite direction. Start with a text that provides an introduction to machine learning. An introductory text should include an overview of other computer science topics that are pre-requisites. If you want to or need to dig into any these wider topics in more detail, then you have a more focussed goal than trying to understand the whole of computer science.

  • $\begingroup$ I'd go farther: compiler design is of zero use in machine learning, with probability one. Diving straight into machine learning is definitely the right thing to do for somebody who has a degree in mathematics, because machine learning is almost entirely mathematics. $\endgroup$ Commented Jun 19, 2019 at 9:19
  • $\begingroup$ Do you have a suggestion of a text that has such pre-requisites ? $\endgroup$
    – user99918
    Commented Jun 19, 2019 at 14:01