A content Management System (CMS) is a website platform that allows publishing, editing , modifying and adding content from the website administration backend.
It provides a mechanism with which anyone can create and maintain a website. With just a little effort anyone can build a website with any of the most popular CMS platforms today, such as Joomla, Wordpress and Drupal.
A CMS platform is better than having your website programmed from scratch because it gives you the tools to administer and manage your website out of the box. Just imagine how much you would have to pay to have those functionalities programmed from scratch.
CMS platforms also use extensions (such as modules and plugins) to provide extra functionality, such as mailing lists, news, slideshows, ecommerce etc. which are ready made and you just need to install them to be able to use their functionalities.
Most extensions are free though some are commercial, but once you purchase them you can usually reuse them, and in any case, even if they are commercial they cost much less if you had the same functionality programmed from scratch.
For the look and feel of of a CMS based website, templates are used (joomla) or themes (wordpress).
The way you make these templates / themes depends on the CMS in question. As far as Joomla is concerned, with the right joomla training, for example, it is enough to just know HTML and CSS to be able to turn any psd to joomla, while wordpress requires PHP programming knowledge.
There are also many templates / themes already made available for use, both for Joomla and Wordpress, so you can really build a powerful website all the way without even knowing HTML / CSS. Of course, there are several drawbacks to using templates and themes that are available for everyone.
The two main ones are:
1) It is not professional, since anyone can use that same template / theme.
2) It probably won’t allow you to do everything you wanted with it, or apply the same design to everything on your website (for example if you install a new extension), since it wasn’t tailor-made for your needs.
CMS based websites cost much less and take much less time to build.
They are useful for programmers as well, since the extensions available allow them to dedicate their time to writing extensions that don’t exist, or improve the ones they believe need improving. Many programmers also make money by selling their commercial extensions for specific CMS platforms.
The 2 most popular CMS platforms, Joomla and Wordpress, have many extensions available. Joomla has over 9.500 extensions available, while Wordpress has 20,500 extensions.
While Wordpress obviously has many more extensions, Joomla is much more organized and allows the user to create custom websites (convert their PSD designs to that specific platform) more more easily than Wordpress, which is why many people choose Joomla over Wordpress.