Open Source Programming Books
Thinking of learning a new programming language? There are hundreds of high quality open source programming books available to read for free. We pick our favorites.
What it is: C is a general-purpose, procedural, portable, high-level programming language that is one of the most popular and influential languages. It was designed to be compiled using a straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal run-time support. Many programming languages owe a considerable debt to C. It has become something of the lingua franca in the programming world. Read profile page.
Learn C: Recommended Open Source C Books
What it is: C++ was designed by Bjarne Stroustrup with its first release in 1983. It is a statically typed, free-form, multi-paradigm, portable, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it has a combination of both high-level and low-level language features.
C++ remains a popular programming language. For example, it is heavily used in embedded systems, banking, and telecommunications. It is a superset of C that retains the efficiency and notational convenience of C, while providing facilities for stronger type checking, multiple inheritance, data abstraction, exception handling operator overloading, generic programming, and object-oriented programming. C++ has influenced many other languages including C#, Java, and the development of C. Read profile page.
Learn C++: Recommended Open Source C++ Books
What it is: C# (pronounced “See Sharp”) is a multi-purpose computer programming language suitable for a wide variety of development needs. C# is one of the more popular programming languages, but is not as widely used as say C, Java, C++ or PHP. Read profile page.
Learn C#: Recommended Open Source C# Books
What it is: A high-level, general-purpose, structured, powerful, open source programming language that is used for a wide variety of programming tasks. It is frequently used as a scripting language for web applications, embedded in software products, as well as artificial intelligence and system administration tasks. It is both simple and powerful, perfectly suited for beginners and professional programmers alike. Read profile page.
Learn Python: Recommended Open Source Python Books
What it is: HyperText Markup Language (HTML) is used to create web pages and other information that is intended for display in a web browser. Each markup code is known as an element or a tag. The web developer uses these elements to describe and define the content of a webpage. The elements tell the web browser how to display the information (both text and images) to the user. Read profile page.
Learn HTML: Recommended Open Source HTML Books
What it is: A general purpose, scripting, structured, flexible, fully object-oriented programming language developed by Yukihiro “Matz” Matsumoto. Ruby’s popularity was enhanced by the Ruby on Rails framework, a full-stack web framework which has been used to create many popular applications including Basecamp, GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, Square, and Highrise. Read profile page.
Learn Ruby: Recommended Open Source Ruby Books
What it is: Java is a general-purpose programming language and computing platform first released by Sun Microsystems in 1995. It’s now developed by Oracle. Java applications runs on all platforms supporting Java without recompiling. Read profile page.
Learn Java: Recommended Open Source Java Books
What it is: An object‑oriented programming language for performing computations and manipulating computational objects within a host environment. The language was originally designed as a scripting language, but is now often used as a general purpose programming language. Read profile page.
Learn ECMAScript: Recommended Open Source ECMAScript Books
What it is: An extremely popular, interpreted scripting language that is ideally suited for web development in part because it has an approachable syntax and supports different operating systems. This language powers millions of web sites on the net and is extremely well supported by its user community. PHP has been at the helm of the web for many years. Read profile page.
Learn PHP: Recommended Open Source PHP Books
What it is: The R language (and open-source software) is the de facto standard among statisticians for the development of statistical software, and is widely used for statistical software development and data analysis. R is a modern implementation of S, one of several statistical programming languages designed at Bell Laboratories. Read profile page.
Learn R: Recommended Open Source R Books
Learn CoffeeScript: Recommended Open Source CoffeeScript Books
What it is: A visual programming language developed by the Lifelong Kindergarten Group at the MIT Media Lab. Scratch teaches programming concepts to kids, offering a stepping stone to more complicated programming languages. Coding includes dragging and dropping various code blocks and linking them together like jigsaw pieces to form logical scripts. While the MIT Media Lab designed this language for 8-16 year-old children, it is used by people of all ages. Read profile page.
Learn Scratch: Recommended Open Source Scratch Books
What it is: Clojure is a dialect of the Lisp programming language. It’s a well-rounded language. It offers broad library support and runs on multiple operating systems. Read profile page.
Learn Clojure: Recommended Open Source Clojure Books
What it is: Rust is a systems programming language that runs fast, prevents segmentation faults, and guarantees thread safety. It accomplishes these goals by being memory safe without using garbage collection. The language enables developers to write programs with the performance and control of a low-level language, but with the powerful abstractions of a high-level language. Read profile page.
Learn Rust: Coming soon
What it is: An assembly language is a low-level programming language for a computer, or other programmable device. Assembly language is used by almost all modern desktop and laptop computers. It is as close to writing machine code without writing in pure hexadecimal. It is converted into executable machine code by a utility program referred to as an assembler. Read profile page.
Learn Assembly: Recommended Open Source Assembly Books
What it is: Go is a compiled, statically typed programming language that makes it easy to build simple, reliable, and efficient software. It’s a general purpose programming language with modern features, clean syntax and a robust well-documented common library, making it a good candidate to learn as your first programming language. While it borrows ideas from other languages such as Algol and C, it has a very different character. It’s sometimes described as a simple language. Read profile page.
Learn Go: Recommended Open Source Go Books
What it is: Pascal is an imperative and procedural programming language designed in the late 1960s by Niklaus Wirth to teach structured programming using subprograms called procedures and functions. The language is a direct descendant from ALGOL 60, and takes programming components from ALGOL 68 and ALGOL-W. Pascal was named in honour after the French mathematician, physicist, and philosopher Blaise Pascal who helped to pioneer computer development. Read profile page.
Learn Pascal: Recommended Open Source Pascal Books
What it is: Haskell is a standardized, general-purpose, polymorphically statically typed, lazy, purely functional language, very different from many programming languages. Recent innovations include static polymorphic typing, higher-order functions, user-definable algebraic data types, a module system, and more. It has built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, with approximately 5,400 third-party open source libraries and tools. Read profile page.
Learn Haskell: Recommended Open Source Haskell Books
What it is: Scala is a modern, object-functional, multi-paradigm, Java-based programming and scripting language that is released under the BSD license. It blends the functional and object-oriented programming models. Scala introduces several innovative language constructs. It improves on Java’s support for object-oriented programming by traits, which are stackable and cannot have constructor parameters. It also offers closures, a feature that dynamic languages like Python and Ruby have adopted. Read profile page.
Learn Scala: Recommended Open Source Scala Books
What it is: The OCaml system is the main implementation of the Caml language. It has a very strong type-checking system, offers a powerful module system, automatic memory management, first-class functions, and adds a full-fledged object-oriented layer. OCaml includes a native-code compiler supporting numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development. OCaml’s integrated object system allows object-oriented programming without sacrificing the benefits of functional programming, parametric polymorphism, and type inference. The language is mature, producing efficient code and comes with a large set of general purpose as well as domain-specific libraries. Read profile page.
Learn OCaml: Recommended Open Source OCaml Books
What it is: VimL is a powerful scripting language of the Vim editor. You can use this dynamic, imperative language to design new tools, automate tasks, and redefine existing features of Vim. At an entry level, writing VimL consists of editing the vimrc file. Users can mould Vim to their personal preferences. But the language offers so much more; writing complete plugins that transform the editor. Learning VimL also helps improve your efficiency in every day editing. Read profile page.
Learn VimL: Recommended Open Source VimL Books
What it is: A high-level, general-purpose, interpreted, scripting, dynamic programming language. It is often used to write (CGI) scripts, manipulate text, general web programming, networking, system administration, prototyping, database access, and graphical programming. Read profile page.
Learn Perl: Recommended Open Source Perl Books
What it is: Erlang is a general-purpose, concurrent, declarative, functional programming language and runtime environment developed by Ericsson, a Swedish multinational provider of communications technology and services. Erlang is dynamically typed and has a pattern matching syntax. The language solves difficult problems inherent in parallel, concurrent environments. It uses sets of parallel supervised processes, not a single sequential process as found in most programming languages. Read profile page.
Learn Erlang: Recommended Open Source Erlang Books
What it is: Forth is an imperative stack-based programming language, and a member of the class of extensible interactive languages. It was created by Charles Moore in 1970 to control telescopes in observatories using small computers. Because of its roots, Forth stresses efficiency, compactness, flexible and efficient hardware/software interaction. Read profile page.
Learn Forth: Recommended Open Source Forth Books
What it is: Lua is a lightweight, compact, and fast programming language designed as an embeddable scripting language. This cross-platform interpreted language has a simple syntax with powerful data description constructs. Lua aims for simplicity, small size, performance and portability. It has automatic memory management and incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. Read profile page.
Learn Lua: Recommended Open Source Lua Books
What it is: Ada is a structured, statically typed, imperative, wide-spectrum, multi-paradigm, object-oriented high-level, ALGOL-like programming language, extended from Pascal and other languages. The language was developed in the late 1970s and early 1980s. Ada is named after Augusta Ada Byron (often now known as Ada Lovelace), daughter of the poet Lord Byron. Read profile page.
Learn Ada: Coming soon
What it is: Lisp (derives from “LISt Processing”) is one of the oldest programming languages. It was invented in 1958, with the language being conceived by John McCarthy and is based on his paper “Recursive Functions of Symbolic Expressions and Their Computation by Machine”. Over the years, Lisp has evolved into a family of programming languages. The most commonly used general-purpose dialects are Common Lisp and Scheme. Other dialects include Franz Lisp, Interlisp, Portable Standard Lisp, XLISP and Zetalisp. Read profile page.
Learn Lisp: Coming soon
What it is: Prolog is a general purpose, declarative, logic programming language associated with artificial intelligence and computational linguistics. It is widely used in research and education for natural language processing. Read profile page.
Learn Prolog: Coming soon
There are a dearth of open source programming books for the languages below. We recommend the best no charge programming books.
What it is: Swift is a powerful and intuitive programming language for macOS, iOS, watchOS and tvOS. Writing Swift code is interactive and fun, the syntax is concise yet expressive. Read profile page.
Learn Swift: Recommended No-Charge Swift Books
What it is: The Logo Programming Language, a dialect of Lisp, was designed as a tool for learning. It features interactivity, modularity, extensibility, with flexibility of data types. Read profile page.
Learn Logo: Coming soon
We will extend this series for all popular languages. And we started this series of open source books with: New to Programming? Check out these Outstanding Open Source Programming Books