Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refs #219: create page about Drupal training. #220

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions content/working-at-sparkfabrik/drupal-frontend-training.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Drupal Learning Path

## Introduction

The following training program includes a section of Core Drupal Knowledge, with which every Drupalist should be comfortable at least on a basic level.

A skilled Drupal developer should possess a combination of frontend and backend expertise, along with a good understanding of Drupal's architecture and best practices.

## Core Skills

Even before specific knowledge of Drupal, there are some core skills that we consider essential for working on any project - refer to the playbook for them: [Core Skills at Sparkfabrik](https://playbook.sparkfabrik.com/working-at-sparkfabrik/core-skills)

All core skills are important, but in particular you need to know how to master:

- Command line usage
- GIT (basic commands)
- Terminology and basic concepts for CI/CD

## Core Drupal Knowledge:

1. **Drupal Architecture:**
- Understand the structure of Drupal and its components.
- Familiarity with the Drupal core modules and how they interact.

2. **Basic Theming:**
- Proficient in creating and customizing themes.
- Knowledge of Twig templating engine.

3. **Basic Module Development:**
- Ability to create custom modules.
- Understanding of Drupal hooks and events.

4. **Site Building:**
- Expertise in building and configuring Drupal sites.
- Content type creation and management.
- Views configuration for content display.
- Media library, image styles and Responsive images.

6. **Entity API:**
- Understanding of entities and the Entity API.
- Creation of custom entities and fields.

7. **Configuration:**
- Configuration import and export.
- Deploy lifecycle of Drupal project.
- Usage of Config Ignore and Config Split

8. **Drupal 8/9/10 Standards:**
- Adherence to Drupal coding standards.
- Familiarity with changes and improvements introduced in each Drupal version.

## Backend skills

1. **Backend Development:**
- Proficiency in PHP, especially within the Drupal context.
- Knowledge of Drupal's database abstraction layer (DBAL).
- Implementation of custom functionality using hooks and services.

2. **Module Development:**
- Knwoledge of main Drupal's APIs.
- Integration with third-party modules.

## Frontend skills

**Note:** in this playbook, you can find frontend development guidelines originally written for Drupal 8 (D8), but they remain relevant for Drupal 10 (D10): [Frontend Guidelines for Drupal 8](https://playbook.sparkfabrik.com/tools-and-policies/frontend-guidelines-drupal8)

1. **HTML/CSS/JavaScript:**
- Strong skills in HTML, CSS, and JavaScript for frontend development.
- Drupal behavior and core JS libraries.
- Knowledge of modern frontend frameworks (e.g., React, Vue.js) if required.

2. **Twig Templating:**
- Proficient in using Twig for theming.
- Ability to create and modify templates effectively.

3. **Responsive Design:**
- Understanding and implementation of responsive web design principles.
- Breakpoints usage.

4. **Theme libraries:**
- Strategies for including libraries in a theme.
- Extension and override of a library.

## Tools and Best Practices:

1. **Drush and Composer:**
- Expertise in using Drush for Drupal site administration.
- Experience with Composer for dependency management.

2. **Performance Optimization:**
- Knowledge of performance optimization techniques for Drupal sites.
- Familiarity with caching strategies.
- Kwnoledge of WebProfiler module.
- Key metrics from Google PageSpeed Insights.

3. **Security Best Practices:**
- Understanding of Drupal security best practices.
- Regular application of security updates.

4. **Testing:**
- Familiarity with testing frameworks (e.g., PHPUnit and Behat) for automated testing.
- Writing and executing tests for Drupal code.

5. **Documentation:**
- Creating and maintaining clear and comprehensive code documentation.
- Writing documentation for site configuration and architecture.

6. **Continuous Integration/Continuous Deployment (CI/CD):**
- Integration of Drupal projects into CI/CD pipelines.
- Automated testing and deployment processes.

7. **Troubleshooting:**
- Ability to identify and resolve issues quickly.
- Proficient in debugging and using Drupal's error reporting tools.

## Community Involvement:

1. **Drupal Community Participation:**
- Active involvement in the Drupal community.
- Contribution to Drupal core or contributed modules/themes.

2. **Stay Updated:**
- Continuous learning and staying updated with the latest Drupal trends and technologies.

A well-rounded Drupal developer should be comfortable working on both frontend and backend aspects, ensuring the efficient development and maintenance of Drupal projects.