CMS or Coding, im confused :(

Hi Guys, I’ve been studying web development for the past few months, mostly just the front end so far. My Dream is to freelance websites for small businesses as i travel the globe.

However one thing I’ve came across that has made me wonder whether I’m learning the correct stuff are CMS sites.

Obviously for a customer to update their website easily, im assuming they will need a CMS site, such as Word press or Joomla.

Because of this its made me think is learning to code going to really be the best option for my dream?

Would i be better off learning how to create websites through a CMS? or will actually knowing code improve my skills.

I suddenly feel a bit lost, and am concerned I’ive been wasting my time.

I hope you guys can give me a little bit of advice.

Thanks, Adam

I am at the very same situation with you @adamgamble, so i asked it here roughly around last month… Ive got good feedbacks and one thing that inspires and encourages me the most is knowing that those CMS, Wordpress, and joomla are as well created with codes… What I mean is, They are also made with raw codes, and if they can, why cant you? The feeling of creating something from scratch gives you more happiness than just using others’! I know you feel that as well when you use frameworks or libraries when you can do it with raw stuffs…

Im am a non-library lover web developer. Id rather do things with lots of sweat using raw stuffs over using libraries which are all good, but may loose your grip with the real thing(THIS IS BASED ON MY OWN OPINION :slightly_smiling_face: We all ahve our own opinions.!)…

Now, to sum it all up, If you started studying with codes, which you probably already do, dont stop it, learn further…Someday, you will be creating your own wordpress or JOOMLA(FOR SURE!!)… Im just 13 but, hopefully you will heed my advices!!

Nowadays in my opinion the CMS with pre writed templates the easy way to make website. For this no one need to be web developer just a normal user on the net. If you want improve your skills then you try to make a websites from scratch not that easy as connect to a database and login and install a theme and we are ready!!!

The strongest developers know both. The needs of the client/product owner determine everything. Do they need a static page that displays a menu for their butcher store? Make that. Do they want to advertise by putting out content (monthly blog on DIY projects for a hardware store that let you order in-store everything you need in a sidebar)? Sounds like a CMS might be helpful. Do they want an app that keeps track of their workouts with a robust desktop data viewing experience? Probably need to employ a full-stack that has no CMS. My own story from yesterday might be useful to you. I really felt like my learning was paying off.

So, the app I’m looking to develop will use React and React Native as the frontend, and a headless Drupal CMS as the backend. This allows me to granularly control the look/UI, speed, and UX of the app on mobile and desktop, since the standard “website” exoerience isn’t conducive for the product I wish to build. In order to do it well and by myself, I still needed to learn about networking/IT (VPS, Linux, web servers like apache, databases, DNS), C-type and markup languages (Javascript, PHP and XML). I know it may sound like a lot, but once you know HTML and one C-type language like Javascript, it’s like translating Italian knowledge into Spanish, and the more sysadmin stuff is well-documented and can be learned by standing up and trying to break your own Linux install.

What I did yesterday:
I hunted down and modified a plugin for the CKeditor module that is now part of the drupal core to allow me specify the special characters that the toolbar buttons showed so that my content creators could write scientific and mathematic special characters in-line without having to rely on LaTeX formulas all the time. This required me to use regular expressions (re-learned at FCC) in macros for Notepad++ to modify a human-readable list of characters

//NOTE: Do the following "regex string" => "replacement string" replace alls in order:
//  ^//.*$           => ""       remove empty and commented lines.
//  (\r\n){2,}       => \r\n     remove all double newlines
//  ^(\r\n)|(\r\n)$  => ""       remove leading and trailing newlines
//  (\w+)\r\n|(\w+)$ => &\1\2;\\n  need to replace line ending with string "\n"
//  \\n$             => "" 


into this target string:

α\nβ\nγ\nδ ...

To do this efficiently, i hunted down the macro file, and instead of re-recording the macro for the 18th time, I just edited the source code until it worked on all the edge cases that kept arising.

To figure out what the target string should look like, I had to read the PHP in which the plugin was written. You don’t have to roll your own software from scratch to be a web dev (and often that’s not time- or cost-effective), but you do have be a superuser of software, and that means being able to read and modify source code.

1 Like

Hey Adam!

Pretty much, unless they take you on as a webmaster and have you do all the updates, then technically you could probably get away with working with your own raw code.

One plus side is there are a ton of different CMSs out there to choose from based on how much the client needs to update. If it’s only a few specific areas, something like CouchCMS which lets you assign editable areas on a static website would be all you need. If you need something more robust that’s where you get into WordPress, Joomla, Drupal, etc.

As for whether you should learn to code a site or build them through a CMS, why not do both?

Let me give you a example from my own experience. So, my favorite CMS to work with is WP. I like the interface, I like how complex or simple I can get with it when it comes to making a website, the plugin library is massive, really the sky’s the limit when you’re using it.

Now, typically what I’ll do is, I’ll build all the main pages of the website from scratch with just plain old html/css/js. At this point I’m just looking to nail down the look and feel and the responsiveness of it. Then I’ll take those pages and convert them into templates for a custom WP theme. Eventually you get to the point that while you’re coding the html/css prototype of the site, you’re already thinking about how you’re going to convert it with WP’s php.

What’s nice about this approach is you can then take on clients who have static websites already and make them manageable with your CMS of choice. It’s another skill-set you’ll have in your pocket over a developer who doesn’t.

Think of it this way, you’ll know how to code a static site from scratch, you’ll know how to convert static sites for a CMS, you’ll know how to edit and modify already built themes/templates. Look how big and varied that makes your client pool. And more clients equals more money.

Here’s the thing, any CMS is just a tool. It’s like using Bootstrap (or any framework really) to speed up your production time. But in this case this specific tool helps you and the client with managing their content. Does it replace the knowledge and experience you’ll gain from straight up coding? Absolutely not. But it’s not supposed to you know? It’s something that is there to be utilized if you need it.

1 Like