Code Year

Code Year takes you on a tour of important web technologies. Learn programming basics with Javascript, then add HTML and CSS to build interactive websites.

Getting Started with Programming

Getting Started with Programming

Time to become a coding champ.


Learn how to write loops to make boring tasks quick and fun, then use them to build a game.

Functions in JavaScript

Functions in JavaScript

A guide through the basics of creating and using functions in JavaScript.

Functions in JavaScript

A guide through the basics of creating and using functions in JavaScript.

Review of Functions in JavaScript

A quick overview of functions, how to define them, and how variable scope affects when and where variables can be accessed within functions.

Conditionals in JavaScript

Conditionals in JavaScript

Conditional logic is a fundamental building block of learning to code. Learn to write code that takes different actions based on different conditions.

Dice Game

Practice your coding and conditional skills by making a virtual dice game.

Starting a Startup

Like all businesses, our startup has to worry about costs. So let's calculate some costs! This course is a level 1 application of what you learned in: Functions in Javascript.

Build Blackjack

Review Primitives in JavaScript

We're going to get into the nitty gritty of JavaScript.

Blackjack: Deal 'em Up

Put all your coding skills together to start building your very own interactive blackjack game!

Objects in JavaScript

Introduction to Objects I

An introduction to object oriented thinking in JavaScript. Objects are the building blocks of object oriented programming (OOP) so we begin here!

Building an Address Book

This project makes use of objects in the context of an address book.

Olympic Tryouts

Help a coach organize their Olympic trials with data validation and recursive functions.

Objects in JavaScript, Part II

Introduction to Objects II

A closer look at objects in JavaScript and an introduction to object-oriented programming concepts.

Building a Cash Register

The cash register has failed and the boss is not happy, help save the day and create your own cash register.

Loops in JavaScript

Loops in JavaScript

This course looks at for loops and while loops, as well as more on recursion. It finishes up with some neat extra tricks to make using loops even more useful!

Getting Dicey

This course introduces a deeper understanding of basic probability, and we take our dice game one step further!

Building Blackjack

Blackjack: Hit Me!

Continue to build your very own Blackjack game by applying your object skills!

FizzBuzz++: Return of the Modulus

This course is an expansion of FizzBuzz focusing on functions and objects.

Review of OOP

Review of Object-Oriented Programming

OOP is a programming technique that lets you write faster, safer code that can be reused and is used widely in JavaScript. We've covered the basics of object-oriented programming (OOP) before, but it is so important we wanted to review it and reinforce the concepts.

Cash Register Part II

We'll use recursion two times (!!) to make a cash register that tells you which coins to give your customers to make exact change.

Array and Loops in JavaScript

More Fun with Arrays

Javascript arrays are endlessly flexible. Find out all the interesting things you can do with them.

Rock, Paper, Scissors: Part I

Recreate the classic game Rock, Paper, Scissors in JavaScript using nested conditionals, a user submitted string and a randomly selected string.

Recursion in JavaScript

Recursion in JavaScript

Recursion is when you make a call to a function within the definition of that function. It is an essential and powerful programming tool, and also one of the more difficult concepts to understand.

Recursive Functions

Let's look at a number of fun ways to make use of recursive functions!

Build Blackjack Final

Blackjack: Final Game

Put it all together to finish a fully-working blackjack game!

Build a Webpage

HTML Fundamentals

This course will introduce you to HTML and its amazing use in our everyday internet life.

Build Your First Webpage

This project gets you building a webpage!

More HTML and basic styling

More with HTML

Lists, comments, viewing source code, styling your text.

Make a Recipe Card

This is the project for Week 14 of Code Year. Apply what you learned about formatting to create a recipe card.

Style webpages with CSS

CSS: Coding with Style

You've learned how to make a web page, now it's time to make it shine! With CSS you can control the look and feel of all the elements in HTML.

First Website Using HTML and CSS

Over the course of this project we will put your new skills into action to make your very first website using both HTML and CSS - let's see what we can create!

Advanced CSS Selectors

Advanced CSS Selectors

You have seen a glimpse of the magic of CSS selectors, and now it's time to grasp the full power and make the internet purdy once more.

Put It All Together: Build a Resume

Let's put you to the test: bring together everything you've learned about HTML and CSS to walk through building a resume for an alien named Zarz Borkelsnort.

Introduction to CSS Positioning

Intro to CSS Positioning

This lesson will cover the box model, borders, margins, and padding. It also introduces CSS positioning, covering floats, clears, static, and relative positioning.

Create a Personal Webpage

Apply what you've learned about CSS positioning to create a personal webpage with a neat layout.

Advanced CSS Positioning

Advanced CSS Positioning

An introduction to absolute and fixed positioning. It follows an introduction to static and relative positioning.

Pizza Time!

Use your knowledge of advanced CSS positioning to build a pizza company website!

JavaScript on the Web

HTML + Javascript + CSS

We'll add Javascript and CSS to HTML to see how to make an interactive webpage.

A Simple Counter

In this course we will combine HTML, CSS, and Javascript to create a simple counter widget. Note that this course is no longer supported. For an updated version of this track, please visit codecademy.com/learn.

Build a Webpage from Scratch!

Build a Webpage from Scratch!

Let's build a website together. Come with me and I'll guide you on an awe-inspiring tour of the website creation world.

JavaScript and jQuery

Javascript review for jQuery

This course is going to give an overview and review of the javascript topics that are needed to start building things using jQuery.

jQuery Bar Graph

Review the jQuery material you just learned with a bar graph example.

Getting started with jQuery

Basic jQuery

Provides an introduction to jQuery selectors, selection manipulation, and object manipulation.

jQuery Checkers

A little project to build a function checkers board using jQuery

jQuery DOM Mastery

Basic jQuery - Part Two

Covers more fundamental knowledge of jQuery that you need to know.

jQuery Checkers - Part 2

This section uses the same checkers concept from jQuery Checkers to practice element creation, insertion, removal, and the use of data().

jQuery Events

jQuery Events

Learn many of the use cases and features of events in jQuery. After completing the course you will be able to take full advantage of event-oriented programming.

Hangman Game

Make a Hangman Game using jQuery events!

jQuery Effects and Plugins

jQuery Effects and Plugins

Learn about jQuery Effects and Plugins and how they can add features to the jQuery lirbary.

Flight Scheduler

How to use the jQuery UI as a jQuery plugin!

jQuery Sliding Panel Challenge

Sliding with jQuery

Create a sliding panel with jQuery.

jQuery Tabbed Pages

Tabbed Menu

Let's make a tabbed menu.

Collapsible Message Panels

Collapsible Message Panels

This course will teach you how to create collapsible message panels entirely in javascript so you can use them on your own site.



Apply your jQuery learning to build your own project!

Python Syntax

Python Syntax

This tutorial will introduce you to Python, a general-purpose, object-oriented interpreted language you can use for countless standalone projects or scripting applications.

Build a calculator!

Tip Calculator

Now that you've completed the lesson on Python syntax, let's see if you can put your newfound skills to use. In this project, you'll create a simple calculator that determines the price of a meal after tax and tip.

String & Console Output

Strings & Console Output

This course will introduce you to strings and console output in Python, including creating string literals, calling a variety of string methods, and using the "print" keyword.

Date and Time

Date and Time

This project is a follow up to Unit 2: Strings and Console input and will give you practice with the concepts introduced in that course.

Conditionals and Control Flow

Conditionals & Control Flow

In this course, we'll learn how to create programs that generate different outcomes based on user input!

Python Translator - PygLatin


In this project we'll put together all of the Python skills we've learned so far including string manipulation and branching. We'll be building a Pyg Latin translator. (That's Pig Latin for Python Programmers!)



A function is a reusable section of code written to perform a specific task in a program. We gave you a taste of functions in Unit 3; here, you'll learn how to create your own.

Taking a Vacation

Taking a Vacation

Hard day at work? Rough day at school? Take a load off with a programming vacation!

Lists and Dictionaries

Python Lists and Dictionaries

Lists and dictionaries are powerful tools you can use to store, organize, and manipulate all kinds of information.

A Day in the Supermarket

A Day at the Supermarket

Let's manage our own supermarket and buy some goods along the way!

Student Becomes the Teacher

Student Becomes the Teacher

Use what you've learned so far to manage your own class.

Lists and Functions

Lists and Functions

Now that you've learned about lists, let's turbo-charge them with functions.



In this project we will make a simplified version of the classic board game Battleship! We'll use functions, lists, and conditionals to make our game.



Loops allow you to quickly iterate over information in Python. In this lesson, we'll cover two types of loop: 'while' and 'for'.

Practice Makes Perfect

Practice Makes Perfect

You know a lot of Python now. Let's do some practice problems!

Exam Statistics

Exam Statistics

Your students just took their first test. It's time to see how everyone did. Let's write a program to compute the mean, variance, and standard deviation of the test scores.

Advanced Topics in Python

Advanced Topics in Python

In this lesson, we'll cover some of the more complex aspects of Python, including iterating over data structures, list comprehensions, list slicing, and lambda expressions.

Introduction to Bitwise Operators

Introduction to Bitwise Operators

Bitwise operations directly manipulate bits—patterns of 0s and 1s. Though they can be tricky to learn at first, their speed makes them a useful addition to any programmer's toolbox.

Introduction to Classes

Introduction to Classes

Classes are a crucial part of object-oriented programming (OOP). In this course, we'll explain what classes are, why they're important, and how to use them effectively.

More on Classes


Make your own Car and learn how to driveCar()!

File Input/Output

File Input/Output

Now that you understand Python syntax and have been introduced to some Python best practices, let's apply what you've learned to a real-world application: writing data to a file.

Made in NYC © 2018 Codecademy