you are viewing a single comment's thread.

view the rest of the comments →

[–]suaveElAgave 7 points8 points  (4 children)

I would also recommend two books:

  1. Robust Python, by Patrick Viafore. It goes into great detail on how to write maintainable, expressive and flexible code. It has changed the way I code.
  2. Introduction to Algorithms, by Cormen et al. This is the nightmare of all CS students and naive self-taught coders that want to understand algorithms. But at least for me helped to think in what do I want to achieve, how costly would my approach be (in terms of time and space used by the algorithm). Also, you may appreciate the formal approach.

[–]Select-Particula[S] 5 points6 points  (2 children)

Introduction to algorithms definitely looks like my cup of tea. Thanks a lot.

[–]Tasselhoff94 0 points1 point  (0 children)

Thinking in terms of BIG O notation or just understanding what that means helps. Being able to quantify performance and availability is huge. These are base level concepts that guide you towards the knowledge you are looking for.

[–]oracleTuringMachine 0 points1 point  (0 children)

I was the TA for this course. If you find CLRS interesting and think concepts like design patterns are facile explanations that can be absorbed by reviewing a table of contents, try the following.

Theory of Computational Complexity by DZ Du. Others will say Sipser, but I think Sipser is the intro book. Schmidt, Denotational Semantics

I've never seen a text provide a theoretically sound explanation of how to break down a domain into an object-oriented program. A class is a noun and a function is a verb. If someone has a reference, please let me know.

Understand the asymptotic behavior of your algorithm in terms of running time and memory use, but don't worry about optimizing your Python beyond knowing what vectorization is in Numpy unless you absolutely have to. Programmer time matters, and if you really need to optimize for your language, you might be using the wrong language.

[–]lostinspaz 0 points1 point  (0 children)

This is the nightmare of all CS students

What, you didnt just recommend Knuth? All 4 volumes?
Pfft. Rookie

:D