|
|
@ -7,229 +7,229 @@ Books on general-purpose programming that don't focus on a specific language are |
|
|
|
|
|
|
|
|
|
|
|
### Index |
|
|
|
### Index |
|
|
|
|
|
|
|
|
|
|
|
- [BY PROGRAMMING LANGUAGE](#by-programming-language) |
|
|
|
* [ABAP](#abap) |
|
|
|
- [Index](#index) |
|
|
|
* [Ada](#ada) |
|
|
|
- [ABAP](#abap) |
|
|
|
* [Agda](#agda) |
|
|
|
- [Ada](#ada) |
|
|
|
* [Alef](#alef) |
|
|
|
- [Agda](#agda) |
|
|
|
* [Android](#android) |
|
|
|
- [Alef](#alef) |
|
|
|
* [APL](#apl) |
|
|
|
- [Android](#android) |
|
|
|
* [App Inventor](#app-inventor) |
|
|
|
- [APL](#apl) |
|
|
|
* [Arduino](#arduino) |
|
|
|
- [App Inventor](#app-inventor) |
|
|
|
* [ASP.NET](#aspnet) |
|
|
|
- [Arduino](#arduino) |
|
|
|
* [ASP.NET Core](#aspnet-core) |
|
|
|
- [ASP.NET](#aspnet) |
|
|
|
* [Blazor](#blazor) |
|
|
|
- [ASP.NET Core](#aspnet-core) |
|
|
|
* [Assembly Language](#assembly-language) |
|
|
|
- [Blazor](#blazor) |
|
|
|
* [Non-X86](#non-x86) |
|
|
|
- [Assembly Language](#assembly-language) |
|
|
|
* [AutoHotkey](#autohotkey) |
|
|
|
- [Non-X86](#non-x86) |
|
|
|
* [AutoIt](#autoit) |
|
|
|
- [AutoHotkey](#autohotkey) |
|
|
|
* [Autotools](#autotools) |
|
|
|
- [AutoIt](#autoit) |
|
|
|
* [Awk](#awk) |
|
|
|
- [Autotools](#autotools) |
|
|
|
* [Bash](#bash) |
|
|
|
- [Awk](#awk) |
|
|
|
* [Basic](#basic) |
|
|
|
- [Bash](#bash) |
|
|
|
* [BeanShell](#beanshell) |
|
|
|
- [Basic](#basic) |
|
|
|
* [BETA](#beta) |
|
|
|
- [BeanShell](#beanshell) |
|
|
|
* [C](#c) |
|
|
|
- [BETA](#beta) |
|
|
|
* [C#](#csharp) |
|
|
|
- [C](#c) |
|
|
|
* [C++](#cpp) |
|
|
|
- [C#](#c-1) |
|
|
|
* [Carbon](#carbon) |
|
|
|
- [C++](#c-2) |
|
|
|
* [Chapel](#chapel) |
|
|
|
- [Carbon](#carbon) |
|
|
|
* [Clojure](#clojure) |
|
|
|
- [Chapel](#chapel) |
|
|
|
* [CMake](#cmake) |
|
|
|
- [Clojure](#clojure) |
|
|
|
* [COBOL](#cobol) |
|
|
|
- [CMake](#cmake) |
|
|
|
* [CoffeeScript](#coffeescript) |
|
|
|
- [COBOL](#cobol) |
|
|
|
* [ColdFusion](#coldfusion) |
|
|
|
- [CoffeeScript](#coffeescript) |
|
|
|
* [Component Pascal](#component-pascal) |
|
|
|
- [ColdFusion](#coldfusion) |
|
|
|
* [Cool](#cool) |
|
|
|
- [Component Pascal](#component-pascal) |
|
|
|
* [Coq](#coq) |
|
|
|
- [Cool](#cool) |
|
|
|
* [Crystal](#crystal) |
|
|
|
- [Coq](#coq) |
|
|
|
* [CUDA](#cuda) |
|
|
|
- [Crystal](#crystal) |
|
|
|
* [D](#d) |
|
|
|
- [CUDA](#cuda) |
|
|
|
* [Dart](#dart) |
|
|
|
- [D](#d) |
|
|
|
* [DB2](#db2) |
|
|
|
- [Dart](#dart) |
|
|
|
* [DBMS](#dbms) |
|
|
|
- [DB2](#db2) |
|
|
|
* [Delphi / Pascal](#delphi--pascal) |
|
|
|
- [DBMS](#dbms) |
|
|
|
* [DTrace](#dtrace) |
|
|
|
- [Delphi / Pascal](#delphi--pascal) |
|
|
|
* [Eiffel](#eiffel) |
|
|
|
- [DTrace](#dtrace) |
|
|
|
* [Elixir](#elixir) |
|
|
|
- [Eiffel](#eiffel) |
|
|
|
* [Ecto](#ecto) |
|
|
|
- [Elixir](#elixir) |
|
|
|
* [Phoenix](#phoenix) |
|
|
|
- [Ecto](#ecto) |
|
|
|
* [Elm](#elm) |
|
|
|
- [Phoenix](#phoenix) |
|
|
|
* [Erlang](#erlang) |
|
|
|
- [Erlang](#erlang) |
|
|
|
* [F#](#f-sharp) |
|
|
|
- [F Sharp](#f-sharp) |
|
|
|
* [Firefox OS](#firefox-os) |
|
|
|
- [Firefox OS](#firefox-os) |
|
|
|
* [Flutter](#flutter) |
|
|
|
- [Flutter](#flutter) |
|
|
|
* [Force.com](#forcecom) |
|
|
|
- [Force.com](#forcecom) |
|
|
|
* [Forth](#forth) |
|
|
|
- [Forth](#forth) |
|
|
|
* [Fortran](#fortran) |
|
|
|
- [Fortran](#fortran) |
|
|
|
* [FreeBSD](#freebsd) |
|
|
|
- [FreeBSD](#freebsd) |
|
|
|
* [Go](#go) |
|
|
|
- [Go](#go) |
|
|
|
* [Graphs](#graphs) |
|
|
|
- [Graphs](#graphs) |
|
|
|
* [GraphQL](#graphql) |
|
|
|
- [GraphQL](#graphql) |
|
|
|
* [Gremlin](#gremlin) |
|
|
|
- [Gremlin](#gremlin) |
|
|
|
* [Neo4J](#neo4j) |
|
|
|
- [Neo4J](#neo4j) |
|
|
|
* [Groovy](#groovy) |
|
|
|
- [Groovy](#groovy) |
|
|
|
* [Gradle](#gradle) |
|
|
|
- [Gradle](#gradle) |
|
|
|
* [Grails](#grails) |
|
|
|
- [Grails](#grails) |
|
|
|
* [Spock Framework](#spock-framework) |
|
|
|
- [Spock Framework](#spock-framework) |
|
|
|
* [Hack](#hack) |
|
|
|
- [Hack](#hack) |
|
|
|
* [Hadoop](#hadoop) |
|
|
|
- [Hadoop](#hadoop) |
|
|
|
* [Haskell](#haskell) |
|
|
|
- [Haskell](#haskell) |
|
|
|
* [Haxe](#haxe) |
|
|
|
- [Haxe](#haxe) |
|
|
|
* [HTML and CSS](#html-and-css) |
|
|
|
- [HTML and CSS](#html-and-css) |
|
|
|
* [Bootstrap](#bootstrap) |
|
|
|
- [Bootstrap](#bootstrap) |
|
|
|
* [Tailwindcss](https://tailwindcss.com/docs) - Adam Wathan |
|
|
|
- [Icon](#icon) |
|
|
|
* [HTTP](#http) |
|
|
|
- [iOS](#ios) |
|
|
|
* [HTTPS](#https) |
|
|
|
- [IoT](#iot) |
|
|
|
* [Icon](#icon) |
|
|
|
- [Isabelle/HOL](#isabellehol) |
|
|
|
* [iOS](#ios) |
|
|
|
- [J](#j) |
|
|
|
* [IoT](#iot) |
|
|
|
- [Java](#java) |
|
|
|
* [Isabelle/HOL](#isabellehol) |
|
|
|
- [Codename One](#codename-one) |
|
|
|
* [J](#j) |
|
|
|
- [Java Reporting](#java-reporting) |
|
|
|
* [Java](#java) |
|
|
|
- [Spring](#spring) |
|
|
|
* [Codename One](#codename-one) |
|
|
|
- [Spring Boot](#spring-boot) |
|
|
|
* [Java Reporting](#java-reporting) |
|
|
|
- [Spring Data](#spring-data) |
|
|
|
* [Spring](#spring) |
|
|
|
- [Spring Security](#spring-security) |
|
|
|
* [Spring Boot](#spring-boot) |
|
|
|
- [Wicket](#wicket) |
|
|
|
* [Spring Data](#spring-data) |
|
|
|
- [JavaScript](#javascript) |
|
|
|
* [Spring Security](#spring-security) |
|
|
|
- [AngularJS](#angularjs) |
|
|
|
* [Wicket](#wicket) |
|
|
|
- [Backbone.js](#backbonejs) |
|
|
|
* [JavaScript](#javascript) |
|
|
|
- [Booty5.js](#booty5js) |
|
|
|
* [AngularJS](#angularjs) |
|
|
|
- [D3.js](#d3js) |
|
|
|
* [Backbone.js](#backbonejs) |
|
|
|
- [Dojo](#dojo) |
|
|
|
* [Booty5.js](#booty5js) |
|
|
|
- [Electron](#electron) |
|
|
|
* [D3.js](#d3js) |
|
|
|
- [Elm](#elm) |
|
|
|
* [Dojo](#dojo) |
|
|
|
- [Ember.js](#emberjs) |
|
|
|
* [Electron](#electron) |
|
|
|
- [Express.js](#expressjs) |
|
|
|
* [Elm](#elm) |
|
|
|
- [Fastify](#fastify) |
|
|
|
* [Ember.js](#emberjs) |
|
|
|
- [Hydrogen](#hydrogen) |
|
|
|
* [Express.js](#expressjs) |
|
|
|
- [Ionic](#ionic) |
|
|
|
* [Fastify](#fastify) |
|
|
|
- [jQuery](#jquery) |
|
|
|
* [Hydrogen](#hydrogen) |
|
|
|
- [Meteor](#meteor) |
|
|
|
* [Ionic](#ionic) |
|
|
|
- [Next.js](#nextjs) |
|
|
|
* [jQuery](#jquery) |
|
|
|
- [Node.js](#nodejs) |
|
|
|
* [meteor](#meteor) |
|
|
|
- [Nuxt.js](#nuxtjs) |
|
|
|
* [Next.js](#nextjs) |
|
|
|
- [Om](#om) |
|
|
|
* [Node.js](#nodejs) |
|
|
|
- [React](#react) |
|
|
|
* [Nuxt.js](#nuxtjs) |
|
|
|
- [React Native](#react-native) |
|
|
|
* [Om](#om) |
|
|
|
- [Redux](#redux) |
|
|
|
* [React](#react) |
|
|
|
- [Remix](#remix) |
|
|
|
* [React Native](#react-native) |
|
|
|
- [Svelte](#svelte) |
|
|
|
* [Redux](#redux) |
|
|
|
- [Vue.js](#vuejs) |
|
|
|
* [Remix](#remix) |
|
|
|
- [Jenkins](#jenkins) |
|
|
|
* [Svelte](#svelte) |
|
|
|
- [Julia](#julia) |
|
|
|
* [Vue.js](#vuejs) |
|
|
|
- [Kotlin](#kotlin) |
|
|
|
* [Jenkins](#jenkins) |
|
|
|
- [LaTeX / TeX](#latex--tex) |
|
|
|
* [Julia](#julia) |
|
|
|
- [LaTeX](#latex) |
|
|
|
* [Kotlin](#kotlin) |
|
|
|
- [TeX](#tex) |
|
|
|
* [Language Agnostic](free-programming-books-subjects.md) |
|
|
|
- [Language Agnostic](#language-agnostic) |
|
|
|
* [LaTeX / TeX](#latex--tex) |
|
|
|
- [Limbo](#limbo) |
|
|
|
* [LaTeX](#latex) |
|
|
|
- [Linux](#linux) |
|
|
|
* [TeX](#tex) |
|
|
|
- [Lisp](#lisp) |
|
|
|
* [Limbo](#limbo) |
|
|
|
- [Emacs Lisp](#emacs-lisp) |
|
|
|
* [Linux](#linux) |
|
|
|
- [PicoLisp](#picolisp) |
|
|
|
* [Lisp](#lisp) |
|
|
|
- [Livecode](#livecode) |
|
|
|
* [Emacs Lisp](#emacs-lisp) |
|
|
|
- [Lua](#lua) |
|
|
|
* [PicoLisp](#picolisp) |
|
|
|
- [Make](#make) |
|
|
|
* [Livecode](#livecode) |
|
|
|
- [Markdown](#markdown) |
|
|
|
* [Lua](#lua) |
|
|
|
- [Mathematica](#mathematica) |
|
|
|
* [Make](#make) |
|
|
|
- [MATLAB](#matlab) |
|
|
|
* [Markdown](#markdown) |
|
|
|
- [Maven](#maven) |
|
|
|
* [Mathematica](#mathematica) |
|
|
|
- [Mercury](#mercury) |
|
|
|
* [MATLAB](#matlab) |
|
|
|
- [Modelica](#modelica) |
|
|
|
* [Maven](#maven) |
|
|
|
- [MongoDB](#mongodb) |
|
|
|
* [Mercury](#mercury) |
|
|
|
- [MySQL](#mysql) |
|
|
|
* [Modelica](#modelica) |
|
|
|
- [.NET Core](#net-core) |
|
|
|
* [MongoDB](#mongodb) |
|
|
|
- [.NET Framework](#net-framework) |
|
|
|
* [MySQL](#mysql) |
|
|
|
- [NewSQL](#newsql) |
|
|
|
* [.NET Core / .NET](#net-core) |
|
|
|
- [Nim](#nim) |
|
|
|
* [.NET Framework](#net-framework) |
|
|
|
- [NoSQL](#nosql) |
|
|
|
* [NewSQL](#newsql) |
|
|
|
- [Oberon](#oberon) |
|
|
|
* [Nim](#nim) |
|
|
|
- [Objective-C](#objective-c) |
|
|
|
* [NoSQL](#nosql) |
|
|
|
- [OCaml](#ocaml) |
|
|
|
* [Oberon](#oberon) |
|
|
|
- [Octave](#octave) |
|
|
|
* [Objective-C](#objective-c) |
|
|
|
- [Odin](#odin) |
|
|
|
* [OCaml](#ocaml) |
|
|
|
- [OpenMP](#openmp) |
|
|
|
* [Octave](#octave) |
|
|
|
- [OpenResty](#openresty) |
|
|
|
* [Odin](#odin) |
|
|
|
- [OpenSCAD](#openscad) |
|
|
|
* [OpenMP](#openmp) |
|
|
|
- [TrueOS](#trueos) |
|
|
|
* [OpenResty](#openresty) |
|
|
|
- [Pascal](#pascal) |
|
|
|
* [OpenSCAD](#openscad) |
|
|
|
- [Perl](#perl) |
|
|
|
* [Pascal](#pascal) |
|
|
|
- [PHP](#php) |
|
|
|
* [Perl](#perl) |
|
|
|
- [CakePHP](#cakephp) |
|
|
|
* [PHP](#php) |
|
|
|
- [CodeIgniter](#codeigniter) |
|
|
|
* [CakePHP](#cakephp) |
|
|
|
- [Drupal](#drupal) |
|
|
|
* [CodeIgniter](#codeigniter) |
|
|
|
- [Laravel](#laravel) |
|
|
|
* [Drupal](#drupal) |
|
|
|
- [Symfony](#symfony) |
|
|
|
* [Laravel](#laravel) |
|
|
|
- [Yii](#yii) |
|
|
|
* [Symfony](#symfony) |
|
|
|
- [Zend](#zend) |
|
|
|
* [Yii](#yii) |
|
|
|
- [PostgreSQL](#postgresql) |
|
|
|
* [Zend](#zend) |
|
|
|
- [PowerShell](#powershell) |
|
|
|
* [PostgreSQL](#postgresql) |
|
|
|
- [Processing](#processing) |
|
|
|
* [PowerShell](#powershell) |
|
|
|
- [Prolog](#prolog) |
|
|
|
* [Processing](#processing) |
|
|
|
- [Constraint Logic Programming (extended Prolog)](#constraint-logic-programming-extended-prolog) |
|
|
|
* [Prolog](#prolog) |
|
|
|
- [PureScript](#purescript) |
|
|
|
* [Constraint Logic Programming](#constraint-logic-programming-extended-prolog) |
|
|
|
- [Python](#python) |
|
|
|
* [PureScript](#purescript) |
|
|
|
- [Django](#django) |
|
|
|
* [Python](#python) |
|
|
|
- [Flask](#flask) |
|
|
|
* [Django](#django) |
|
|
|
- [Kivy](#kivy) |
|
|
|
* [Flask](#flask) |
|
|
|
- [NumPY](#numpy) |
|
|
|
* [Kivy](#kivy) |
|
|
|
- [Pandas](#pandas) |
|
|
|
* [Numpy](#numpy) |
|
|
|
- [PyOpenCl](#pyopencl) |
|
|
|
* [Pandas](#pandas) |
|
|
|
- [Pyramid](#pyramid) |
|
|
|
* [PyOpenCl](#pyopencl) |
|
|
|
- [Tornado](#tornado) |
|
|
|
* [Pyramid](#pyramid) |
|
|
|
- [Q#](#q) |
|
|
|
* [Tornado](#tornado) |
|
|
|
- [QML](#qml) |
|
|
|
* [Q#](#q-sharp) |
|
|
|
- [R](#r) |
|
|
|
* [QML](#qml) |
|
|
|
- [Racket](#racket) |
|
|
|
* [R](#r) |
|
|
|
- [Raku](#raku) |
|
|
|
* [Racket](#racket) |
|
|
|
- [Raspberry Pi](#raspberry-pi) |
|
|
|
* [Raku](#raku) |
|
|
|
- [REBOL](#rebol) |
|
|
|
* [Raspberry Pi](#raspberry-pi) |
|
|
|
- [Ruby](#ruby) |
|
|
|
* [REBOL](#rebol) |
|
|
|
- [RSpec](#rspec) |
|
|
|
* [Ruby](#ruby) |
|
|
|
- [Ruby on Rails](#ruby-on-rails) |
|
|
|
* [RSpec](#rspec) |
|
|
|
- [Sinatra](#sinatra) |
|
|
|
* [Ruby on Rails](#ruby-on-rails) |
|
|
|
- [Rust](#rust) |
|
|
|
* [Sinatra](#sinatra) |
|
|
|
- [Sage](#sage) |
|
|
|
* [Rust](#rust) |
|
|
|
- [Scala](#scala) |
|
|
|
* [Sage](#sage) |
|
|
|
- [Lift](#lift) |
|
|
|
* [Scala](#scala) |
|
|
|
- [Play Scala](#play-scala) |
|
|
|
* [Lift](#lift) |
|
|
|
- [Scheme](#scheme) |
|
|
|
* [Play Scala](#play-scala) |
|
|
|
- [Scilab](#scilab) |
|
|
|
* [Scheme](#scheme) |
|
|
|
- [Scratch](#scratch) |
|
|
|
* [Scilab](#scilab) |
|
|
|
- [Sed](#sed) |
|
|
|
* [Scratch](#scratch) |
|
|
|
- [Self](#self) |
|
|
|
* [Sed](#sed) |
|
|
|
- [Smalltalk](#smalltalk) |
|
|
|
* [Self](#self) |
|
|
|
- [Snap](#snap) |
|
|
|
* [Smalltalk](#smalltalk) |
|
|
|
- [Solidity](#solidity) |
|
|
|
* [Snap](#snap) |
|
|
|
- [Spark](#spark) |
|
|
|
* [Solidity](#solidity) |
|
|
|
- [Splunk](#splunk) |
|
|
|
* [Spark](#spark) |
|
|
|
- [SQL (implementation agnostic)](#sql-implementation-agnostic) |
|
|
|
* [Splunk](#splunk) |
|
|
|
- [SQL Server](#sql-server) |
|
|
|
* [SQL (implementation agnostic)](#sql-implementation-agnostic) |
|
|
|
- [Standard ML](#standard-ml) |
|
|
|
* [SQL Server](#sql-server) |
|
|
|
- [Swift](#swift) |
|
|
|
* [Standard ML](#standard-ml) |
|
|
|
- [Vapor](#vapor) |
|
|
|
* [Swift](#swift) |
|
|
|
- [Tcl](#tcl) |
|
|
|
* [Vapor](#vapor) |
|
|
|
- [TEI](#tei) |
|
|
|
* [Tcl](#tcl) |
|
|
|
- [Teradata](#teradata) |
|
|
|
* [TEI](#tei) |
|
|
|
- [Tizen](#tizen) |
|
|
|
* [Teradata](#teradata) |
|
|
|
- [TLA](#tla) |
|
|
|
* [Tizen](#tizen) |
|
|
|
- [TypeScript](#typescript) |
|
|
|
* [TLA](#tla) |
|
|
|
- [Angular](#angular) |
|
|
|
* [TypeScript](#typescript) |
|
|
|
- [Deno](#deno) |
|
|
|
* [Angular](#angular) |
|
|
|
- [Unix](#unix) |
|
|
|
* [Deno](#deno) |
|
|
|
- [V](#v) |
|
|
|
* [Unix](#unix) |
|
|
|
- [Verilog](#verilog) |
|
|
|
* [V](#v) |
|
|
|
- [VHDL](#vhdl) |
|
|
|
* [Verilog](#verilog) |
|
|
|
- [Visual Basic](#visual-basic) |
|
|
|
* [VHDL](#vhdl) |
|
|
|
- [Visual Prolog](#visual-prolog) |
|
|
|
* [Visual Basic](#visual-basic) |
|
|
|
- [Vulkan](#vulkan) |
|
|
|
* [Visual Prolog](#visual-prolog) |
|
|
|
- [Web Services](#web-services) |
|
|
|
* [Vulkan](#vulkan) |
|
|
|
- [Windows 8](#windows-8) |
|
|
|
* [Web Services](#web-services) |
|
|
|
- [Windows Phone](#windows-phone) |
|
|
|
* [Windows 8](#windows-8) |
|
|
|
- [Workflow](#workflow) |
|
|
|
* [Windows Phone](#windows-phone) |
|
|
|
- [xBase (dBase / Clipper / Harbour)](#xbase-dbase--clipper--harbour) |
|
|
|
* [Workflow](#workflow) |
|
|
|
- [YAML](#yaml) |
|
|
|
* [xBase (dBase / Clipper / Harbour)](#xbase-dbase--clipper--harbour) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ABAP |
|
|
|
### ABAP |
|
|
|