If you're not entirely sure what Drupal is, start with our Introduction to Drupal guide. After gaining a basic understanding of what it is and how it works, get started with site building using our Build Drupal Sites guide. This will give you a foundation on how Drupal works and what you can do without touching code. When you're ready to dive into the code, for either theming your site or customizing the features, you can move on to other guides, depending on the areas you need to learn.
If you are familiar with Drupal 7, there are minor changes in the administrative user interface (UI) and general site building. For code though, both in theming and development, there are significant changes. To get an overview of the main differences between 7 and 8, take a look at the What's New in Drupal 8 series. This will let you see where you have the most immediate gaps and will need to dive in.
Find specific topics
If you have the fundamentals sorted out, but you need a refresher, or are taking on a new task, you can go straight to the information you need by browsing through our Guides and Topics. They are more specific topics grouped by major category, like Theming or Module Development, and let you zero in on exactly what you need right now. Of course, you can also always search our site to pull up a wide range of materials based on your keyword.
There is a lot of ground to cover in Drupal 8, so in addition to our tutorial resources listed above, here are some tips and tricks from our trainers for learning Drupal 8.
A lot of people are building sites with Drupal 8. You can read Drupal 8 case studies to see what modules and tools others are using for their projects, which can give you some great ideas and tips.
Documentation and Resources
The Drupal project's documentation is created and maintained by the same volunteer community that creates the Drupal software. The documentation includes information to help orient newcomers, guides for using Drupal, creating themes, writing modules, and using contributed modules. Here are some of our favorite resources.
Getting help from the community
This chapter of the Drupal 8 User Guide describes how to connect with the Drupal community, where to get support, and learning more.
Our Build Drupal Sites guide for site builders contains a host of resources for folks wanting to learn how to use Drupal's powerful user interface to build sites. The administrative user interface (UI) is very similar to Drupal 7. It is very much the same, with a few new features, including having Views in core. This means that you can use most of the Drupal 7 documentation and tutorials, and transfer that knowledge to Drupal 8 fairly easily. For example, we wrote about the changes for Views between versions.
The Drupal 8 User Guide will be your ultimate destination to practice building your first Drupal 8 site. You'll learn how to install Drupal, plan your site, design a content structure, build content types, views, place blocks, administering, and maintaining your Drupal site.
Start with the Essential lessons to get up to speed with theming in Drupal 8.
Drupal 8 is using Twig as its templating language, and the Twig community is a great resource for questions about using Twig, as well as learning about the Twig project. Drupal's Twig implementation the same as regular Twig with some additions. Drupal adds some custom filters and functions as well as automatically handling content rendering using Drupal's Render API. Anything you can do in regular Twig you can also do in Drupal's implementation of Twig.
Learn about key concepts and systems in Drupal module development under Essential lessons, then dive deeper with Advanced concepts.
One of the best resources that you should get familiar with from the start when working with Drupal code is the official API documentation site.
Another excellent resource for any developer is the Examples for Developers project on Drupal.org. This is a project that you can download, which contains multiple, well-documented example modules that implement Drupal's core APIs.
Drupal 8 uses object-oriented programming (OOP) and YAML. If you are not familiar with OOP in PHP or YAML, you should probably review that before diving into the code.
YAML, which stands for YAML Ain't Markup Language, is a human-readable data serialization format that's been widely adopted in a variety of use cases in Drupal 8, including info files and menu routing.
New tools and workflows
In Drupal 8, Composer has emerged as a standard tool for managing Drupal core and contributed module code for projects. Drupal core uses Composer itself to manage non-Drupal dependencies. Some contributed modules (and more all the time) also use Composer to integrate 3rd-party PHP libraries into Drupal. It's worth understanding more about this tool and how it is used in Drupal projects, as you are likely to encounter it at some point.
Alongside Drush, there is a new command-line tool called Drupal Console, that can perform many administrative tasks as well as scaffold code, and provide insight under-the-hood. Recommended for module developers and themers.