These days everyone wants a website. Moreover, everyone wants it for free (or almost for free) and with an ability to administer it him/herself. It would be easy if everyone had enough technical knowledge and could develop own application. But, since it's not the case there is a high demand for tools that allow business users to publish and administer content online without having developer skills. The set of such tools called Content Management System or more commonly known as the above term's abbreviation CMS.
CMS has a long history, but we are mostly concerned about what they are today. And today CMS is a combination of a) piece of software that is usually referred as "Core"; and b) numerous add-ons to the Core usually referred as plugins, extensions and modules. Core is something that is developed by the main vendor (i.e. WordPress, Joomla!, Drupal, etc.) and add-ons are smaller softwares that extend functionality of the Core and are developed by community and/or 3-rd party organizations. This architecture often called "Modular". Modular CMSs are usually open sources to ease extension but some are not. Some vendors do not share the code and develop extensions themselves. In this article we will focus on open source solutions as they have more value to community. To people like you and me.
Alright, lets get down to main points:
- The first thing to understand is that despite the fact CMS does a lot to minimize technical knowledge you have to have, you still need some. And amount of this "some" depends on selected CMS. For this reason the first thing you need to know is how much knowledge and experience you have in technologies used by CMS. That's what your primary choice should be based on. For example, if you are considering Joomla and Drupal you need to know that they both are based on PHP and require basic HTML skills. Drupal will require more knowledge in these technologies but will give you more flexibility. On other hand Joomla requirements are less but limitations are more. Understanding this you can estimate learning curve needed to use each CMS.
- Second important thing to know is the process of building a CMS-based website. This process begins with installation of a Core and then followed by adding plugins depending on the website you want to have. For example, if you need an online store you will install CMS core first (usually it is very easy and well documented) and then eCommerce plugin along with its dependencies. Choice of the plugins often depends on reviews and ratings from other users. Core and plugins can be downloaded from CMS's website. Always test plugins on your development machine before using on live server!
- Next point is about knowing difference between CMS front-end and back-end (business users often refer to them as website and website administration interface). Back-end is used to manage content. Content owner(s) and editor(s) are admins of the website. They create, edit, publish and delete content. Front-end is a website seen by public. By people referred as users. They see content prepared and published by admins (however, sometimes users also can manage content, like in Wikis). Both users and admins can have accounts on the website. The difference is that admins have much more access permissions. It is common to use different designs/templates for front-end and back-end as they meant for different uses.
- One more important thing is that you have to know how to backup and restore your website from the very beginning. This is required to mitigate risk of using 3-rd party plugins that may not integrate into your setup correctly or even worse - can crash the whole application. Also think about maintenance of the website. You have to regularly update and patch your CMS and all its plugins. What if you have hundreds of them? This means you will continuously do updates to files and database and have to be ready to revert.
- The most recognized and well maintained open source CMSs are: WordPress, Joomla and Drupal.
Of course, these are very high-level tips, but hopefully they will help you to answer some of your questions. You can read more on official website of chosen CMS and on its forum.