free-programming-books/books/free-programming-books-subjects.md
TimTeitelbaum eba0d7f2ed
Update free-programming-books-subjects.md (#9275)
* Update free-programming-books-subjects.md

I am the author of a new language-agnostic introduction-to-programming textbook, discovered this site, and would like to add my book. The use case I am thinking of is this:

A kid wants to learn to program, doesn't know which in language, and comes to this:

     BY PROGRAMMING LANGUAGE
     Originally, this list included a section called "Language Agnostic" for books about
      programming subjects not restricted to a specific programming language. That 
      section got so big, we decided to split it into its own file, the BY SUBJECT file.

The kid in intrigued by the idea of learning programming in a language-agnostic manner, goes to BY SUBJECT, and but finds there a list of specialized and advanced-sounding topics. The kid just wants to learn to program, and not finding a suitable category in which to look, is encouraged thereby to return to BY PROGRAMMING LANGUAGE, pick a specific language, and go down that path.

Little did the kid suspect that there are language-agnostic introductory-programming texts in Theoretical Computer Science. It took Eric Hellman to point out to me that this is where such great language-agnostic introductory-programming texts as SICP/Ableson&Sussman are catalogued (Yes, SICP uses Scheme, but it isn't really about "How to Program in Scheme"). But the kid will never find SICP, because "Theoretic Computer Science" is an intimidating misnomer. (And furthermore, the category does include highly-theoretical books.) The kid has lost an opportunity, and has been led to believe that programming is all about learning one of the standard programming languages.

I am proposing to:

1. Rename the category "Language-Agnostic Introductory Programming / Theoretical Computer Science".
2. Move into alphabetical order in the list of subjects.
3. Insert my own book there.

My preference (frankly) would be to separate introductory programming textbooks from highly theoretical books, but (certainly, as a newcomer to the site) I don't propose such a step.

* New subject: "Programming"

Split "Theoretical Computer Science" into "Programming" and (the residual list) "Theoretical Computer Science".
Add my book to "Programming".

* Clarify where Language-Agnostic books went.


Add one sentence to the preamble clarifying where Language-Agnostic books went.

* Add an extra line

Added an extra line to fix a lint error
2023-02-01 10:16:39 -05:00

88 KiB
Raw Blame History

BY SUBJECT

This list, organized by subject, is for books that cover a programming-related subject in a programming-language agnostic way.
Books that cover a specific programming language can be found in the BY PROGRAMMING LANGUAGE list.

Index

0 - Meta-Lists

Algorithms & Data Structures

Artificial Intelligence

Blockchain

Cellular Automata

Cloud Computing

Competitive Programming

Compiler Design

Computer Organization and Architecture

Computer Science

Computer Vision

Containers

Data Science

Database

Game Development

Graphics Programming

Graphical User Interfaces

IDE and editors

See also … Emacs Lisp, Regular Expressions

Information Retrieval

Licensing

Machine Learning

Mathematics

Mathematics For Computer Science

Misc

Networking

Object Oriented Programming

Open Source Ecosystem

Operating Systems

Parallel Programming

Partial Evaluation

Professional Development

Programming

Programming Paradigms

Quantum Computing

Regular Expressions

Reverse Engineering

Search Engines

Security & Privacy

Software Architecture

Standards

Theoretical Computer Science

Version Control Systems

Web Performance

Web Services

Workflow