I think some curation is in order. I have found that studying Dijkstra's mathematical documents have been great for developing methodical, analytical thinking. They have also been indispensable for developing a taste for elegance in notation and proofs.
All of this translates directly into developing a taste for elegant (programming) interfaces and well structured architectures.
In the past, I put together a curated list of pdfs for anyone who wants to start studying and practicing Dijkstra's mathematics. Here is what I recommend:
After that, I have this collection of EWDs and other documents that offer the best, graded, introductions to the idioms and concepts of Dijkstra's mathematics:
I'm not formally trained in CS, are there "modern day Dijkstras" in the field that I should read up on? I'd like to stay up on the underlying technological advances in computing, and it's just fun to read up on this stuff.
Incidentally, the maintainer of the archive, Ham Richards, taught me and thousands of beginner Computer Science students Haskell in the introductory CS class. I sometimes wonder what he thinks about Haskell's recent popularity.
I don't recall using imperative programming languages until at least sophomore year.
All of this translates directly into developing a taste for elegant (programming) interfaces and well structured architectures.
In the past, I put together a curated list of pdfs for anyone who wants to start studying and practicing Dijkstra's mathematics. Here is what I recommend:
EWD1300 - The notational conventions of the mathematics : http://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1300.PDF
After that, I have this collection of EWDs and other documents that offer the best, graded, introductions to the idioms and concepts of Dijkstra's mathematics:
http://bit.ly/ewdcollection