How to be Master Drupal Developer
— Essential Skills and Knowledge
Benjamin Franklin knew how to run a printing press. Because of that, he was a powerful force for positive change. There is a lot I would like to share with the world, but the new “printing press” is the Internet and I have not yet mastered it.
I could not figure out why I was having so much trouble creating Drupal sites. Then I did a search to find out what skills I need to master Drupal, one of the better “printing presses” for the Internet. I don’t yet have the resources to hire people with these skills, so I have to learn them all myself (as rapidly as possible).
Below are the skills required to be a MASTER Drupal Developer – compiled from various sources on the Net…
This may serve as a resource for group meetings.
It could also serve as a training base for independent study, since it will take a long time to cover all these skills in meetings and all of these skills are not Drupal specific skills – which is the focus of the group, although most people will either want to master these skills or find others they can rely on for these skills, since they are all required for the “printing press.”
I would like to create a spreadsheet, table, or database that others could contribute to (don’t yet know how or where to put it).
There are six columns to the spreadsheet:
Knowledge - the field of knowledge that is useful for building Internet sites
Description - why this knowledge is needed
Software Tools - things like Firebug, Chive, Code Editors, Drush, Limechat etc. to apply the knowledge
Learning Sources - Ideally Free, but best resources of any kind could be listed, with links
Best Practices -
Comments -
Below is my list culled from Internet searches (as complete as I can make it, perhaps others could add to it)
Knowledge Items (in bold) then a Description. Following my list is a list by Heather James of Acquia
Linux Knowledge Drupal and most other Content Management Systems are often installed on Linux hosts. If your site goes down, and emergency service isn’t available from your hosting provider, you may need to login via ssh and fix it. This requires command line knowledge of Linux. Perhaps using VI or VIM.
MySQL / Database Knowledge - MySQL, PostgreSQL, MariaDB, SQLite, Nginx are some of the flavors. Drupal modules can compensate somewhat for a lack of phpMyAdmin knowledge, but there is no substitute for understanding database technology. All Drupal data is stored in databases. Manipulating that data is often needed in certain circumstances. Rolling back to a recent stable database is often a fix. Command line with Linux or phpMyAdmin are ways to fix it. MySQL and database knowledge and experience is a core requirement for Drupal programmers.
PHP Knowledge Drupal is built with PHP, but PHP versions vary. PHP configurations need to match requirements. PHP libraries may need to be added. Drupal Modules and Themes are written in PHP. PHP knowledge may be as valuable as knowledge of Drupal itself. Knowledge of PHPMyAdmin or Chive to administer MySQL databases (http://www.chive-project.com/Features).
CSS, and HTML All browsers are based on CSS and HTML. All content is rendered in HTML and CSS. Some say that when Drupal content isn't rendered properly, knowledge of CSS and HTML is vital. An example: When a mailing module is scheduled to send thousands of newsletters and graphics don’t display properly, CSS and HTML knowledge is a must. Knowledge of Firebug and compatibility issues in IE and Safari are also needed.
Security Knowledge Knowledge of permissions and correct php.ini file structure can prevents security breaches. Installing up to date Drupal patches, may not be sufficient. The host needs to be secure and you should know how to check that it is. Hosting providers may not protect against the security issues related to Drupal. They may threaten cut off service, if the problem isn't fixed quickly. For this reason and others, fundamental security knowledge is a must.
Knowledge of Apache is useful as is knowing how to configure and restart the httpd. If a broken connection arises from Apache to the local MySQL server breaks knowledge is needed. Knowledge of database configuration and Apache processes is needed.
Software Design Methods and best practices. Agile software development as applied to web design. Development, Staging, Production and version control with CVS, Subversion, or Git that is connected to an IDE such as Eclipse. Formal code structure. Website design methods and processes.
jQuery and AJAX allow sites to do cutting-edge things. While knowledge of them is not critical, exposure and awareness is useful.
Business Analysis - mapping key business processes as translated into web requirements, forms, user interfaces, roles, landing pages, and many other important website deliverables. When Business Analysis is done correctly, a website saves money and time. You can see the example in successful on-line businesses like ebay. Many different internal and external users of varying roles interact to make e commerce happen seamlessly. An understanding of business analysis is critical for success on larger projects.
Project Management is essential on large projects with many stakeholders. Development priorities, tangible development tasks, stories, and projects, can come together nicely if well planned and managed.
Drupal Knowledge Obviously. Example - http://drupal-interview-questions.blogspot.com. Knowledge of designs, themes, modules, problems. Knowledge and development of modules, or themes and how to go live.
Graphic, Video, and Audio Design How to work with graphic designers and media creators. How to optimize performance. How to ensure graphics, videos, and audios are efficient for rapid page loads and are compatible with mobile devices and mobile data plans (load within 3 seconds). How to convert psd files to themes. Knowledge of Adobe Photoshop and Illustrator for graphics and knowledge of video and audio editors such as Final Cut Pro and Logic Pro or other graphics-video-audio applications if you don’t have a graphic artist/videographer/recordist on staff. How to optimize graphics, video, and audio for the web.
Photography, Stock Photos - Knowledge of stock photography, video, and audio resources. Knowledge of photography, videography, audio voice recording, and music production to produce content for web sites that require it — if you don’t have production artists on staff. How to find such specialists if you don’t have or want to develop these skills and have a budget.
Search Engine Optimization Content is king. Verify how great content produces a high ROI through Google Analytics or Awstats? How to use the SEO checklist module.
See also, http://drupal.org/node/51169 (working with service providers)
————
From Heather James at Acquia —
Front End Developer
Previous experience
Domain specific knowledge or transferable skills
Experience with web development languages of HTML, CSS and JavaScript/jQuery.
HTML
PHP
CSS
Best practices
JavaScript
Event Handling
jQuery
Back End Developer
This developer is focused on managing the interchange of data between the application and the browser. This developer focuses on the server-side of programming for the web, yet also understands the programming languages which control the display of content in the browser.
Existing Knowledge
Understands key server-side web development concepts such as:
Domain specific knowledge or transferable skills
Knowledge of a programming language for a framework such as PHP, Python, Perl, .NET, Ruby, Java, or other language.
Knowledge of PHP and database programming including:
Understands web development markup languages HTML/XML; stylesheet languages CSS/XSL and JavaScript. Additionally, knowledge of the DOM, its objects and their properties.
HTML
XML
CSS
JavaScript
Event handling