The following free resources allow beginners to learn basic computer programming all the way up to more advanced concepts. Many of them allow you to learn from right inside your web browser!

For adults and teens we recommend Codecademy or Khan Academy as a starting point.

For children we recommend Scratch or Alice as a starting point.


Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student’s first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games.


Code Avengers
HTML, CSS and JavaScript courses include code challenges and games that make learning fun and effective for all ages. Designed by experts with perfect level of difficulty for beginners, easy to understand instructions and great help when you need it.


Learn JavaScript, HTML/CSS, PHP, Python, Ruby, and more. After school club resources and in browser programming platform.


Beginning courses in JavaScript, Python, SQL and general computer science, as well as advanced courses in topics like Data Science, Artificial Intelligence, and Computational Neuroscience. Courses have beginning and end dates.


Crunchzilla teaches JavaScript programming with a brower-based platform.


CS Unplugged
CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.


Covers languages like Python, Ruby, C++ as well as advanced courses in Artificial Intelligence and Computer Graphics. Courses have beginning and end dates.


Google Code University
Courses on mobile and web programming.


Hackety Hack
Hackety Hack will teach you the absolute basics of programming from the ground up. No previous programming experience is needed! With Hackety Hack, you’ll learn the Ruby programming language. Ruby is used for all kinds of programs, including desktop applications and websites.


Khan Academy
Learn the fundamentals of programming on the Khan Academy Computer Science platform. Explore programs made by others. Write your own programs and share them!


Free downloadable program for teaching kids Ruby.


Offers beginner level courses for Ruby, Python, and JavaScript that allow students to code in the browser.


MIT OpenCourseWare
Free online course materials from Universities and Colleges, including many computer science and software development related courses.


Programmr is the world’s online lab for students and enthusiasts to assess, improve and showcase their programming skills. With Programmr’s revolutionary online coding platform you can now code, compile & launch your projects in any technology right in the browser.


Puzzle School
Browser-based JavaScript and HTML training using puzzles in attempt to make learning how to program (code) more interesting, engaging, and really just more like what it feels like to be a professional programmer.


RoboMind is software specifically developed to support technology education. By programming a robot, students learn about logic, computer science and robotics.


Tile-based visual programming environment and toolkit, lets kids make games, animated stories, interactive art, and share with others on the Net.


Snap is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations.


The Code Player
TheCodePlayer plays code like a video helping people to learn front end technologies like HTML5, CSS3, Javascript, Jquery easily, quickly and interactively.


Thimble makes it ridiculously simple to create and share your own web pages. Write and edit HTML and CSS right in your browser, then instantly preview your work. Host and share your finished projects with a single click. Perfect for beginners and experts alike.


Turtle Academy
Students can learn basic programming using this browser-based program. Turtle Academy makes it surprisingly easy to start creating amazing shapes using the LOGO language.


Tynker is where children learn programming and design thinking in a fun and imaginative way. Tynker offers interactive courses for children to learn programming at their own pace at home, and a grade based curriculum for schools.


HTML, CSS, JavaScript, XML, PHP, and SQL tutorials, including interactive sample code.