Related
I am a PHP programmer. I am new to Drupal. I want to become a Drupal developer. Should I start learning version 7 or 8.
Similar to the question "How do you eat an elephant" (answer: 1 byte at a time ...), I think you should try to have some plan (roadmap), which basically consists of 4 major phases:
What are the prereqs to start?
How could a training program look like?
How to gain more experience?
How to target the golden cradle?
(Many) More details on each of these phases are below ... I'm pretty sure it's an approach that works ... mostly because it is how I got started with Drupal myself ... though I'm still trying to finish my Drupal journey (to continue to gain even more Drupal experience).
Part 1 - What are the prereqs to start?
0. HTML, PHP, JS, CSS knowledge
If you already know HTML, PHP, JS, CSS, etc it will for sure help to get you going with Drupal.
But in my experience those skills are not the most important ones to get up to speed with Drupal. You can learn about them "on the fly (on the job?)". Specific to PHP, in the context of Drupal, you only need to know a subset of all the things you can do with PHP.
1. Required Infrastructure
Obviously you need a computer, and (at least occasionally) a working internet connection and an eMail ID. At least to download Drupal, contributed modules, etc to your own computer.
Later on, when you have a website that is ready to be shown to the world, you'll also need:
some hosting provider to host that Drupal site.
a domain name (DNS registration).
To actually be able to use a Drupal website on your own computer, you'll need the typical softwares that are like pre-requisites for Drupal. Here is a list of those so called 'stacks' (often referred to as WAMP, MAMP or LAMP also):
an operating system for your computer (Windows, Mac or the free Linux).
a web server (like the free Apache, ...).
a DBMS (like the free MySQL).
PHP (no other languages here, but ... free).
Some typical utility programs, such as:
something to unpack files in an archive format such as a .tar or .zip, since Drupal and its contributed modules are downloaded in these formats.
an text editor (like notepad, notepad++, your favorite editor, etc).
an FTP client, such as FileZilla (to upload your site frm your local environment to a live server)
Setting up the required pre-requisites (as in the previous bullet) can be a bit of work (and/or a challenge). However there are some great packages available to reduce the required effort (and required skills) quite a lot, such as (pick whatever option you prefer and/or fits for you, incomplete list!):
VirtualBox combined with QuickStart (bonus: comes with GIT, Drush, etc pre-installed).
XAMPP.
Part 2 - How could a training program look like?
2. Climb the Drupal ladder
When I'm asked the question about how to get started with Drupal, I always point to Climbing the Drupal ladder (from famous Dries ...). It's only 1 diagram, but there is so much information and value in it (a picture is worth more then 1000 words ...).
It's a great outline to be used during a "Getting started with Drupal" session. Anybody who's a bit familiar with Drupal should be able to explain most of the items mentioned on it also.
There are also these variations of it:
The DrupalLadder.org website, which contains (or links to) lessons and materials to help people learn about Drupal and contribute to Drupal. The site helps Drupal user groups develop and share and develop materials for learn sprints and issue sprints.
Drupal Ladder installation profile (alfa version only, and missing some security updates ...).
3. Get familiar with contributed modules and themes
These days, there are around 17K contributed modules and/or themes. There are tons (thousands ...) of great modules/themes, and a lot of hidden gems. So think twice (or 3 times?) before diving into writing custom modules/themes. Ask yourself the question "Who will maintain them in say a few years from now?".
However, quite often you'll run into more then just 1 contributed module or theme. Here is a sample: Which contributed module should you use to create a chart in Drupal? ... Make your choice, e.g via the Comparison of charting modules. But which module would you go for if you are looking for:
an image gallery, as in this question: Advise a Drupal Image gallery module with an option to put text nearby the image (for medical atlas)
a slideshow, as in this question: Slide through nodes from the same content-type?
a responsive theme?
That's when you'll need to have some criteria in place for selecting the most appropriate one, as illustrated in the "Maintenance scorecards" also (you can use them for many other Drupal topics, so not only just for charts).
4. Views / Flag / Rules / Message
It's rare to find sites that don't use the (amazing) Views module, which however isn't obvious to get started with (there is so much to learn about it). I learned a lot about this module via the great, and free, set of 30 video tutorials about the Views module.
Combined with the Flag, Rules and Message modules, a lot of site functionality can be delivered already. To get started with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters. There is a similar set of 8 video tutorials about the Flag module.
So make sure to have a good knowledge/understanding of all the amazing things you can do with only those "magic 4", in virtually any site. A few samples:
How can I allow anonymous visitors to submit content?
How to implement a nomination process for nodes?
How to change fields permission using some action in the Rules module?
Redirect after login for specific role on specific day using Rule.
How to publish nodes 3 times a day?
Content access based on the content author's role.
How to change my homepage based on the time of day?
5. Study available documentation
Documentation about Drupal and many of the contributed modules is available in various formats, such as:
The Readme.txt file that comes with contributed modules.
The Community documentation available for many modules, which can typically be found via the "Read documentation" link on a module's project page (not all modules have one however, though they should).
The Advanced Help documentation that comes with selected modules, and which you can access from within your site if you have the Advanced Help module installed.
The impressive set of (great) questions and (great) answers at Drupal Answers.
6. Learn to use the issue queue(s) on Drupal.org.
Each contributed module on Drupal.org has a "project page" located at something like https://www.drupal.org/project/issues/abc, whereas abc is the "namespace" of the module (not always exactly the same as the title of the project page). Multiple links to its corresponding "Issue queue" can be found on the project page, or just use an URL like https://www.drupal.org/project/issues/abc.
The issue queue (search results of issues) offers various search features and/or filters. Even if you're not "searching" for a specific issue, but just browsing around in these issues, you can learn a lot by reviewing these issues. Often times there is important (crucial) information contained in "some" issue that didn't make it (yet) to the documentation related to the module.
In my case, when I first started using Forena, I kept iterating over its issue queue, and occasionally posted new issues.
As a module (co-)maintainer, I try to point module users to such interesting issues, via a list of 'issues' mentioned (hyperlinked) in these Community documentation pages: Charts HowTos, Forena HowTos, Chart HowTos. Note: later on I started adding similar links to interesting question on Drupal.SE also ...
7. Learn from podcasts about Drupal
There are some interesting podcasts dedicated to Drupal, which also have a great website with all sorts of hyperlinks to topics covered in each of them. Though there are quite a few, here are my favorite ones (+ links to answers about topics I learned about via them):
Talking Drupal
Example: How can I make a gallery of “boxes” of content consisting of an image and some text?
Drupal Easy
Example: Can I move distribution profile modules from profile folder to sites/all/modules?
FYI: I "learn from these podcasts" (+ get ideas) while ... walking my dog. You could do so too while commuting, exercising, cutting the grass, preparing a meal, etc.
8. Learn about Drush
Learn to walk before you want to try to fly ... So start building / maintaining Drupal sites using the typical Admin interface (UI). Such as:
install/enable modules.
clearing the cache(s).
updating site information.
typical modules you keep using in most of the sites you build.
etc.
However, when you feel you have enough experience, and start to know and understand Drupal well enough, you should invest in learning about Drush. After you do, you'll wonder "How could I do work in Drupal without Drush?". For each of the bullets above (and many more bullets), there is a way to do it with Drush.
9. Learn about GIT
A Drupal site mostly consist of 2 major parts: a database (typically in MySQL), and code (mostly PHP, also JavaScript, CSS, etc). Drupal core, it's contributed modules, and also custom modules are all in "code". Git is used for the "Software Change Management" (SCM) part of that code.
It is highly recommended to start using GIT "as soon as you can" (after you do, you'll wonder "how would I do work in Drupal without it?"). Git is typically used for topics/tasks such as:
Building a Drupal site with Git.
Sharing code between developers, and for maintaining modules on Drupal.org.
Part 3 - How to gain more experience?
10. Pick an area to grow
Drupal is big, actually huge. Nobody (even not Dries) can do/know everything in Drupal. So try to find an area (or a few areas) you're interested in. If you can, look for something you also have experience with already in other (none-Drupal) domains already.
In my case it was (is) Software Change Management and also Business Intelligence (reporting). That's what explains the contributed modules I'm now 'involved' in (Charting, Reporting, etc) ... and my interest in the upcoming "Configuration Management Initiative".
11. Learn from experience ... and mistakes
Another important aspect to come up to speed with Drupal, is that you have time to learn "from experience", and "from making mistakes". Starting as a site builder seems the most obvious starting point.
From there you can move / evolve into roles like a Drupal Developer (back-end), Drupal Themer (front-end) or Drupal all rounder. That's also what seems to be compliant with recent Drupal certification programs.
Remark: how to get started in any of these roles, seems to be out-of-scope for this question.
12. Get in touch with other Drupal-fans
You must have seen this before: "Come for the software, stay for the community". If not, have you ever visited www.drupal.org? See it in the upper left of the homepage? If you're new to Drupal you probably wonder what that really means. Here are some suggestions to experience it:
Participate in Drupal Groups.
Join the Drupal community on IRC.
13. ...
This bullet is intentionally left blank ... because of its "number" ... Did you notice the numbering started at 0? ... to compensate for this missing number ...
14. Attend Drupal conferences and meetings
Meeting in person with other Drupal peers takes more effort (and is more expensive), but you will get a lot in return. Here are some options to pick from:
Attend Drupal Cons, these are big conferences, about 1 in every continent every year, relatively expensive (travel, hotel, registration). Common language is English (though there are exceptions like in Latin America I believe it's in Spanish). Next one coming up is in Barcelona, sept 21-25, 2015 (I'm registered ...). If you can't make it (or missed some of the sessions while there and busy doing networking, etc.), go find the videos about dozens of sessions.
Attend Drupal Camps, which are more local and (way) smaller. They are typically by country and/or state, in your own language.
Attend Drupal Sprints, where you wil not only be contributing (= giving back to the community), but where you will find others willing to help, guide and mentor you where needed.
Part 4 - How to target the golden cradle?
15. Don't wait for George, just be like George
George#Drupal.org was (at least to me) first introduced at DrupalCon 2014 in Amsterdam during the Keynote (from Dries) (on slide 76/198). Review those slides, and watch the movie to understand what that George is all about.
Then stop "waiting for George", and instead start acting like George. Even if it's something challenging (difficult, major effort, etc). When you're done, you'll for sure have learned something, and probably AlotMORE ...
If you're looking for inspiration about what could be good examples of this, then stop wondering "When will D8 be released?". And instead, "Get involved in contributing to the release of D8" .... And continu using D7 for building websites until D8 is ready (and mature enough).
16. Start contributing as a novice
Apart from what's detailed in the Novice code contribution guide (which is about creating patches to contribute "code" to Drupal), there is also a lot of community documentation that needs work, and can be done by novice users (typically tagged with "novice").
Same for modules that need better/more documentation. That's actually how I got 'promoted' from being a Drupal user/admin to becoming a module co-maintainer and module owner. Refer to HELP Reports reorganization (which is 'just' 1 issue ...) for an illustration of how I got started in doing so.
Such contributions will help to "Build your reputation", and might resolve the chicken/egg issue to get started with Drupal (most jobs in Drupal require knowledge / experience in specific Drupal areas).
17. Learn to manage Drupal configuration
Any Drupal site consist of 2 major parts:
Code downloaded from Drupal.org, such as Drupal core and contributed modules or custom modules.
Configuration which is stored in the Drupal database (typically anything you do using the Drupal administration screens).
Managing code (such as migrating or synching between 2 or more environments) is relatively easy. All sorts of tools (such as GIT, etc) are available to actually do so.
However you also need to manage the configuration of a Drupal site. A site without any configuration is like a site for which you have not even ran the install.php script. Here are some examples of what configuration is about:
As soon as you start running the install.php script, you start entering configuration data about your Drupal site (Site name, site slogan, etc.).
Anything to content types, permissions, roles, rules, users, taxonomies, filters, custom views, etc. (none of this is stored in "code", and you can't just download it from somewhere).
Modules and/or themes that are enabled (just unpacking a contributed module that you download from Drupal.org will not enable it).
Options to configure specific modules and/or themes.
So whenever something about such configuration items changes, or needs to be migrated to another site, you need to correctly manage (and secure?) all this. Otherwise there is a chance that (parts of) your site breaks.
That's why at first these kinds of contributed modules were introduced:
The Features module.
The Configuration management module.
Even though those modules add a lot of value in the area of managing configuration, they also have weaknesses. That's why the Configuration Management Initiative (=CMI) was introduced. CMI is planned to be released as part of Drupal 8.
Part 5 - Appendix
The above list is incomplete (still ...). Other topics that might be added here:
How could a training program look like?
Become familiar with other modules, at least with the ones with a
high ranking, but also search for hidden gems.
Learn about contributed modules to display content, such as Display Suite and/or Panels. Then check if you can answer questions such as "Panels Mini-Panels vs Block Regions vs Display Suite vs Stylizer vs Page Manager vs Theme". A great resource for learning about Panels is the (free) video training about Learn Page manager. Panels uses 'Page manager', which is one of the sub-modules of Chaos tool suite (ctools).
Become familiar with building multilanguage sites (using i18n).
Learn about using "Base themes", such as Zen, Omega or Bootstrap (most of them support HTML5, are responsive, have a lot of configuration options, etc). And also explore the various "Sub-themes" related to them (also available for download from Drupal.org).
Increase some of your technical skills such as SQL and Regular Expressions.
Review and learn from dissecting Drupal distributions.
How to gain more experience?
Find a Drupal mentor (+ accept invites from others to become theirs ...).
Chat with the Drupal Community on IRC.
Participate in sprints.
Learn about Drupal deployments (dev, stage, QA, prod).
How to target the golden cradle?
Workflow automation.
Automated testing.
Apply software reuse (Features, drush make, installation profiles, etc).
Get ready for D8 (Symphony, Twig, OOP, CMI, server prereqs, ...).
As an expert Drupal developer, I recommend you watching Drupalize Me and follow Getting Started - Background & Prerequisites (Drupal 8) will you much. of course, watching and reading is never enough to got expert and you should practice a lot, write some custom modules, use Drupal API and etc.
Also tracking The Weekly Drop could you a lot. I always check their posts.
Drupal 7 is kinda similar to Drupal 6. On other hand Drupal 8 looks like Drupal 7 at back-end, but under the hood difference is significant. D8 is based on symfony, more object oriented, probably better (cleaner) written but also more resource hungry.
Drupal 7 is really mature version and you have wide range of well tested modules for all kind of needs. It also works fine od PHP 5.x, but on PHP 7.x some modules can refuse to work - I don't advise running Drupal 7 sites on PHP 7.x.
Drupal 8 is not that mature, many modules from D7 are still missing for D8 or they are in beta state. PHP 7.x is much better supported by D8.
So, it's up to you to decide. If you need stable CMS, with lot of modules available to use it right now and you don't care about PHP 7.x then D7 is for you.
But if you are planning to use it for a long time, on PHP 7.x, want some future proof solution then better go for D8. Have in mind that lot of hosting companies are planning to keep only PHP 7.x and revoke support for PHP 5.x
TL/DR: Drupal 8 is the better choice by far!
Definitely go for Drupal 8!
Drupal 7 is still used, but I think most people are switching to 8 now. Nearly all contrib modules are now available for 8.
The only thing that I can think of that I MIGHT (but probably won't) use D7 for is a commerce website (webshop). Last time I checked those modules had not all been completely ported to D8, but most of it is available.
1) Figure out how to install DrupalVM on your computer, or get a webhosting that supports Drupal with composer & drush.
2) Set up a site on your drupalvm or webhosting and experiment, basic site building in Drupal is pretty easy
3) Find some premade (free) themes and install them, you can create your own there from there or just edit the existing themes
4) A lot of stuff already exists, pretty much any basic functionality you can think of in the form of contributed modules, use them!
5) If you want to create your own website layouts, start learning CSS, SCSS, Twig, JavaScript, ...
6) If you want to create your own modules for advanced custom functionality on your website, start learning PHP
You can create great and good looking Drupal websites without having to program.
If you want to learn programming, you're way better of learning something like Laravel or CakePHP or any of the similar frameworks.
Although you can do a lot of custom programming in Drupal too.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Today I have been given the requirement for new site to be developed in Drupal.
I have to learn from scratch within a week. I need any good links other than drupal.org to start with. I already have hands on experience in Wordpress and PHP.
Do you have any good links or tutorials for that?
Similar to the question "How do you eat an elephant" (answer: 1 byte at a time ...), I think you should try to have some plan (roadmap), which basically consists of 4 major phases:
What are the prereqs to start?
How could a training program look like?
How to gain more experience?
How to target the golden cradle?
(Many) More details on each of these phases are below ...
Part 1 - What are the prereqs to start?
0. HTML, PHP, JS, CSS knowledge
If you already know HTML, PHP, JS, CSS, etc it will for sure help to get you going with Drupal.
But in my experience those skills are not the most important ones to get up to speed with Drupal. You can learn about them "on the fly (on the job?)". Specific to PHP, in the context of Drupal, you only need to know a subset of all the things you can do with PHP.
1. Required Infrastructure
Obviously you need a computer, and (at least occasionally) a working internet connection and an eMail ID. At least to download Drupal, contributed modules, etc to your own computer.
Later on, when you have a website that is ready to be shown to the world, you'll also need:
some hosting provider to host that Drupal site.
a domain name (DNS registration).
To actually be able to use a Drupal website on your own computer, you'll need the typical softwares that are like pre-requisites for Drupal. Here is a list of those so called 'stacks' (often referred to as WAMP, MAMP or LAMP also):
an operating system for your computer (Windows, Mac or the free Linux).
a web server (like the free Apache, ...).
a DBMS (like the free MySQL).
PHP (no other languages here, but ... free).
Some typical utility programs, such as:
something to unpack files in an archive format such as a .tar or .zip, since Drupal and its contributed modules are downloaded in these formats.
an text editor (like notepad, notepad++, your favorite editor, etc).
an FTP client, such as FileZilla (to upload your site frm your local environment to a live server)
Setting up the required pre-requisites (as in the previous bullet) can be a bit of work (and/or a challenge). However there are some great packages available to reduce the required effort (and required skills) quite a lot, such as (pick whatever option you prefer and/or fits for you, incomplete list!):
VirtualBox combined with QuickStart (bonus: comes with GIT, Drush, etc pre-installed).
XAMPP.
Part 2 - How could a training program look like?
2. Climb the Drupal ladder
When I'm asked the question about how to get started with Drupal, I always point to Climbing the Drupal ladder (from famous Dries ...). It's only 1 diagram, but there is so much information and value in it (a picture is worth more then 1000 words ...).
It's a great outline to be used during a "Getting started with Drupal" session. Anybody who's a bit familiar with Drupal should be able to explain most of the items mentioned on it also.
There are also these variations of it:
The DrupalLadder.org website, which contains (or links to) lessons and materials to help people learn about Drupal and contribute to Drupal. The site helps Drupal user groups develop and share and develop materials for learn sprints and issue sprints.
Drupal Ladder installation profile (alfa version only, and missing some security updates ...).
3. Get familiar with contributed modules and themes
These days, there are around 17K contributed modules and/or themes. There are tons (thousands ...) of great modules/themes, and a lot of hidden gems. So think twice (or 3 times?) before diving into writing custom modules/themes. Ask yourself the question "Who will maintain them in say a few years from now?".
However, quite often you'll run into more then just 1 contributed module or theme. Here is a sample: Which contributed module should you use to create a chart in Drupal? ... Make your choice, e.g via the Comparison of charting modules. But which module would you go for if you are looking for:
an image gallery, as in this question: Advise a Drupal Image gallery module with an option to put text nearby the image (for medical atlas)
a slideshow, as in this question: Slide through nodes from the same content-type?
a responsive theme?
That's when you'll need to have some criteria in place for selecting the most appropriate one, as illustrated in the "Maintenance scorecards" also (you can use them for many other Drupal topics, so not only just for charts).
4. Views / Flag / Rules / Message
It's rare to find sites that don't use the (amazing) Views module, which however isn't obvious to get started with (there is so much to learn about it). I learned a lot about this module via the great, and free, set of 30 video tutorials about the Views module.
Combined with the Flag, Rules and Message modules, a lot of site functionality can be delivered already. To get started with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters. There is a similar set of 8 video tutorials about the Flag module.
So make sure to have a good knowledge/understanding of all the amazing things you can do with only those "magic 4", in virtually any site. A few samples:
How can I allow anonymous visitors to submit content?
How to implement a nomination process for nodes?
How to change fields permission using some action in the Rules module?
Redirect after login for specific role on specific day using Rule.
How to publish nodes 3 times a day?
Content access based on the content author's role.
How to change my homepage based on the time of day?
5. Study available documentation
Documentation about Drupal and many of the contributed modules is available in various formats, such as:
The Readme.txt file that comes with contributed modules.
The Community documentation available for many modules, which can typically be found via the "Read documentation" link on a module's project page (not all modules have one however, though they should).
The Advanced Help documentation that comes with selected modules, and which you can access from within your site if you have the Advanced Help module installed.
The impressive set of (great) questions and (great) answers at Drupal Answers.
6. Learn to use the issue queue(s) on Drupal.org.
Each contributed module on Drupal.org has a "project page" located at something like https://www.drupal.org/project/issues/abc, whereas abc is the "namespace" of the module (not always exactly the same as the title of the project page). Multiple links to its corresponding "Issue queue" can be found on the project page, or just use an URL like https://www.drupal.org/project/issues/abc.
The issue queue (search results of issues) offers various search features and/or filters. Even if you're not "searching" for a specific issue, but just browsing around in these issues, you can learn a lot by reviewing these issues. Often times there is important (crucial) information contained in "some" issue that didn't make it (yet) to the documentation related to the module.
In my case, when I first started using Forena, I kept iterating over its issue queue, and occasionally posted new issues.
As a module (co-)maintainer, I try to point module users to such interesting issues, via a list of 'issues' mentioned (hyperlinked) in these Community documentation pages: Charts HowTos, Forena HowTos, Chart HowTos. Note: later on I started adding similar links to interesting question on Drupal.SE also ...
7. Learn from podcasts about Drupal
There are some interesting podcasts dedicated to Drupal, which also have a great website with all sorts of hyperlinks to topics covered in each of them. Though there are quite a few, here are my favorite ones (+ links to answers about topics I learned about via them):
Talking Drupal
Example: How can I make a gallery of “boxes” of content consisting of an image and some text?
Drupal Easy
Example: Can I move distribution profile modules from profile folder to sites/all/modules?
FYI: I "learn from these podcasts" (+ get ideas) while ... walking my dog. You could do so too while commuting, exercising, cutting the grass, preparing a meal, etc.
8. Learn about Drush
Learn to walk before you want to try to fly ... So start building / maintaining Drupal sites using the typical Admin interface (UI). Such as:
install/enable modules.
clearing the cache(s).
updating site information.
typical modules you keep using in most of the sites you build.
etc.
However, when you feel you have enough experience, and start to know and understand Drupal well enough, you should invest in learning about Drush. After you do, you'll wonder "How could I do work in Drupal without Drush?". For each of the bullets above (and many more bullets), there is a way to do it with Drush.
9. Learn about GIT
A Drupal site mostly consist of 2 major parts: a database (typically in MySQL), and code (mostly PHP, also JavaScript, CSS, etc). Drupal core, it's contributed modules, and also custom modules are all in "code". Git is used for the "Software Change Management" (SCM) part of that code.
It is highly recommended to start using GIT "as soon as you can" (after you do, you'll wonder "how would I do work in Drupal without it?"). Git is typically used for topics/tasks such as:
Building a Drupal site with Git.
Sharing code between developers, and for maintaining modules on Drupal.org.
Part 3 - How to gain more experience?
10. Pick an area to grow
Drupal is big, actually huge. Nobody (even not Dries) can do/know everything in Drupal. So try to find an area (or a few areas) you're interested in. If you can, look for something you also have experience with already in other (none-Drupal) domains already.
In my case it was (is) Software Change Management and also Business Intelligence (reporting). That's what explains the contributed modules I'm now 'involved' in (Charting, Reporting, etc) ... and my interest in the upcoming "Configuration Management Initiative".
11. Learn from experience ... and mistakes
Another important aspect to come up to speed with Drupal, is that you have time to learn "from experience", and "from making mistakes". Starting as a site builder seems the most obvious starting point.
From there you can move / evolve into roles like a Drupal Developer (back-end), Drupal Themer (front-end) or Drupal all rounder. That's also what seems to be compliant with recent Drupal certification programs.
Remark: how to get started in any of these roles, seems to be out-of-scope for this question.
12. Get in touch with other Drupal-fans
You must have seen this before: "Come for the software, stay for the community". If not, have you ever visited www.drupal.org? See it in the upper left of the homepage? If you're new to Drupal you probably wonder what that really means. Here are some suggestions to experience it:
Participate in Drupal Groups.
Join the Drupal community on IRC.
13. ...
This bullet is intentionally left blank ... because of its "number" ... Did you notice the numbering started at 0? ... to compensate for this missing number ...
14. Attend Drupal conferences and meetings
Meeting in person with other Drupal peers takes more effort (and is more expensive), but you will get a lot in return. Here are some options to pick from:
Attend Drupal Cons, these are big conferences, about 1 in every continent every year, relatively expensive (travel, hotel, registration). Common language is English (though there are exceptions like in Latin America I believe it's in Spanish). Next one coming up is in Barcelona, sept 21-25, 2015 (I'm registered ...). If you can't make it (or missed some of the sessions while there and busy doing networking, etc.), go find the videos about dozens of sessions.
Attend Drupal Camps, which are more local and (way) smaller. They are typically by country and/or state, in your own language.
Attend Drupal Sprints, where you wil not only be contributing (= giving back to the community), but where you will find others willing to help, guide and mentor you where needed.
Part 4 - How to target the golden cradle?
15. Don't wait for George, just be like George
George#Drupal.org was (at least to me) first introduced at DrupalCon 2014 in Amsterdam during the Keynote (from Dries) (on slide 76/198). Review those slides, and watch the movie to understand what that George is all about.
Then stop "waiting for George", and instead start acting like George. Even if it's something challenging (difficult, major effort, etc). When you're done, you'll for sure have learned something, and probably AlotMORE ...
If you're looking for inspiration about what could be good examples of this, then stop wondering "When will D8 be released?". And instead, "Get involved in contributing to the release of D8" .... And continu using D7 for building websites until D8 is ready (and mature enough).
16. Start contributing as a novice
Apart from what's detailed in the Novice code contribution guide (which is about creating patches to contribute "code" to Drupal), there is also a lot of community documentation that needs work, and can be done by novice users (typically tagged with "novice").
Same for modules that need better/more documentation. That's actually how I got 'promoted' from being a Drupal user/admin to becoming a module co-maintainer and module owner. Refer to HELP Reports reorganization (which is 'just' 1 issue ...) for an illustration of how I got started in doing so.
Such contributions will help to "Build your reputation", and might resolve the chicken/egg issue to get started with Drupal (most jobs in Drupal require knowledge / experience in specific Drupal areas).
17. Learn to manage Drupal configuration
Any Drupal site consist of 2 major parts:
Code downloaded from Drupal.org, such as Drupal core and contributed modules or custom modules.
Configuration which is stored in the Drupal database (typically anything you do using the Drupal administration screens).
Managing code (such as migrating or synching between 2 or more environments) is relatively easy. All sorts of tools (such as GIT, etc) are available to actually do so.
However you also need to manage the configuration of a Drupal site. A site without any configuration is like a site for which you have not even ran the install.php script. Here are some examples of what configuration is about:
As soon as you start running the install.php script, you start entering configuration data about your Drupal site (Site name, site slogan, etc.).
Anything to content types, permissions, roles, rules, users, taxonomies, filters, custom views, etc. (none of this is stored in "code", and you can't just download it from somewhere).
Modules and/or themes that are enabled (just unpacking a contributed module that you download from Drupal.org will not enable it).
Options to configure specific modules and/or themes.
So whenever something about such configuration items changes, or needs to be migrated to another site, you need to correctly manage (and secure?) all this. Otherwise there is a chance that (parts of) your site breaks.
That's why at first these kinds of contributed modules were introduced:
The Features module.
The Configuration management module.
Even though those modules add a lot of value in the area of managing configuration, they also have weaknesses. That's why the Configuration Management Initiative (=CMI) was introduced. CMI is planned to be released as part of Drupal 8.
Part 5 - Appendix
The above list is incomplete (still ...). Other topics that might be added here:
How could a training program look like?
Become familiar with other modules, at least with the ones with a
high ranking, but also search for hidden gems.
Learn about contributed modules to display content, such as Display Suite and/or Panels. Then check if you can answer questions such as "https://drupal.stackexchange.com/questions/22553/panels-mini-panels-vs-block-regions-vs-display-suite-vs-stylizer-vs-page-manager". A great resource for learning about Panels is the (free) video training about Learn Page manager. Panels uses 'Page manager', which is one of the sub-modules of Chaos tool suite (ctools).
Become familiar with building multilanguage sites (using i18n).
Learn about using "Base themes", such as Zen, Omega or Bootstrap (most of them support HTML5, are responsive, have a lot of configuration options, etc). And also explore the various "Sub-themes" related to them (also available for download from Drupal.org).
Increase some of your technical skills such as SQL and Regular Expressions.
Review and learn from dissecting Drupal distributions.
How to gain more experience?
Find a Drupal mentor (+ accept invites from others to become theirs ...).
Chat with the Drupal Community on IRC.
Participate in sprints.
Learn about Drupal deployments (dev, stage, QA, prod).
How to target the golden cradle?
Workflow automation.
Automated testing.
Apply software reuse (Features, drush make, installation profiles, etc).
Get ready for D8 (Symphony, Twig, OOP, CMI, server prereqs, ...).
Note: the above is what I posted before on https://drupal.stackexchange.com/questions/164463/how-to-answer-questions-about-getting-started-with-drupal/164475#164475. The actual question (https://drupal.stackexchange.com/questions/164463) is now marked as "hidden for anybody who has not at least 10K rep on drupal.SE" (aka deleted by moderators).
Try setting up a Drupal site first, then ask specific questions in http://drupal.stackexchange.com
Note: In my experience, Drupal has a steep learning curve compared to Wordpress.
Check out the following links:
http://training.acquia.com/hellodrupal
http://learnbythedrop.com/
http://drupalonlinetraining.com/
http://drupal.org/videocasts
http://drupal.org/handbooks (This one is probably the best place to say hi to Drupal!)
In addition to the great links fotuzlab has provided:
http://www.acquia.com/resources/recorded_webinars - recorded webinars from Acquia
http://drupal.org/project/examples - code examples for developers
http://api.drupal.org/api/drupal - API reference
also http://www.lullabot.com and http://www.lynda.com have great video courses, but they are not free.
But in general drupal.org is pretty enough to go with.
In addition to all other answers, consider to pick up a book (or a couple of them). See http://drupal.org/books/ for a list.
How can I build a regular website using drupal? which module should I use for that?
That's a pretty generic question. You should check out http://drupal.org/start and work through their Getting Started documentation and tutorials. After that, you should have an easier time here or on their forums getting more specific information.
According to Drupal founder Dries Buytaert, Drupal is not for building regular websites but for building "ambitious digital experiences".
'Because Drupal evolved from a simple tool for hobbyists to a more powerful digital experience platform, many people believe that Drupal is now "for the enterprise". While I agree that Drupal is a great fit for the enterprise, I personally never loved that categorization. It's not just large organizations that use Drupal. Individuals, small startups, universities, museums and non-profits can be equally ambitious in what they'd like to accomplish and Drupal can be an incredible solution for them. Rather than using "for the enterprise", I thought "for ambitious digital experiences" was a good phrase to describe what people can build using Drupal. I say "digital experiences" because I don't want to confine this definition to traditional browser-based websites.'
At the 2017 DrupalCon Vienna, Buytaert stated: "Drupal is no longer for simple sites, but for sites with medium to high richness." Basically there are easier solutions for regular websites than maintaining Drupal securely in production on a web server.
Depending on how "regular" your "regular" website is, you might consider another platform.
All of Drupal's complexity and versatility, along with the time you spent learning them, would go to waste if you're just displaying a dozen or so static pages.
Is this is the case, Wordpress or Joomla might be better starting points.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What are the advantages and disadvantages of coding your own blogging engine from scratch, versus using an already existing engine (for example, but not necessarily, wordpress)?
The biggest reason for going with developed blogging applications today is
probably interoperability. Seasoned blogging applications of today include
plug-ins and fundamental development inertia that ensures that you will interface well
with things like Twitter, Flickr, and social networking sites. Only a
spectacular developer (with a lot of time) would be able to custom code a
solution for all the APIs and other bells and whistles that, in the course of a blog's lifetime, they will want to use or at least experiment with. To build a custom blogging application is to make its default state a basically isolated one. And isolation for many blogs doesn't work.
The biggest plus for using a custom blogging application anyway is that you retain a high degree of control over the application's core behavior, and, since you will likely host it on your own server, direct access to its statistical metrics. If you know well ahead of time that you will not care about interoperability beyond, say RSS, or one or 2 other channels, and have the time to invest in core development, a custom blog is a great way to maintain a look and feel that will positively startle visitors who are used to a constant WordPress or Blogspot layout. One major pitfall, it seems, is that off the shelf blogging applications require you to learn how to manipulate each of their various presentations. It's not hard if you want to simply adopt any thousands of "themes" that typically exist for them, but then, your presentation will not be unique. Sooner or later a visitor to your blog will encounter the same look and feel elsewhere, exactly. The solution there is to hire a custom developer but that of course costs $$$. Even if YOU are that developer who will wind up trading coding-for-core-functionality time, for learning and coding for presentational individuality. Expensive either way.
I am struggling with this question myself. As a proponent of "everything independent" on the web I hate the idea of giving up low level control of my blog. I've been online since the consumer web first took off and understand the ease by which a website can be created using nothing but notepad and an FTP client. To me, anything beyond these basic tools is very "AOLish", and yet, many blogging applications have now evolved into full content management frameworks that would rival the complexity of mastering that which it once took just to figure out basic HTML. I've finally taken to in-depth experimentation with some of the more popular blogging solutions (WordPress, Blogger), and am shocked to find out that after spending so much time maintaining my own solutions, how quickly (and much better) it is to compose and manage entries with them. Since most of my blogs are not profit projects, time to compose has not been a factor for me. However, this may change. If it comes down to where I need to manage and concern myself more with content than mechanics to get my messages out, I will probably swing to seasoned blogging app mode and hope I learn enough about my platform to make it truly a unique experience anyway. That would probably be the best outcome for anyone like us debating this.
Dave
I just set up my own blog and I had to answer this same question myself. Here are the main reasons I went with BlogEngine.Net
Coding the entire thing myself would have taken a long time
I saw that there were a lot of themes available (and that making/modifying themes is easy)
Why reinvent the wheel? (would you write something that the public engines don't already do?)
Advantages of writing your own
It's fun
You might learn new programming tricks or techniques
Using a software you wrote is more satisfying than using someone else's
It will be exactly as you want it
Disadvantages
It takes time
Security risks. A high profile open source engine such as Wordpress is less likely to have security vulnerabilities than your own, especially if you don't have experience in web development. (However there are many high profile programs full of vulnerabilities, such as the widely used Internet Explorer), so take this with a grain of salt.
Features. Wordpress/others will probably have more features (even though some people don't like software with too many features)
You must keep improving your engine over time. If you stop but decide to keep blogging, you will probably want to move to Wordpress, especially if some features you really want aren't implemented yet in yours. This can be problematic, especially if you didn't plan export features.
Actually I went through this path.
For fun and learning reasons I coded my own little content-management system which I used for rudimentary blogging. It had quite static content (no comments were allowed) but it was enough for me. One year later I decided to switch to wordpress and am really happy with it.
Today I would change my approach and would go for wordpress instantly.
Reasons from product perspective:
You won't be able to feature-compete with wordpress (including plugins)
You won't be able to have such a stable and secure app as wordpress
Responsive community (both documentation and patches)
Continous releases
Reasons from learning perspective:
You learn a lot by understanding and reading other's source code.
You can make the product better instead of reinventing the wheel (by providing own plugins or bug-fixes).
It is a far more realistic job-setup: You hardly build apps from scratch but rather extend, integrate and maintain them. Also you work in a team.
Nowadays I would start to build 'from-scatch' software only if:
There is no software which can suit you or you can't extend to your needs.
You need a custom software for business reasons (e.g. you are a startup with fresh ideas)
Building a new software is cheaper as maintaining/extending existing one
I work in a shop that is mostly .NET based, and we're trying to pick out a content management system to use. This means we mostly likely won't be able to use any of the common open source CMS projects (Plone, phpNuke, anthing not based on .NET, etc.).
Since I'm a huge usability nerd (just finished reading The Design of Everyday Things by Norman), I've been looking at them from that point of view. Frankly, I haven't been too impressed. This quote sums it up:
Most open source content management software is useless. The only thing worse is every commercial CMS I’ve used. - Jeffrey Veen
Here's a short list of our requirements:
Has to be .NET based
Prefer open source or on the inexpensive side
Limited feature set (we don't need too many features and they make things harder to use)
Does need Active Directory integration and robust permissions
Should be focused on web standards and usability
I know it's probably an impossible feature list, but are there any content management systems that kinda sorta look like they might not suck more than a Dyson?
Edit:
Here's the current situation:
I'm going to push for N2. I've got Active Directory integration working well (I even wrote a custom role provider). The only thing missing is workflow functionality. Hopefully I can get something going with that since it's the last sticking point. The N2Contrib project might provide a starting point if I can figure it out.
I would still love to check out Stencil CMS if/when it gets off the ground.
One of my co-workers was trying to get Umbraco going but wasn't having much luck.
Thanks for the help!
Self-plug is lame, but what you're describing is pretty much exactly what I am getting ready to release for $79 a pop. If you're still looking in a few weeks, take a peek. If you'd like, shoot me an email (rex#stencilcms.com).
I've heard both positive and negative feedback about Umbraco. A lot of people like Graffiti, but it's more blog-oriented than a full-blown CMS.
Check out N2 (http://n2cms.com/). I think that it covers most, if not all, of your requirements (I don't think it has Active Directory capability at this time). We are using N2 and I have really enjoyed how flexible it has been.
My company just completed a review of several commercial .NET-based CMS/portal platforms and, while I can't reveal who was in them (thanks, NDAs!), I can tell you that IMO they all sucked very, very badly.
Good luck on your search. I'll keep an eye on this thread in the hopes that there's something we missed.
We had a similar set of requirements and chose Telerik Sitefinity. It's got it's faults but overall I've been happy with it so far.
Unfortunately Jeffery speaks the truth. Which is probably why I build a new custom cms from the ground up every few years. Basically, the motivation for "boxed" CMS packages is to have every feature on earth and be everything to everyone and therefore do nothing particularly well for anyone. With the feature bloat comes the usability nightmares. Unless you start customizing and then you usually end up forking the project and losing the advantage of community updates.
Kentico CMS according your list:
Has to be .NET based
It's .net based, .NET Framework 2.0 or later
Prefer open source or on the inexpensive side
Free edition which can be used for commercial purposes is available, paid license starts at $750, source code is an option
Limited feature set (we don't need too many features and they make things harder to use)
Many built-in modules/features, anyway they can be easily disabled to keep the UI simple to use
Does need Active Directory integration and robust permissions
AD, Forms and Live Id! Integration
Should be focused on web standards and usability
UTF-8 Support including RTL languages, WAI Compliant, XHTML Compliant, XML, XHTML, HTML, XSLT, CSS.
Instant on-line demo or download available at:
http://www.kentico.com/Download.aspx