Here you are, proud of yourself that you've finally decided: you want to become a Drupal developer! Good for you! Now that you've taken this first step, are you ready to face the challenges that any junior Drupal developer deals with? Which is the basic skill set that you need to "come on board with" in the Drupal web development community? What web technologies do companies expect you to be on top of? What tools and languages do you need to master? Let me give you some clues.
Now that you've finally taken the burden of decision-making off your shoulders, it's a whole new set of entry level challenges that you're facing! Which are the key points, on companies' never-ending checklists of requirements, that you need to check if you want to become a Drupal developer?
And then things get quite discouraging: their lists include a whole bunch of frameworks, tools, concepts, skills and languages that you should be mastering already!
Needless to add that there are new technologies emerging almost on a daily basis...
Now, the last thing you want to do at this point is to panic and to get discouraged! Feel fee to write down the first advice I'm going to give you in this post: it's a good base understanding of the core concepts that apply to various frameworks, languages and tools available out there that you need to acquire!
It's this knowledge of the fundamental concepts, this “foundation” that will smooth your learning process of all the new languages and frameworks emerging in the future. It's only then that you can level up and specialize.
Now, let's get start with my list of things that you should know as a Drupal developer?
Familiar with the term of “headless” or “decoupled” Drupal?
You've surely heard/read at least some information about it. It's Drupal community's initiative of pairing Drupal with a front-end framework.
Now, these frameworks, whether we're talking about Ember, Angular or Backbone share two common features:
- they make use of templating, most of them
In other words: some sort of familiarity with frameworks is a must (in my opinion) for a junior Drupal developer!
2. Package Managers
Knowing how package managers work will just streamline your Drupal installation process.
Therefore, whether you're installing Drush from composer or maybe Bootstrap, from node, you need to know what you're doing before running your commands, right?
Package managers are great efficiency-boosters whenever you need to install, configure or upgrade (even remove software) a component on the Drupal website that you're working on. How? Well, they distribute reusable libraries and plugins and thus helps you save priceless time.
3. Version Control- Git
It's the Drupal workflow's modularity that makes it critical to keep everything under version control. With team members handling, simultaneously, specific, individual tasks, with separate implementations, keeping everything perfectly organized is crucial.
Here is where Drupal's Git version control software comes in! It's THE guarantee of a team's efficient collaboration on a Drupal web project. And this is why it's important that you gain some experience with versioning, too, if you say you want to become a Drupal developer!
4. Web Templating
This is another one of those core web concepts that I was telling you about, those that apply to several frameworks, languages.
Knowing the basic principles of web templating will help you learn new frameworks. Whether your future web projects imply working in Twig, Jade or Angular, since all these frameworks have similar synthaxes, knowing web templating will get you “out of the mess”!
5. Basic Debugging
If you want to become a Drupal developer, one worth his salt, then you should aim at becoming an expert “debugger”, as well!
Since you can't always rely on your error messages, turning them into “clues” to where the “trouble-making” code is located, you should always be ready to “get your hands dirty”. To delve into Xdebug or Devel and track down those errors!
Instead of closely examining, one by one, every single line of code!
6. Command Line Interface
It's common sense that you should be more than just familiar working with a CLI!
Just think of the whole “ecosystem” of modules, profiles and themes that you'll need to handle. It will be crucial for you to be able to access their codes quick and easy, through your command line, by typing the right lines, instead of relying on a whole “mouse clicking "marathon”.
Not to mention that it's a time-saving tool when you're dealing with repetitive tasks. Efficiency is key in Drupal, do keep that in mind!
The command line interface for Drupal is Drush. You'll be using it for performing sql queries, for manipulating your database, running update.php, clearing your Drupal cache etc.
7. Code Testing
Being able to efficiently test your own code is as important as being able to quickly track down bugs in your own code.
There are several methods for “practicing” your testing skills” when duty calls: rely on BD, on TDD (for creating unit tests for your classes), on linting. Linting will gradually challenge you to implement the best practices for writing “good” code, code that others, too, should be able to easily navigate through.
8. CSS Preprocessors
Although there still are many not happy with CSS preprocessors' growing popularity these days, you should be prepared to be put in the position of confidently using them. Who knows what your future, as a Drupal developer, has in store for you?
What are they and why you might find clients that prefer them or frameworks that use CSS preprocessers?
- To answer the first part of your question: it's practically a brand new language that we're talking about, one that comes with additional “cool” things that you can use and which gets compiled into standard CSS syntax. It practically extends regular CSS's functionality, that's what it does!
- Now the answer the second part of your question: CSS preprocessors allows you to write cleaner, reusable code and it grants your more flexibility to do things quickly.
9. A CMS Platform
Whether it would have been a Wordpress or a Joomla developer that you would have aimed to become, knowing how a CMS platform works would have been equally crucial.
Now since you want to become a Drupal developer, remember that after you've grown familiar with working within a CMS platform and after you've learned all about their “architecture” you should focus on Drupal! On Drupal's particularities that sets it apart as a CMS.
10. Gain Theming Skills if You Want to Become a Drupal Developer
My last piece of advice for you, the open source enthusiast aiming to become a Drupal developer, is: gain at least some basic theming skills!
Just think of how much Drupal 7 and Drupal 8, two versions of the same CMS, differ in terms of themig. You have Twig in Drupal 8 instead of template.php! And this is just one reason that you should have some theming “expertise” to be able to seize the key differences between these two versions of Drupal
You should practice your theming skills, to get them improved by creating your own base theme. Understanding the key theming principles will help you grow independent of pre-built Drupal themes.
Equipped with these skills and a good base understanding of these specific languages, tools and frameworks here, you'll gain enough confidence to “venture” yourself into the world of Drupal developers!
Have I left out something crucial that a junior Drupal developer should know? Feel free to “warn” me about in the comments below!