Created at Bell Labs in the 1970s, Awk is a Turing-complete programming language designed for processing text-based data files. An updated version of the original AWK language is a standard feature of nearly every modern UNIX-like operating system available today.

  • The Awk Community Portal: This is a website devoted to all things Awk, including tutorials, articles, reference documents, a news group with discussions, and more. 
  • The GNU Awk User’s Guide: This is a comprehensive guide to using GNU Awk, or Gawk, to manage small text files. Gawk makes it easily to sort data, manage small databases, validate data, generate reports, produce indexes and perform simple network communications.
  • Dr. Patrick Hartigan’s Awk Tutorial page: This tutorial page provides many useful and common Awk scripts.


Bash is a software UNIX shell written for the GNU operating system. This software is free to use and can be run on most UNIX-like operating systems as well as Mac OS X and Darwin systems.


This is on of the most popular programming languages and is used for the UNIX operating system. It was created in 1972 for implementing system software but it is also widely used for developing portable application software.

First created as enhancements to the C language, C++ is a middle-level language that is widely used in the software industry. It has greatly influenced other programming languages, such as Java, and continues to dominate in systems software, video games, device drivers, and more.

  • Visual C++ Tutorial & Basic Concepts: An educational guide to learning C++ that teaches how to write programs, compile programs, and then run them.
  • Is one of the best online resources for C++ that includes tutorials for the new learner all the way through the most advanced professional programmers.
  • Another website with thorough tutorials that are provided free. These tutorials go from beginner to advance concepts.

Common Lisp

Also referred to as CL, this Lisp programming language is used for web browsers, free and open source software, and proprietary products. Common List has more data types that most other languages. Common Lisp sequence types include lists, vectors, bit-vectors, and strings.



This is an object-oriented programming language that enables programmers to develop extensible, reusable, reliable software. Eiffel tries to eliminate the need for bookkeeping instructions by using declarative statements instead of procedural code. 

  • Eiffel For Beginners: This is a great place for beginners to get an impression of what it is like to develop software in Eiffel.
  • Eiffel Solutions: This official Eiffel page lists many documents and tutorials for the Eiffel programming language.
  • An Eiffel Tutorial: This general tutorial on Eiffel starts with an introduction and moves into dynamic structure, genericity and arrays, agents, and more.

Emacs Lisp
This is a dialect of the Lisp programming language and is commonly used to customize and extend GNU Emacs and XEmacs text editors. It can also function as a scripting language and can treat functions as data.

This is a concurrent programming language and runtime system that follows the Actor model. Created in 1986 with the intention of improving the development of telephony applications, Erlang is designed to simplify concurrent programming by using language-level features and message passing instead of shared variables.


This is a stack-based, procedural computer programming language that features both interactive and execution of commands. Forth is suitable as a shell for systems that lack a formal operating system. It is not as popular as other programming systems but is still used in boot loaders, space applications, and other embedded systems.

  • Starting Forth: This is the classic Forth tutorial in an online book form, written by Leo Brodie.
  • Lambda the Ultimate: This is a minimal Forth compiler tutorial.
  • A Beginner’s Guide to Forth: With over 15 chapters in this tutorial, it provides all the information a beginner would need to know.
  • Forthlinks: This website contains a huge list of tutorials, including advanced level tutorials, documents, organizations, links to other Forth sites, and more.

Haskell 60
Haskell is a purely functional programming language that has non-strict semantics and strong static typing. This general-purpose functional language features list comprehensions, pattern matching, type classes, type polymorphism, and lazy evaluation.

  • Humuours Haskell Tutorial: This is a tutorial with illustrations that will bring laughter and easy to read instructions to a beginner.
  • The Hitchhiker’s Guide To Haskell: From the official Haskell website, this is an introductory guide to Haskell programming.
  • Yet Another Haskell Tutorial: This is a PDF tutorial that can be printed out. The goal of this tutorial is to provide a complete introduction to the Haskell programming language.


The Icon language, with a syntax similar to C and Pascal, is derived from the ALGOL-class of structured programming languages. It is a very high-level language that features goal directed execution and has many facilities for managing strings and textual patterns.

  • The New Mexico Tech Icon Programming Language Page: This website provides a couple different Icon tutorials for people that are new to the language, to a few tricks and techniques for more advanced programmers.
  • Icon: This is a page that lists several Icon tutorials, overviews of Icon, and other Icon references.
  • The Icon Programming Language: This website from an Arizona school provides many links to information, tutorials, questions, newsgroups, and more.


Java is often referred to as one of the most influential programming languages of the 20th century. Released in 1995, this language devises much of its syntax from C and C++, but has fewer low-level facilities and a simpler object model. It is intended for developers to write once and run anywhere. Java is widely used from web applications to application software.

  • The Java Tutorials: This official Java Tutorials page provides accurate and up-to-date Java information.
  • IBM: Free Java tutorials for beginners to advanced developers.
  • Printing Swing Components in Java 1.2: With this version of Java having the ability to print, this tutorial will help those learn how.
  • Java Optimization: This tutorial will help you optimize Java programs so they run faster, are smaller, and easily maintained.


JavaScript is designed to look like Java, but be easier for novice or non-professional programmers to work with. JavaScript is primarily used as part of a web browser in order to provide enhanced user interfaces and dynamic websites. Some consider JavaScript as a functional programming language because it has closures and supports higher-order functions.

  • Brown University’s JavaScript Tutorial: This is a tutorial from Brown University that will provide beginners with basic JavaScript experience.
  • Accessing JavaScript from Java: Access JavaScript from Java applets using Netscape's "LiveConnect" JavaScript extensions. They only work in Netscape 3 and 4 and the Windows 95/NT versions of Internet Explorer 4.
  • JavaScript Kit: This site lists many tutorials for beginners and advanced programmers. 
  • Learning Advanced JavaScript: This website tutorial is geared towards learning more complicated and advanced JavaScript language.


Lisp, started in 1958, is the second-oldest high-level programming language still in use today. It has changed over the years and produced several general-purpose dialects, such as Common Lisp and Scheme. All Lisp program code is written as s-expressions, or parenthesized lists, making it easily recognizable.


Lua was designed as a simple scripting language with the primary goal of having extensible semantics. It is a lightweight, reflective, imperative and functional programming language, which is primarily used in the video game industry.

  • LUA: really for Beginners: This tutorial introduces the Lua programming language.
  • Lua Tutorial: This is a tutorial aimed at beginners of script languages.
  • Lua Gems: A PDF document that provides readers with all aspects of Lua programming, from the elementary to the advanced. This is a very informative and large manuscript.

Released in 1995, Mercury was designed as a functional logic programming language geared towards real-world applications. It is related to the Prolog and Haskell programming languages and is currently available for most UNIX platforms.

  • Mercury Tutorial: This tutorial takes new Mercury programmers to information on how to work with lists, sums and functions, determinism and backtracking, and more.
  • The Mercury Project: This is a website devoted to the Mercury programming language and is updated regularly.
  • Ralph Becket’s Mercury Tutorial: This is a book that introduces the basics of Mercury programming to experienced programmers.

OCaml extends the core Caml language with robust modular and object-oriented construct, making it applicable for large-scale software engineering. OCaml's toolset includes a byte code compiler, an optimizing native code compiler, and an interactive top-level interpreter.

  • Objective CAML Tutorial: This page presents many tutorials on the OCaml programming language, and it is provided in several different foreign languages.
  • Ocaml Programming - A Practical User's Guide: This website explains the important concepts of Ocaml program construction and provides examples of syntax.
  •  Objective Caml system: This document introduces Ocaml with detailed information about the language and all its tools and libraries.

PHP stands for Hypertext Preprocessor. It is a widely used, general-purpose scripting language that was designed to produce dynamic web pages in 1995. PHP code is embedded into the HTML source document. A web server with a PHP processor module can interpret the code to generate a web page document.

  • PHP Planet: Has many small tutorials for PHP.
  • PHPRO: This is a compilation of numerous PHP tutorials, from how to introductory tutorials to how to create menus and applications.
  • PHP Manual: This is a complete, up-to-date manual for PHP that is primarily a function reference, but also includes a language reference, explanations of major features, and other supplemental information.

Perl was developed in 1987 as a general-purpose UNIX scripting language to make report processing easier. It is a high-level, general-purpose, interpreted, dynamic programming language that provides powerful text processing facilities without the data length limits of many contemporary UNIX tools.

Pike has a syntax similar to C and is a general-purpose, high-level, cross-platform, dynamic interpreted programming language. Pike requires explicit type definitions, but has a flexible type system. Pike is free software, released under the GPL, LGPL and MPL licenses.

  • Pike Beginner’s Tutorial: This tutorial comes directly from the Pike website and provides a well-rounded start to programming in this language.
  • Pike Manual: This online book was written for people with a little programming experience to be able to use Pike.
  • 7.0 Pike Tutorial: This tutorial introduces and explains the Pike programming language.

This is a general-purpose, high-level programming language designed to emphasizes code readability and is often used as a scripting language. Similar to Scheme, Ruby, Perl, and Tcl languages, Python has a fully dynamic type system and automatic memory management. Python is also free software.

  • Beginner’s Guide To Python: This reference is provides separate tutorials for programmers and non-programmers.
  • The Python Standard Library: This library reference manual describes the standard library that is distributed with Python, as well as some of the optional components that are commonly included in Python distributions.
  • Dive Into Python: Is a geared towards more advanced Python programmers.

Also known as Standard ML, SML is a general-purpose, modular, functional programming language with compile-time type checking and type inference. SML programs consist of expressions to be evaluated, whereas other program languages are evaluated for statements or commands. 

Scheme, one of the two main dialects of Lisp, follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension. It was one of the first programming languages to support first-class continuations. Scheme's very simple syntax consists of sequences of nested lists.

  • Scheme Tutorial: This tutorial is targeted for anyone with basic programming knowledge.
  • Teach Yourself Scheme in Fixnum Days: This presentation of Scheme is a cross between a formal presentation and a tutorial presentation. It does include some advanced features of the language.
  • How To Design Programs: This is a very in-depth eBook about programming with Scheme. It was written by MIT professors and used by MIT students.


Tcl is a scripting language, created in 1988, and is commonly used for rapid prototyping, scripted applications, GUIs and testing. Tcl has a loyal following in the Network Testing and SQA communities.