Drupal site builders - why you should start Drupal module development
You build Drupal websites. You know which modules to download and configure and how to make a pretty slick website. You might be able to use Views to build up complex queries to add some fizz to sites that you build. You might be able to create various content types and image presets. You might even know the delights of Context, Panels, Rules etc. But you might be feeling like you want to go beyond downloading, installing and configuring modules. Do you seek more freedom to do what you want? Do you have problems to solve that require a finer touch than using existing modules? Or do you just want to increase your skill level?
Drupal is like Lego, and you can make your own bricks
It has been said that Drupal is like Lego®. You can put together some bricks and make anything you want. But at some stage, kids get tired of Lego®. They get tired of pre-fabricated bricks. They want to start making their own bricks. In Drupal land, making your own bricks is making your own modules. There is no need to be confined to just the bricks that other people make for you.
You will enter a whole new world when you start creating your own modules. At first, you will be enthralled with the extra power you have at your finger tips to make small but unique changes. You won't need to plug in 3 modules to redirect a user when you can add just a few lines of code.
Take Drupal to the next level
Pretty soon, you will realise that you are actually implementing some of Drupal's many hooks and will begin to feel comfortable with the hooks system. As you understand more and more of the hooks system, you will understand the full process Drupal goes through when dealing with a request from a user. You implement more hooks to make more changes. They are still relatively small at this stage, but you are hooked (excuse the pun). You can't resist the power. You create more complex modules to solve more complex problems. Before long, you have confidence in telling your clients or boss that you can take Drupal to the next level. You can bend it to your will.
Your clients or boss will love you
They already think Drupal is amazing, and you are becoming the person who can harness its power as you solve your complex problems with custom modules. If Drupal is powerful by installing and configuring contributed modules, imagine what it is like if you have the flexibility of creating your own custom modules.
You eventually start contributing modules and patches back to the community. You commence collaborating with the world. You are a Drupalista.
Become an in demand developer
Asides from the additional power and flexibility you will gain from writing your own modules, there is another benefit. You will start to become a developer. Not a site builder, or webmaster and themer or whatever other label you might have currently. You don't need to know much PHP to get started with module development. You need to understand basic PHP syntax and how arrays work. Most of the knowledge you need to learn in the early days is Drupal specific (hook system, menu system etc). But over time, you will become more and more competent with PHP as you solve more complex problems. You will get used to looking up PHP functions on php.net. You will get used to adding logic that takes your module beyond simple Drupal hook implementations. Once you embark down this route, the world is your oyster. You might even start looking at systems and frameworks beyond the Drupal world. Of course you don't have to, but the option is always there.
The tech world is booming at the moment and there are plenty of web developer jobs (both permanent and freelance/contract) for people with the right skills. By becoming skilled in Drupal module development and then beyond, you will position yourself well in the market. It takes time, patience and practice. But it is a journey that is firmly within your grasp and you can take it one small step at a time.
If this sounds like the journey for you but you don't know where to begin, try my free email course Starting Drupal Module Development.