Free Coding Classes and Tutorials

Resources on this page

Check Out OpenCourseWare

Take free computer science courses from top ranked universities like Harvard, Stanford or MIT.

Discover Computer Science Tutorials

Access some of the most extensive online programming resources.

Prepare yourself for college programming and computer science courses by learning code at home, as many sites make information on coding languages available for free. By learning the basics, you can make your transition to college coursework easier and make sure that computer science is the right course of study for you. OpenCourseWare and online coding tutorials can help you to get the most out of your basic courses in order to secure competitive internships and give yourself a head start when you enter college.

Discover What You’ll Learn in Online Coding Classes

Coding, also know as programming, involves creating the specific computer codes that tell a device what tasks to perform. There are many languages with which to create programs, and each language is conducive to specific applications and computing tasks. The following is a list of essential languages to know:

  • C – Learning C is valuable because it provides a foundation for understanding the evolution of code. Although C is not used as much as it once was, it is one of the oldest modern programming languages, created in the late 1960s and early 1970s. Another reason to learn C is that it interacts with other modern computer languages, such as C++, Java, C#, Python, and Haskell.
  • C++ – C++ is a widely used programming language that builds on C, adding classes and other features to the original content of C. You will need to learn C++ as it is widely used to make art applications, video games, and music players.
  • Java – As of 2012, Java was one of the most popular coding languages. By learning Java, you will be prepared to work with client-server web applications, which are important to master, as they are widely used on both the Internet and intranets of organizations.
  • JavaScript – JavaScript is critical to learn if you are interested in working with web browsers and server-side web applications. You would also learn JavaScript to work with PDF documents and desktop widgets.
  • LISP – LISP is actually a family of computer languages that are important to learn if you are interested in artificial intelligence. Some LISP dialects are used for computer-assisted design (CAD), as well as music and education programs.
  • Fortran – Fortran is the oldest high-level programming language still in use today and is used for fields that require many computations, such as weather prediction and computational physics.
  • SQL – SQL is a specialized programming language that you can use to manage data in database systems. It uses several web development and information technology applications.
  • Perl – By learning Perl, you will be better prepared to work in graphics and network programming. Perl is a scripting language that borrows some features from other programming languages like C.
  • Python – Python is a coding language that you can use in a vast array of applications, from 3D graphics to web development, e-mail processing, and gaming.

Markup languages are used primarily for web content. Instead of telling a computer how to do something, these languages deal specifically with the context and structure in which text and other content elements are displayed.

  • XML – XML, or Extensible Markup Language, is a markup language designed to encode documents that can be read by both machines and humans with minimal difficulty.
  • HTML – HTML, or Hypertext Markup Language, is the most commonly used markup language in the world. It is used to create webpages and other content for use with web browsers. As of 2013, HTML5 is the current standard.
  • XHTML – XHTML, or Extensible Hypertext Markup Language, is a markup language derived from XML that extends the functionality of Hypertext Markup Language. It is critical to learn XHTML, as some of the tag requirements are different from those of HTML.

Check Out These Coding OpenCourseWare Available Online

The OpenCourseWare listed below is arranged according to the amount of experience you need to take the course. It begins with introductory courses for the novice, and ends with advanced courses for experienced coders.

CS50 OpenCourseware

Presented by: Harvard College

This online resource presents several years of the Computer Science 50 course at Harvard, which focuses on C programming but also uses PHP, JavaScript, SQL, and HTML. This undergraduate introductory course is accessible to those outside of the computer science field, so those in fields like biology or finance should be able to follow along without any prior programming training. The most recent course materials available are from the fall semester of 2011.

Introduction to Computer Science and Programming

Presented by: Massachusetts Institute of Technology

This course, originally taught at MIT in the spring term of 2011 by Professor John Guttag, is an introduction to computer science with a focus on the Python programming language. Students will need to install Python 2.5.4 to use the lessons offered on this site. This is an undergraduate course with no prerequisites that focuses primarily on the fundamentals of programming.. This is a good introductory course for students with no experience in the engineering or technology fields.

Introduction to Computer Science: Programming Methodology

Presented by: Stanford Engineering Everywhere

This Stanford University programming course focuses primarily on the Java programming language, though it also touches on general good software engineering practices. Taught by Mehran Sahami, this 2007 computer science course is an introductory lecture series that requires no prior coding or computer experience. The course does, however, require you to download a software package from the Stanford Engineering Everywhere site, including the Stanford Eclipse program.

Introduction to Computer Science: Programming Abstractions

Presented by: Stanford Engineering Everywhere

Originally taught by Julie Zelenski in 2008, this course is a successor to the university’s Programming Methodology course. As a result, you should either review the materials available for that course or have some programming experience prior to reviewing the material presented in this course. This course covers some more intermediate-level undergraduate programming concepts, such as recursion and sorting, focusing on C++ instead of Java.

Computer Science 61A

Presented by: University of California, Berkeley

This course is an introduction to general computer science practices, but uses Python as an example language. Taught by Amir Ashraf Kamil in the spring of 2013, this course is hosted entirely on YouTube, presented as a series of lectures and PowerPoint slides. No additional programs or courses are required to understand the material presented, though you will need to have Flash installed for your browser to view the YouTube videos. You should also download Python if you intend to perform some of the presented exercises.

C Programming

Presented by: University of Strathclyde

This course on C and UNIX scripting dates back to the 1990s, and is one of the older free programming courses available online. Originally created by Steve Holmes during his time at the University of Strathclyde, this course covers the basics of C, beginning by showing students how to make simple programs like a weight conversion table. Though this course is no longer updated, it is still a good primer on the basics of C programming, which is still in use today.

Introduction to C++

Presented by: Massachusetts Institute of Technology

Originally taught in January of 2011 by MIT instructors Jesse Dunietz, Geza Kovacs, and John Marrero, this undergraduate-level course is an introduction to the basic concepts of C++, such as pointers and constants. Although taking this course for free does not allow you to consult with the faculty on course topics and a PDF reader is required to access the problem sets, this course is still a good way to start your programming education.

Learning a New Programming Language: Java for C++ Programmers

Presented by: University of Wisconsin, Madison

This undergraduate programming course, administrated by Beck Hasti, is for students who are already familiar with C++ and would like to learn another programming language to expand their skills. You will need a JDK installation to write the Java programs used in the programming assignments section of the site. The site will also teach you how to use a code debugger to determine why a given program is not working correctly.

Structure and Interpretation of Computer Programs

Presented by: Massachusetts Institute of Technology

This computer science course was originally taught by Professors Eric Grimson, Peter Szolovits, and Trevor Darrell in the spring semester of 2005. It focuses on good practices for all languages, but uses LISP for its tutorial content. This course has no prerequisites, though you will need to find a downloadable version of the Scheme system for LISP to complete the tutorials and projects offered for the course.

Fortran 90 Tutorial

Presented by: Michigan Technological University

This course focuses on the programming language Fortran, used in fields that have demanding computational needs like weather prediction. Designed for students who have some programming experience but little familiarity with Fortran, the course assumes some familiarity with the general conventions of computer programming. This course was originally taught by Dr. C. K. Shene, and has been updated continuously since 1997. A PDF viewer is required to access some course materials.

Explore these Computer Science Tutorials

Assess your skills before digging into these free tutorials. Beginners should start at the top of the list, while experienced coders can skip to the advanced courses below.


Presented by: CodeAvengers

Designed for middle school and high school students, as well as other beginners with no code experience, this site teaches HTML, CSS, and JavaScript. Lessons are divided into levels, allowing students who already know a little about the basics of coding to move on to more advanced topics without any great difficulty. All code is executed in the browser, so no additional software or equipment is required.

Peer 2 Peer University

Presented by: Mozilla

A series of code tutorials for several programming and markup languages, including Python, HTML and JavaScript, this set of programming courses is offered by Mozilla, the organization that created Mozilla Firefox. There are no prerequisites for these courses, most of which are at the introductory or intermediate levels. For some courses, you may need a text editor of some kind, though most computers come with multiple options for this, and other choices are available for free online.


Presented by: Codecademy

These introductory and intermediate courses, most recently updated in 2013, cover programming languages including Python, PHP and Ruby, as well as markup languages like HTML and CSS. Created by a team of designers, software engineers, and educators, this site has few courses with any particular software requirements or restrictions. Codecademy programming courses are delivered in an interactive format that makes results clear right away.

Presented by:

This set of online courses and tutorials is designed to teach students how to use basic and advanced functions in C, and includes a code and output window in the browser. You do not need to download any additional programs to use the tutorials on Learn-C, as all code can be executed in the input and output windows. Each component of C is taught in its own lesson, allowing you to work at your own pace. Programming Tutorials

Presented by:

Created and compiled by Alex Allain, Alex Hoffer, and Michael Kern over the last several years, focuses on C, C++, and Java, though it has some information on other languages as well. This resource requires no previous familiarity with any programming language, though you will need a code compiler of some kind to put the tutorials to good use. This site also contains special tutorials on game programming and graphics programming for those who are interested in those fields.


Presented by:

This site focuses on the Python programming language, starting from the most basic functions of the language and moving on to more advanced skills. All Python code created for the exercises on the site is executed in the browser window rather than in another program, so students do not need to install any other programs to make use of the tutorials available on The site also links out to other tutorials on Python, including some paid content.


Presented by: Geeky Ventures

Crunchzilla is a coding tutorial site most recently updated in 2012, which presents similar introductory JavaScript coding tutorials in two different formats. The first, CodeMaven, is designed for adults and teenagers, while the second, CodeMonster, focuses its content more on elementary and middle school students. All input and output is done inside the browser window, so you do not need to download any other programs to start learning how to code through Crunchzilla.

Beginning Perl

Presented by: The Perl Programming Language

This resource originally started as a book by Simon Cozens, and covers Perl programming in a comprehensive manner. It has no prerequisite texts or knowledge, as it is designed for students who want to start learning to program with Perl as their first language, However, it is easier for students who already have some familiarity with general programming practices. The text is frequently updated and uses current Perl conventions rather than those created when the language was originally designed.


Presented by: Programr

Programr is one of the most extensive free introductory code tutorials online, offering tutorials in Java, C++, PHP, and Python, as well as system-specific programming for platforms like Android and iOS. The site offers many examples for each programming language and allows users to submit additional examples online. The tutorials start at the introductory level and eventually move on to more advanced topics.


Presented by: phpacademy

Presented as a series of videos rather than interactive coding tutorials, this site focuses on PHP scripting. It is not a tutorial exclusively for that scripting language, however, offering some tutorials on HTML, JavaScript, Java, and CSS. You will need a browser that supports Flash, as most of the video tutorials offered on the site are provided through the Flash-based YouTube player.


Presented by: W3schools

A general coding tutorial resource, this site has beginning and intermediate tutorials on HTML, CSS, XML, JavaScript, and several server-side scripting languages. The courses start at the most basic levels of each field and eventually move on to advanced topics like geolocation in HTML and libraries in JavaScript. As with many coding tutorial sites, all code is executed in the browser window, so no other downloads are required.


Presented by: Quackit

An online tutorial in several different coding and computer science topics, including database management, this site is designed for those who are still novices in these fields. Created by Ian Dickson, this tutorial site has existed since 2000, though it has been updated with new advances in coding. You will need some sort of text editor on your computer to create the files used for these tutorials.


Presented by: University of Kent

Created by a team at the University of Kent School of Computing, Greenfoot is a program that teaches you how to use object-oriented programming skills in Java through an interactive visual interface. To use this resource, you will have to download the Greenfoot program, which requires you to download the Java 6 or Java 7 JDK. Greenfoot is designed for use in educational settings and requires no previous experience or courses.

The Java Tutorials

Presented by: Oracle

Continuously updated since 1995 and most recently updated in 2013, this series of Java tutorials is provided by Oracle, the creators of the Java language. Starting from the most basic building blocks and components of the program and working up to advanced, current techniques in Java programming, this is a good resource for anyone who wants to work with Java in any field. You will need to download JDK 7 from the Oracle site to effectively use these resources.

SQL Tutorial Version 2.1

Presented by: FirstSQL

This series of SQL tutorials, written between 2002 and 2005, focuses on entry- and intermediate-level SQL functions that are available in most SQL products, rather than using a particular proprietary SQL format. As the information is mostly intermediate-level, the tutorial content assumes some familiarity with general programming conventions and skills. You will also need to find an SQL product of some sort to use the skills illustrated through the tutorial, though FirstSQL makes a free trial product available through the parent site.

Learn from the Google Developers University Consortium

Google launched this hub for developers in 2012. While it mainly offers instruction on Google web applications and products like Android and GoogleMaps, developers can also use it as a forum to discuss ideas and share stories.

Google Developers University Consortium

Presented by: Google

This consortium provides open-licensed study materials for current and aspiring web developers and computer science professionals. The course catalog offers dozens of classes in mobile application development, web development, and programming languages made free to the public. The consortium also offers collaborative project management tools like GoogleDocs and GoogleSites as well as development tools to aid in tracking issues, version control, and project hosting.