diff --git a/content/working-at-sparkfabrik/drupal-frontend-training.md b/content/working-at-sparkfabrik/drupal-frontend-training.md new file mode 100644 index 0000000..bde6a03 --- /dev/null +++ b/content/working-at-sparkfabrik/drupal-frontend-training.md @@ -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.