Skip to content

Commit

Permalink
refs #219: create page about Drupal training.
Browse files Browse the repository at this point in the history
  • Loading branch information
noemi-mancini committed Feb 19, 2024
1 parent 0e8a461 commit 3045a56
Showing 1 changed file with 125 additions and 0 deletions.
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.

0 comments on commit 3045a56

Please sign in to comment.