free-programming-books/books/free-programming-books-langs.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

178 KiB
Raw Blame History

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. Books on general-purpose programming that don't focus on a specific language are in listed in the subject "Programming". Books on specialized topics are listed in their own sub-sections.

Index

ABAP

Ada

Agda

Alef

Android

APL

App Inventor

Arduino

ASP.NET

ASP.NET Core

Blazor

Assembly Language

Non-X86

AutoHotkey

AutoIt

Autotools

Awk

Bash

Basic

BeanShell

BETA

C

C#

C++

Carbon

Chapel

Cilk

Clojure

CMake

COBOL

CoffeeScript

ColdFusion

Component Pascal

Cool

Coq

Crystal

CUDA

D

Dart

DB2

DBMS

Delphi / Pascal

DTrace

Eiffel

Elixir

Ecto

Phoenix

Embedded Systems

Erlang

F Sharp

Firefox OS

Flutter

Force.com

Forth

Fortran

FreeBSD

Go

GraphQL

Groovy

Gradle

Grails

Spock Framework

Hack

Hadoop

Haskell

Haxe

HTML and CSS

Bootstrap

Icon

iOS

IoT

Isabelle/HOL

J

Java

Codename One

Java Reporting

Spring

Spring Boot

Spring Data

Spring Security

Wicket

JavaScript

AngularJS

See also … Angular

Backbone.js

Booty5.js

D3.js

Dojo

Electron

Elm

Ember.js

Express.js

Fastify

Hydrogen

Ionic

jQuery

Meteor

Next.js

Node.js

Nuxt.js

Om

React

React Native

Redux

Remix

Svelte

Vue.js

Jenkins

Julia

Kotlin

LaTeX / TeX

LaTeX

TeX

Language Agnostic

  • BY SUBJECT This section has been moved to its own file.

Limbo

Linux

Lisp

Emacs Lisp

See also … IDE and editors

PicoLisp

Livecode

Lua

Make

Markdown

Mathematica

MATLAB

Maven

Mercury

Modelica

MongoDB

MySQL

Neo4J

.NET Core

.NET Framework

NewSQL

Nim

NoSQL

Oberon

Objective-C

OCaml

Octave

Odin

OpenMP

OpenResty

OpenSCAD

TrueOS

Pascal

Perl

PHP

CakePHP

CodeIgniter

Drupal

Laravel

Symfony

Zend

PostgreSQL

PowerShell

Processing

Prolog

Constraint Logic Programming (extended Prolog)

PureScript

Python

Django

Flask

Kivy

Pandas

Pyramid

Tornado

Q#

QML

  • Qt5 Cadaques - Juergen Bocklage-Ryannel, Johan Thelin (HTML, PDF, ePub) (🚧 in process)
  • Qt6 Book - Johan Thelin, Jürgen Bocklage-Ryannel, Cyril Lorquet (HTML, PDF) (🚧 in process)

R

Racket

Raku

Raspberry Pi

REBOL

Ruby

RSpec

Ruby on Rails

Sinatra

Rust

Sage

Scala

Lift

Play Scala

Scheme

Scilab

Scratch

Sed

Self

Smalltalk

Snap

Solidity

Spark

Splunk

SQL (implementation agnostic)

SQL Server

Standard ML

Swift

Vapor

Tcl

TEI

Teradata

Tizen

TLA

TypeScript

Angular

See also … AngularJS

Deno

Unix

V

Verilog

VHDL

Visual Basic

Visual Prolog

Vulkan

Web Services

Windows 8

Windows Phone

Workflow

xBase (dBase / Clipper / Harbour)

YAML