Everyone wants to hire the perfect Drupal developer - but you need a way to identify future potential Drupal front-end developers. What previous experiences and transferable skills are going to help someone make the switch to Drupal and excel on a busy team for a typical Drupal site owner.
What are the transferable skills and characteristics someone could look for in a potential Drupal developer? To put it another way, if you have a group of 10 people how would you narrow down your choices?
There are many roles recognized in the Drupal community, yet for the purposes of this discussion, we are grouping them into two roles:Back-end developer, and Front-end developer.
Front end developer
- Understands key server-side web development concepts through experiences such as:
- Creating visually appealing web pages or interfaces.
- Creating, editing or modifying templates for a CMS or web development framework.
- Testing cross-browser, cross-platform, and/or cross-device compatibility for inconsistencies.
- Testing for compliance to specified standards such as accessibility standards in the clients region or domain.
- Conducting observational user testing, or reviewing designs against usability heuristics.
Domain specific knowledge or transferable skills
- Familiarity of HTML syntax for multiple specifications, including HTML 5.
- Knowledge of the semantic meaning of all HTML elements.
- Familiarity with the semantic markup for display of lists, tabular data, forms, articles, etc.
- Knowledge of markup used for layout such as dividers.
- Knowledge at the level to be able to hand-code markup.
- Including media and images.
- Familiarity with modifying Drupal Theme hooks to display data
- Understanding how to utilize PHP to filter, process and output html, json, xml
- Specifying different CSS for various media, devices and displays.
- Best practices in CSS file organization and structure.
- Methods for including CSS inline, internal and external via linked style sheets.
- How to define, combine and group CSS selectors for HTML elements, ID, classes, pseudo classes, child or sibling.
- Syntax of CSS declarations, properties and attributes.
- CSS box model and methods for CSS positioning, absolute and relative.
- Knowledge of properties and attributes to control the display.
- Familiarity with differences in CSS 2 and CSS 3.
- Proficient with a CSS Preprocessor such as Sass or LESS.
- Best practices
- Methods to ensure browser & device compatibility
- Methods for degrading gracefully for older browsers and displays.
- Methods to ensure accessibility.
- File compression techniques for improving speed.
- Knowledge of the operators, variables, datatypes, objects, properties and methods.
- Familiarity with control structures such as objects, functions, conditional statements, arrays, loops and expressions.
- Forms and regular expression validation and submitting data.
- Knowledge of how to apply logical operators and conditional statements.
- Knowledge of the DOM HTML objects and their properties.
- Event handling.
- Creating and controlling windows and dialogs.
- Processes for troubleshooting and debugging
- Familiarity with development and debugging tools for cross-browser issues.
- Knowledge of how to employ the jQuery library for visual effects, event handling, and document manipulation.