The Drupal 8 User Guide will be your ultimate destination to practice building your first Drupal 8 site. (This guide also applies to Drupal 9 sites!) This is an excellent course to learn essential concepts and tasks in Drupal site building. 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.
What about Drupal 9?
Long story, short: the vast majority of Drupal 8 tutorials will work on Drupal 9 sites. Due to how innovation now works in Drupal, new features are released in minor versions. Major releases, like the release of Drupal 9, contain all the features of Drupal 8, but with deprecated APIs removed, and some 3rd-party libraries updated. Learn more about Drupal 9 and what it means for your learning journey in our Guide to Drupal 9.
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, so in addition to our tutorial resources listed above, here are some tips and tricks from our trainers for learning how to use the Drupal content management system.
A lot of people are building sites with Drupal. 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.
Start with the Essential lessons to get up to speed with theming in Drupal.
The latest version of Drupal uses the Twig 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.
Starting with Drupal 8 (and including Drupal 9), under-the-hood, Drupal 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 and 9, including info files and menu routing.
New tools and workflows
Starting with Drupal 8 (and including Drupal 9), 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.