Learning programming through content management systems (CMS)
CMS – Content Management Systems. Most developers in their early stages of their careers who are more into writing their own code usually hate CMS. As a new developer, I am writing to contradict this perspective.
Before getting into the part why developers hate CMS let me speak a bit about why CMS are preferred when it comes to building a website:
- Fast development. Your website can be ready in much less time than what it would take to develop it from scratch
- Maintenance of static content is very easy. Admin-> edit page-> save and done. This is very helpful when your client wants the ability to change the content of their site.
- Technical knowledge requirement can be low (although I can argue against myself on that point)
Of course there are many more reasons why CMS is preferred but this generally covers it.
I would now like to mention a few reasons why developers usually hate to work on CMS. Usually its to do with focusing on implementing your own logic. Developers sometimes like to take pride on being technically sound – and so why work on someone else’s code when they think they can create a similar system, but faster.
I don’t think the fast argument always holds but here is the other side of the coin:
- Does is really require less amount of technical knowledge? Well when it comes to customising a module/plugin or creating your own then you need to be technically sound. When the time comes to get your hands dirty you have to jump into the code and understand it. You have to modify, sometimes substantially, to suit your needs. Here you need to apply more of your mind than what you would have to while writing your own code from scratch. You come across other people’s quality of code. You come to know about new logic. When you understand the code, you learn how to code. Because the code you are looking is written and tested by experienced programmers and testers. More often than not, as a new developer, that is really good quality code you have access to.
- The other part is modules – you can easily find the modules for almost everything you want to do. But as the modules are written in a generalised manner you may find yourself in a situation where your entire requirement may not be fulfilled by any of the available modules. What do you do then? Again you need to be technically skilled and sound to understand the module by jumping into its code and modifying it to the way you want it to work.
Generally you gain:
- You come across the quality code.
- You come across logic for which you might have a different approach. This can help you think how the one you came across is better than yours or why yours may be better.
- You learn good coding style.
- You come to know why and how to make the code modular.
- You see the importance of following a coding style, the importance of comments (which most you will admit that you skip).
- There is greater satisfaction of tackling a problem.
- Time (usually you will spend less) and Efficiency.