Free Coding Classes and Tutorials
Resources on this page
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.
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Created and compiled by Alex Allain, Alex Hoffer, and Michael Kern over the last several years, Cprogramming.com 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.
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 LearnPython.org. The site also links out to other tutorials on Python, including some paid content.
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.
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.
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.
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.
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.
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.
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.