With the ever-growing Drupal community, many a time experienced freelance developers get lost in the vast pool of resources, let alone a beginner with minimal exposure. That’s why it is very important that Drupal developers should develop and hone certain skill set required to ace in the industry.
Careerlancer spoke to some of our known Drupal Developers who have also done freelancing in their job tenure. We discussed with these seasoned developers to know, in their opinion, what skills are required for a freelance Drupal developer. So, if you are an expert in Drupal and planning to go freelance, these skills that we have discussed will give you a clear idea about where you belong, what you know, what you don’t know and what you don’t know you don’t know (got that?).
However, if you think, we have missed any skill that you think is important, you can comment it below and we will definitely add to our list.
Also know that some of the skills have a broader window job description, but we hope that you will assume them by yourself as you are in the industry already.
So, let’s get started, shall we?
The Basic Technology
Okay, like any professional programmer or developer, a Drupal expert or beginner should also hand down know the very basic things, such as he would be expected to know programming languages, much similar to web development requirements.
- PHP (since Drupal is built with PHP)
Learning the Git Basics – Version Control
Git is a free open source distributed version control system which is designed to handle both large and small projects with speed and efficiency. Git is very easy to learn. Drupal developers typically use Git Version Control Software to collaborate on projects. Learning the basics of Git will help you stay organized, especially for a freelancer, who usually works alone, Git offers lots of advantages in your everyday workflow. It also improves your team working skills.
Some of the sources you can use:-
- A Vision for Version Control: Why version control is important and why it is necessary in Drupal projects
- A Guide for GIT Beginners: Everything a freelance beginner should know about Drupal developing
- Applying Patches from Drupal.org: How you can create own patches and apply a patch to a module provided by another developer.
Essential Drupal Skills
- Research, analyze and install modules based on project scope
- Constitute basic modules and core setting for running a site
- Ability to customize or tweak themes, forms, cores etc. using templates or custom modules without changing the core file
- Ability to create Forms from scratch using API
- Ability to code Themes using HTML/CSS
- Have knowledge on key Drupal APIs like Queue API, Node API, APIs of Drupal and Entity APIs
- Ability to create customised modules from the beginning using hooks (core and module)
- Understand PHP quite clearly, you should know the ‘ifs’ and ‘buts’ of the scripting framework and seamlessly work with it under any environment
- SQL is highly essential in Drupal development; the purpose of SQL in Drupal projects is just growing. So, freelancers have to be aware of SQL, setting up its architecture and relational database
- Ability to work with Object Oriented Programming System
- RESTful Web Services API (New for Drupal 8 project development)
Although there is no particular list of modules as it all depends on the web project you will be working on, these are common and the most popular modules used in Drupal project development;
- Know to create basic views and blocks
- Know to create complex views using terms and relationships
- Know to create specific views using hooks_views_default_views
- Know to create complex views using hooks_views_query_alter
Panels module at its core is a drag & drop content management system that allows developers to visually design layouts and place content within layouts. So, you have to know how the Panels module works to create personalized layouts.
- Be able to use DRUSH to set up or update a site
- Understand the CVS system or submit a patch, be involved in community and contributions
- Ability to edit existing modules, cores and functionalities, without altering any history
- Ability to analyze a setup and know when to add a template or a custom module
- Have an immense understanding of the client-server architecture, how servers and browsers work, how template engine works and the ethos of Drupal documentation
Roles and Responsibilities
Apart from these Technical Skills, freelance Drupal Developers should realize certain roles in their work to build and support Drupal Applications;
- Work as a System Admin: Run all the processes Drupal sites development, from design to development to live; deal with issues related to performances; build Content Delivery Network, Varnish etc. In short freelance Drupal dev have to handle basically everything that goes in and after development stages.
- Quality Analyst: Developers have to test the project to ensure that it runs without bugs and adheres to quality requirements and customer needs. He should also know to set up automated testing environments, such as auto schedule and auto-test runs.
- Project Manager:Although this is not a mandatory responsibility for freelancers, but when you are working with a team as a senior developer, you have to take up the role of a master or lead to run the team, remove any obstacle in project development, handle internal crisis and ensure that the project is delivered within the time and budget frame.
- Design and UX Master: You should also know how to build Design and user experience prototypes that can be later converted into the Drupal theme.
Note: Knowing forms of all types is very important for Drupal Developers. Apart from Form API, you should also learn and understand Menu System, Queue API, Entities and Field APIs, Cache API, Batch API, Localization, Database and File APIs, and Theme API and Render Arrays.
Now that was heavy, don’t you think? But help us grow the list. Drop some skills in comments from your experience and we will add those to the list (with credits).