The Brick Wall of Learning Drupal
With just about anything new, there is a learning curve. Getting a new cellphone requires learning a new interface. Upgrading to a new operating system requires the same. Development tools also have learning curves, and Drupal is no exception. With Drupal though, it seems like people run smack into a learning wall instead of a learning curve. People new to Drupal tend to struggle for a long time to grasp the basics and many give up. Why is this?
In the old days of custom web development, more programming was needed. For example, you had to create a table for a specific type of content, build a form to input the data from the user, then validate and possibly present the form again with some errors. Then, you had to save the data, handle the redirection to a new page, display lists of data, and find ways to represent this data like calendars, slideshows and unordered lists.
Often there are frameworks to wrap around all this that simplify large parts, but essentially you are still moving the same data through the same steps. It is also possible to extend other content management systems like Joomla and Wordpress using this method to extend their capabilities.
Many people approach Drupal with the same mindset. In fact, this is one of the reasons that I recommend against new Drupal developers reading “Pro Drupal Development” right away. While this is one of the best books for Drupal developers, it tends to lead new developers in the wrong direction. It is important to understand CCK, views and other contributed modules as well as how the community operates before diving into custom development. I’m speaking from experience as I wasted my first 6 months with Drupal by duplicating everything that already existed and doing things the wrong way.
The Drupal way of building websites is to create custom content types like a Blog or Profile and then attaching CCK fields to those content types. This is similar to defining database tables and form fields, but you don’t have to actually do any programming. Then, using views, you can create pages and views of that data in some pretty amazing ways like calendars and slideshows. Using this Drupal way, you can build incredibly sophisticated and amazing websites with no programming.
After teaching our latest Drupal training course in Austin, I was encouraged by the change in our participants between the first day and the last day. When we start out, we field many questions about how to program in Drupal the wrong way. They want to start creating tables and program form fields, then start programming pages that query the database and render output. When we start explaining content types, CCK, and views, they slowly start realizing that they no longer need to worry about all that.
At the end of training, it was amazing to see them get it. They start looking at site building from a meta level instead of at a programming level. They start asking “what content do I need to collect and how do I need to display it?” instead of “how do I make forms and database connections?” They started building content types, configuring fields for their data, and setting up views to display that data. They were also amazed by the speed and ease with which they were able to set up fairly complex sites.
If you are new to Drupal or are struggling after running into the learning brick wall, learn everything you can about CCK and views. You should also consider coming to our upcoming Drupal training courses where we can help you get over the wall and on your way building amazing websites.