Best Open Source Programming Books

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.

1. C


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

2. C++


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

3. C#


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

4. Python


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

6. Ruby


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

7. Java


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

8. JavaScript


What it is: Together with HTML and CSS, JavaScript is one of the three core technologies of web content production. Although JavaScript and Java code can appear similar, the two are very different languages. Read profile page.

Learn JavaScript: Recommended Open Source JavaScript Books

9. ECMAScript


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

10. PHP


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

11. R


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

12. CoffeeScript

CoffeeScript Books

What it is: A little language that compiles into JavaScript. Read profile page.

Learn CoffeeScript: Recommended Open Source CoffeeScript Books

13. Scratch


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

14. Clojure


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

15. Rust

Free Rust 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: Recommended Open Source Rust Books

16. Assembly

Assembly Language

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

17. Go

Go Programming Language

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

18. Pascal

Pascal Programming Language

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

19. Haskell


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

20. Scala


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

21. OCaml


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

22. VimL


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

23. Perl


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

24. Erlang


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

25. Forth


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

26. Lua


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

27. Ada


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: Recommended Open Source Ada Books

28. Lisp


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: Recommended Open Source Lisp Books

29. SQL


What it is: Structured Query Language (SQL) is a specialized programming language originally developed by IBM in the early 1970s. The language is designed specifically for accessing and manipulating data held in a relational database management system (RDBMS). Read profile page.

Learn SQL: Recommended Open Source SQL Books

30. Bash


What it is: Bash (acronym for the ‘Bourne-Again-SHell’) is the GNU Project’s shell and programming language. It’s an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh). Bash has become a de facto standard for shell scripting. It runs on almost all versions of Unix and a few other operating systems including Windows platforms. Read profile page.

Learn Bash: Recommended Open Source Bash Books

31. Fortran


What it is: Fortran (Formula translation) is a multi-paradigm programming language invented by John Backus of IBM in the 1950s. It is particularly notable for innovation; it was the first high-level language, using the first compiler. Read profile page.

Learn Fortran: Recommended Open Source Fortran Books

32. Awk


What it is: Awk is a versatile programming language designed for pattern scanning and processing language and often used as a data extraction and reporting tool. It’s a standard feature of most Unix-like operating systems. Read profile page.

Learn Awk: Recommended Open Source Awk Books

33. LaTeX

LaTeX Books

What it is: LaTeX is a high-quality document preparation system and document markup language written by Leslie Lamport. It’s a very mature system with development starting more than 30 years ago. Read profile page.

Learn LaTeX: Recommended Open Source LaTeX Books

34. TeX


What it is: TeX is a system for computer typesetting. It’s a powerful low-level markup and programming language that creates professional quality typeset text. Read profile page.

Learn TeX: Recommended Open Source TeX Books

35. Prolog


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: Recommended Open Source Prolog Books

There are a dearth of open source programming books for the languages below. We recommend the best no charge programming books.

A. Swift


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

B. Scheme


What it is: Scheme is a general-purpose, functional, programming language descended from Lisp and Algol. It is a statically scoped and properly tail-recursive dialect of Lisp. Read profile page.

Learn Scheme: Recommended No-Charge Swift Books

C. Logo

Free Logo 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: Recommended No-Charge Logo Books

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