See also: literate programming, programming languages, programming aphorisms
Notes on Programming as a practice. Collect notes about programming language at the “langauge” level without getting into specific details of each language. “on”, “about”, “of” programming.
List of Tips | The Pragmatic Bookshelf – Extracted From The Pragmatic Programmer
norvig/pytudes: Python programs to practice or demonstrate skills.
- Elements of Clojure
The discussions on naming and abstraction are particularly illuminating, exposing some fundamental tradeoffs like synthetic vs natural names, or principled vs adaptable systems of abstractions. Were these notions more widespread, a lot of the pointless rants and debates we hear in programming circles would disappear.
I would not recommend this book to beginners - this book is most useful when you are experienced enough that your struggle is to make choices, not to get things to work. – HN
- Concepts, techniques, and models of computer programming by Van Roy et.al, [Concepts, techniques, and models of computer programming].
- Structure and Interpretation of Computer Programs by Abelson and Sussman [Structure and Interpretation of Computer Programs].
- Programming Languages: Application and Interpretation. by Shriram Krishnamurthi [Programming languages: Application and interpretation].
- How to Design Programs, by Shriram Krishnamurthi [How to design programs: an introduction to programming and computing].
- free-programming-books/free-programming-books.md at master · EbookFoundation/free-programming-books
All CS-CMU courses
- 15-112 Fundamentals of programming and computer science (F2013)
- 15-122 Principles of Imperative
- 15-210 Parallel and Sequential Data Structures and Algorithms
- 15-212 Principles of Programming
Spring 2008, Cornell CS
- Uses SML/NJ.
PS5 implements a mini-ML compiler. source included.
Programming Language Concepts for Software Developers by Peter Sestoft, 2010; uses F#.
Rosetta Code Analysis [A Comparative Study of Programming Languages in Rosetta Code]
Our statistical analysis reveals, most notably, that: functional and scripting languages are more concise than procedural and object-oriented languages; C is hard to beat when it comes to raw speed on large inputs, but performance differences over inputs of moderate size are less pronounced and allow even interpreted languages to be competitive; compiled strongly-typed languages, where more defects can be caught at compile time, are less prone to runtime failures than interpreted or weakly-typed languages.
- Planning the Software Industrial Revolution by Brad J Cox.
- The Language Server protocol
… is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike into the tool
- Trinket – “lets you run and write code in any browser, on any device. Trinkets work instantly, with no need to log in, download plugins, or install software. Easily share or embed the code with your changes when you’re done.”
- PCITRW – tutorial on github.
- 12 resolutions for programmers
- Perhaps Not The Answer You Were Expecting But You Asked For It (An Accidental Blook) by Connor McBride.
- Mastering Programming by Kent Beck.
- Rubber Ducking: The Various Kinds of IO - Blocking, Non-blocking, Multiplexed and Async.
- Imaginary problems, the root of bad software – George – Medium
- Learn your standard library – Letters To A New Developer
- 80×25 « blarg?
- deech: “@mattgreenrocks @andywingo One of my favorite abstractions! https://t.co/Oo42zSIxX8”
- guile and delimited continuations – wingolog
- growing fibers – wingolog
- Continuations and delimited control
Aphorisms on programming language design
- More Good Programming Quotes | Henrik Warne’s blog
- More Good Programming Quotes, Part 2 | Henrik Warne’s blog
- More Good Programming Quotes, Part 3 | Henrik Warne’s blog
Van P., Haridi S.: Concepts, techniques, and models of computer programming. (2004)
Abelson H., Sussman G.J.: Structure and Interpretation of Computer Programs. (1996)
Krishnamurthi S.: Programming languages: Application and interpretation. (2007)
Felleisen M.: How to design programs: an introduction to programming and computing. (2001)
Nanz S., Furia C.A.: A Comparative Study of Programming Languages in Rosetta Code. (2014)