Insights - Acquia Certified Developer - Drupal 8

I completed "Acquia Certified Developer - Drupal 8" certification. Certification focuses mainly on 4 sections covering various aspects of Drupal 8 Development. Certification had 60 question to be answered in 90 Minutes and 65% as a passing mark.

1. Reference Material

1.1. Actual D8 Development experience

Actual practical knowledge of Drupal 8 development for Module, Plugin and Themes is the most recommended way of preparation and should be considered as most effective reference material too. 

1.2. Drupal.org Reference Material

There is lot of reference material available over the drupal.org

1.3. Books

There are many more books available by now for Drupal 8.

2. Preparation

In terms of the preparation there is no way to escape the actual site building experience on your own. Revisit each and every concept by actually performing it on the site.

No Section Questions
1 Fundamental Web Development Concepts 10%
2 Site building 30%
3 Front end Development (theming) 25%
4 Back end Development (coding) 35%

2.1. Fundamental Web Development Concepts

2.1.1 Demonstrate knowledge of HTML and CSS

This section covers the very basic topics related to HTML and CSS. Styling of HTML pages through CSS needs to prepared well.

  • Explore the div based html coding.
  • Explore the css styling and  various ways to apply it to HTML pages.
  • Understand the css preferences for html element's classes and ids.

2.1.2 Identify Javascript and jQuery programing concepts

This section covers basics of JS and JQuery along with its syntax. 

  • Understand basic syntax of JS and JQuery.
  • Explore various filtering and validation options in JQuery for html elements.

2.1.3 Demonstrate the use of Git for version control

This section covers the GIT commands for daily tasks of code management.

  • Understand basics of GIT commands.
  • Explore at least one GIT workflow covering adding files to version control to actual PUSH and deployment over the production.
  • Explore the scenarios wherein multiple developers working on the same branch and managing code collaboration effeciently.
  • Explore the best practices for raising the PRs, Branching and patches.

2.2. Site Building

2.2.1 Demonstrate ability to create and configure Content Types with appropriate fields and field settings for building basic data structures

This section covers Data Architecture part extensively. It includes creation of content types and CCK fields and various configuratoins.

  • Understand the creation of new content types and newly available CCK fields introduced in Drupal 8.
  • Understand field, types, formats and various widgets.
  • Explore the scenarios whereing different types of CCK fields can be utilized.

2.2.2 Demonstrate ability to configure Display Modes for building custom form and view modes for core entities

This section covers the various display options for the data coming through any entity.

  • Understand the display option from Display modes and Form View perspectives.
  • Understand how exactly Display Modes are implemented in Drupal 8 - its quite different from Drupal 7.
  • Explore the scenarios whereing different display modes of the same content (node) can be used for presentation purposes.

2.2.3 Demonstrate ability to create and use Taxonomy vocabularies and terms for classification and organization of content

This section covers the scenarios for Taxonomy creation and its appropriate usage.

  • Understand taxonomies, terms and any new CCK fields attached it to. 
  • Explore the scenarios wherein data classification and its organised presentation can be applied.
  • Explore the scenarios wherein more data (apart from terms) from taxonomy can be pulled for the nodes. 

2.2.4 Demonstrate ability to configure Block types, manage Blocks library and configure Block layouts

This section covers the functionality related to Blocks.

  • Understand Block's dashboard, creation of new block types, block libraries and layout configuration.
  • Understand how block types can be used and presented in the presentation layer.
  • Explore the scenarios wherein Block Types can be used (instead of content types). 

2.2.5 Demonstrate ability to build main and alternative navigation systems by using Menus

This section covers the default navigation and new navigation system that can be added.

  • Understand the menus, its hierarchy and relative menu items (parent - child relationships) display.
  • Explore the scenarios wherein same menu can be displayed in multiple regions over same page and presenting the same based on the permissions (based on the user roles).
  • Explore various configurations related to multi-lingual feature, visibility and tranlations based on the active language.

2.2.6 Demonstrate ability to create and configure Views for building content list pages, blocks and feeds

This is quite extended topic and covers the views concepts for data representation and various format manipulations.

  • Understand VIEWS in Drupal 8 - its quite extensive.
  • Understand various display types, modes and data presentation option available in Views.
  • Understand the various filtering, style and data relationship option available in views.
  • Explroe the the scenarios wherein views can be used for data presentation utilizing multiple display modes, contexual filters, explosed filters and reusability.

2.2.7 Demonstrate ability to use Configuration Management capabilities for exporting site configurations

This section covers the core configuration management system newly introduced in Drupal 8.

    • Understand the configuration management to manage the configuration deployment among various environments.
    • Understand what all things can be exported through configurations, how configuration sync works and the limitation of it.

    2.2.8 Demonstrate ability to build multilingual websites using core multilingual capabilities

    Drupal 8 has taken multi-lingual support to next level with including almost all important modules as a part of core only. 

    • Understand the existing Multi-lingual capabilities of Drupal 8.
    • Understand translate interfaces available for Nodes, Menus, Blocks and administration navigational links.
    • Explore the ways to explore the content based on the languages. 
    • Understand how exactly multiple languages can be managed and display of multi-lingual content effectively.

    2.2.9 Demonstrate ability to build RESTful web application using core Web Services capabilities

    • Explore the scenarios wherein RESTFul APIs can be used to expose the data which can further be consumed by other applications such as mobile apps.
    • Understand how data can be exposed through views and its various options including display modes.

    2.3. Front end development (theming)

    2.3.1 Given a scenario, demonstrate ability to create a custom theme or sub theme

    Theming part in Drupal 8 has changed extensively and twig needs to be given much attention.

    • Understand various changes that TWIG has brought.
    • Understand creating a new child themes and the specifications it required to be full-filled in .info file.

    2.3.2 Demonstrate knowledge of theming concepts

    Theming concepts again needs detailed understanding.

    • Understand various existing Drupal concepts and the new ones those are introduced in Drupal 8.
    • Explore the mandatory steps for creating any theme in Drupal.

    2.3.3 Demonstrate ability to use Twig syntax

    This section is quite extensive and TWIG documentation can help here.

    • Understand how variable are declared and manipulated in Twig templates.
    • Understand how control structures are used in Twig.
    • Understand how Twig filtering is used.

    2.3.4 Demonstrate ability to build or override Twig templates for defining layout content

    This section covers building and utilizing existing templates.

    • Explore the available core templates and its default location.
    • Understand how to build new templates as well as overriding existing ones.
    • Understand how custom blocks are build in twig template files.

    2.3.5 Demonstrate ability to write template pre-process functions for overriding custom output

    • Explore the hooks to implement pre-processor functions.
    • Explore the scenarios wherein data on the site can altered through pre-processor functions.

    2.4. Back end development (coding)

    2.4.1 Demonstrate ability to write code using core and Object Oriented PHP

    This section covers the basic programming using OOPS.

    • Explore the OOPS concepts in PHP.
    • Understand the usage of Class, Abstract Class and Interfaces.
    • Understand the OOPS visibility specifiers.

    2.4.2 Demonstrate ability to develop Custom Modules using Drupal API for extending Drupal functionality

    Module development in Drupal 8 is changes extensively as compared to 7x due to the adoption of OOPS.

    • Refer very good tutorial from Acquia.
    • Understand the basics of custom module development.
    • Understand how API hooks can used and what are the most commonly used hooks.

    2.4.3 Demonstrate ability to store and retrieve data using code

    Storing and retrieving the data in custom code is much more stream lined.

    • Understand the data layer of Drupal 8.
    • Understand the API hooks responsible for storing and retrieving the data.

    2.4.4 Demonstrate ability to work with other essential APIs

    Drupal 8 has taken the flexibility of core API to next level. 

    • Refer API documentation.
    • Understand how to implement API hooks.
    • Explore the scenarios wherein multiple API hooks can be used.

    2.4.5 Demonstrate ability to write code using Drupal Coding Standards

    This section covers the best practices related to coding standards, naming conventions and source organization.

    2.4.6 Demonstrate ability to analyze and resolve site performance issues arising from site configuration or custom code

    This section covers general best practices for performance aspect of your Drupal site surrounding caching for anonymous and authenticated users, css and js minification, block and views level caching.

    • Explore the options for caching the pages for anonymous users.
    • Explore the options for caching the pages for authenticated users.

    2.4.7 Demonstrate ability to analyze and resolve security issues arising from site configuration or custom code

    This section covers general best practices for security aspect of your Drupal site surrounding account settings, permissions and content visibility.

    • Explore security risks for account settings configurations.
    • Explore the security risks for wrongly configuring the permissions.

    3. Question Scenarios

    There were at least 2-3 questions (approximately 1% of total number of questions) with bad English and broken Grammer,  reason enough to change the actual context of the question. Again I am sure Acquia is quite serious about not repeating such things.  

    4. Please note

    • Please refer this blog post as just the guidelines and not the guide.
    • Any preparation note should not be considered as an actual question but just the direction towards effective study references.