Best Open Source Programming Books

Open Source Programming Books

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.