Advance your journey

With GitHub Learning Lab, grow your skills by completing fun, realistic projects. Get advice and helpful feedback from our friendly Learning Lab bot.

Find your first course

Use of Learning Lab is subject to
the GitHub Terms of Service.

Our most popular courses

avatar The GitHub Training Team

If you are looking for a quick and fun introduction to GitHub, you've found it. This class will get you started using GitHub in less than an hour.

Git
GitHub Pages
Branches
Commits
Pull Requests

avatar The GitHub Training Team

Create a GitHub Action and use it in a workflow.

GitHub Actions
Workflows
Hello World

avatar The GitHub Training Team

This course will walk you through everything you need to start organizing ideas and collaborating using Markdown, a lightweight language for text formatting.

GitHub
Markdown

Learning should be fun

There are no simulations or boring tutorials here, just hands-on lessons created with by the GitHub community and taught by the friendly Learning Lab bot.

Real projects

Learn new skills while working in your own copy of a real project.

Helpful bot

Our friendly bot provides instructions and feedback throughout your journey.

Real workflow

Everything happens in GitHub Issues and Pull Requests.

Our Learning Paths

avatar The GitHub Training Team

Welcome to GitHub! We're so glad you're here. We know it can look overwhelming at first, so we've put together a few of our favorite courses for people logging in for the first time

  1. What is GitHub?
  2. Introduction to GitHub
  3. Git Handbook

avatar The GitHub Training Team

After you've mastered the basics, learn some of the fun things you can do on GitHub. From GitHub Pages to building projects with your friends, this path will give you plenty of new ideas.

  1. Discover GitHub Pages
  2. GitHub Pages
  3. Reviewing pull requests

avatar The GitHub Training Team

Learn how to do DevOps on GitHub with the power of GitHub Actions! This path will guide you through leveraging GitHub Actions to go from code to cloud.

  1. GitHub Actions: Hello World
  2. GitHub Actions: Continuous Integration
  3. GitHub Actions: Publish to GitHub Packages

Learn GitHub with GitHub

avatar The GitHub Training Team

Learn how to create a site or blog from your GitHub repositories with GitHub Pages.

GitHub
GitHub Pages

avatar The GitHub Training Team

There are millions of projects on GitHub, all competing for attention from the millions of open source contributors available to help. Learn how to help your project stand out.

GitHub
Open Source

avatar The GitHub Training Team

You’re an upload away from using a full suite of development tools and premier third-party apps on GitHub. This course helps you seamlessly upload your code to GitHub and introduces you to exciting next steps to elevate your project.

Git
GitHub

avatar The GitHub Training Team

You're a migration away from using a full suite of development tools and premier third-party apps on GitHub. This course helps you seamlessly move code to GitHub and sets you up to do more after you make the move.

Git
GitHub

avatar The GitHub Training Team

See how collaboration works on GitHub and start building great things, together.

GitHub

avatar The GitHub Training Team

Merge conflicts are a normal part of working in Git. Learn why they happen and how to resolve them with ease.

Git
Merge conflicts
GitHub

avatar The GitHub Training Team

Learn security best practices and keep your project’s contributions—and contributors—safe.

Security
Dependency management
Rebasing
Auditing
Dependabot

avatar The GitHub Training Team

Learn security best practices and keep your project’s contributions—and contributors—safe.

Git
GitHub

avatar The GitHub Training Team

Your Learning Lab course will help developers around the world discover new technologies, learn new skills and build better software. You have knowledge to share and this course will help you take your first steps, today.

Courses
Teaching
YAML
Learning Lab
Learning

avatar The GitHub Training Team

This course will teach you skills for finding relevant conversations, commits, and projects in a repository.

Languages and Tools

avatar The GitHub Training Team

If you are looking for a quick and fun introduction to the exciting world of programming, this course is for you. Learn fundamental HTML skills and build your first webpage in less than an hour.

GitHub Pages

avatar everydeveloper

Node.js gives you the ability to run JavaScript files on the server-side. Express is a library for Node.js, that allows you to make requests to different "endpoints" and get a response back.

Node
Express
JavaScript
JSON
API

avatar everydeveloper

Go from Hello World to writing a short random quote generator using Python.

Python

avatar everydeveloper

Learn how to create a dice-rolling app with Python!

Python

avatar everydeveloper

This tutorial expands on concepts in the intro to Node.js and Express.js course. You will learn how to use a database (MongoDB) to Create, Read, Update, and Delete data.

node.js
express.js
mongoose.js
JavaScript
MongoDB

avatar everydeveloper

Learn the basics of Ruby. Make a hello world program, then include if/else statements

Ruby

avatar everydeveloper

Get started with Machine Learning (ML)/Neural Network (NN) tools

TensorFlow
Python
Machine learning
Neural network

avatar everydeveloper

Predict Pokemon stats with the help of the TensorFlow library

TensorFlow
Python
Machine learning
Neural network

avatar everydeveloper

Java is an object oriented programming language, which is popular for multi-platform apps.

Java

avatar everydeveloper

PHP is a server-side programming language that can insert dynamic code into your HTML. PHP is used in popular content management systems, such as WordPress and Drupal.

PHP

avatar The GitHub Training Team

Design Thinking is a human-centric approach to creating solutions. This course will teach you the principles of Design Thinking and walk you through applying its five phases to your projects.

avatar Stockholm Research Center

Hello and welcome! In this lab we will cover the basic setup needed to build Reason React applications, covering testing, documenting them, building, and releasing them!

reason
bucklescript
reason-react
react

avatar M3kH

Learn the basics to create an Express server and follow the REST principles.

NodeJS
JavaScript
Express
Server

avatar tomtom-international-labs

In this course you will learn how to create an Android application that displays a TomTom Map

android
tomtom-sdk
maps

avatar gitmusical

LilyPond is an open source technology for notating music in plain text files. In this course, we'll cover the fundamentals of music notation in LilyPond.

avatar The GitHub Training Team

In this course, you will learn the basics of React.js through building a gradebook web application to manage assignments, students, and grades.

avatar vtex-trainings

Learning how to build a store using the Store Framework blocks language, powered by VTEX IO.

GitHub Actions

avatar The GitHub Training Team

Create a GitHub Action and use it in a workflow.

GitHub Actions
Workflows
Hello World

avatar The GitHub Training Team

Learn how to create workflows that enable you to use Continuous Integration (CI) for your projects.

GitHub Actions
Workflows
CI
Continuous Integration
Integration

avatar The GitHub Training Team

This course will walk you through using GitHub Actions to get your code in a deployable state once your CI workflows have completed.

GitHub Actions
GitHub Packages
Deployment
Workflows
Docker

avatar The GitHub Training Team

Create two deployment workflows using AWS.

GitHub Actions
Workflows
CD
Amazon Web Services (AWS)
Deployment

avatar The GitHub Training Team

Create two deployment workflows using GitHub Actions and Microsoft Azure.

GitHub Actions
Microsoft Azure
Workflows
CD
Deployment

avatar The GitHub Training Team

Learn how to write your own GitHub JavaScript Action! This course will empower you to begin automating customized tasks unique to your workflow.

JavaScript
API
Actions toolkit
GitHub Secrets
Workflows

avatar The GitHub Training Team

Learn how to write your own GitHub Docker container action! This course will empower you to begin automating customized tasks unique to your workflow.

Docker
Containers
Workflows
Application programming interface (API)
Publishing GitHub Actions

avatar The GitHub Training Team

This course covers how to use GitHub Script to quickly use octokit/rest in a GitHub Actions workflow.

GitHub Actions
Octokit
Workflow
Automation
Application programming interface (API)

DevOps with GitHub

avatar The GitHub Training Team

Learn how to automatically test changes made to your project, freeing you up to write more amazing code.

Continuous Integration

avatar The GitHub Training Team

Learn about the principles of continuous integration with GitHub and Travis CI.

continuous integration (CI)
test-driven development (TDD)
YAML
protected branches
commit status

avatar The GitHub Training Team

Add your own GitHub feature, automate workflows, and more with GitHub Apps.

webhooks
API
GitHub Apps
Probot
Installing

avatar The GitHub Training Team

Learn to use CodeQL, a query language that helps find bugs in source code. Find 9 remote code execution vulnerabilities in the open-source project Das U-Boot, and join the growing community of security researchers using CodeQL.

Enterprise on GitHub

avatar The GitHub Training Team

Organizations of all sizes and in all industries are chatting about InnerSource concepts. This course walks you through some of the key concepts of InnerSource and helps you build up an internal toolkit for adopting InnerSource practices.

avatar The GitHub Training Team

Learn how to work alongside the open source communities that build software you're already using, and put your business at the forefront of the world's most innovative and secure code.

Open source
Enterprise
Licensing
Templates
Guidelines

avatar The GitHub Training Team

Learn and practice a release-based workflow and explore branching strategies.

Protected branches
Kanban
Semantic versioning
Projects
GitHub Apps

Looking for something else?

Getting started

Register for a course

Choose a course and register. GitHub Learning Lab will create a new repository on your account.

Start learning

Start the course by following the instructions in the first issue or pull request comment by Learning Lab bot.

Ready to start learning?

Find your first course