views:

1093

answers:

6
+5  Q: 

Framework or CMS?

I am learning web development and I'm very serious about trying to find a career in it. That being said, I have consistently been told that "doing" is the best way to learn and now I have a vision for a site that I would like to create. I have spent some time with learning frameworks to find a preference, such as Rails, Django, and .NET. I would like to build something unique and also learn as much as I can while doing so. Should I go the framework route, customized CMS (Drupal/Wordpress etc..) or work from scratch?

+1  A: 

It really depends on what you're trying to build. What are you trying to build? I don't believe you should use a framework until you have at least a basic understanding of the language in question.

Then again, I had an easier time learning Ruby and Python than I did learning Drupal.
Chuck
This would be social community-driven site with a voting component. Thanks for your help, it's much appreciated.
Mackristo
Well something like that can be had 'right out of the box' So from a learning standpoint I would likely go with a framework, but also understand that its much easier to use a framework to its fullest potential if you already have a rather good understanding of the language.
Chuck, having said that, and having experience with both Ruby/Python and Drupal; what is your preference?
Mackristo
I prefer to use WordPress for relatively simple CMS sites and bang out something myself in Ruby on Rails if I want something sophisticated. That's my personal preference, though. A lot of people like Python, and a lot of people would tell me I'm an idiot for not using a premade CMS like Drupal.
Chuck
+3  A: 

If you are learning, go the framework route as it will give you an idea of how it all works. After getting an idea, you can try implementing your ideas on top of the framework, or maybe invent your own.

Alan Haggai Alavi
+6  A: 

Write the entire site from scratch.

Looking at your code a year from now and seeing all the mistakes that you've made is going to be priceless as a learning experience.

Don't be afraid of screwing something up because your not crutching yourself with a framework. You will make mistakes and learn from them much faster than any tutorial site or technology blog.

jfar
+3  A: 

G'day it depends what you are trying to build. I come from a Rails background in regards to web development but recently I have been playing around with Wordpress and I've found that really good for putting together small websites quickly and easily. I've found it really nice to work with and there are lots of plugins etc which make things very easy. Also remember if you are using Wordpress it doesn't have to look like your standard blog - http://www.ndesign-studio.com/blog/wordpress/best-wordpress-sites/comment-page-1/ .

But if you were going to be building something big then I would recommend a Framework as it gives you a lot more freedom but you may have to invest a lot more time. A bonus of the Framework path is that you will more than likely learn a lot more and get a good understanding of how things work.

Tim
+8  A: 

I believe it also heavily depends on what you're trying to accomplish. IMHO a huge part of being a software developer or a web developer is picking the right tool for the job.

CMS tools are going to get you going quick. They'll provide you with some nice basic functionality but they are also going to restrict what you can do. If you're building a shopping cart, blog, or something that has very standard patterns- then you'll likely be happy. Additionally if you want non-developers changing the site a CMS would be a good choice. Their UIs are typically acceptable for everyday users.

That said, a framework has its place. If it is just you or you have unique requirements, you may find that you spend way too much time customizing a CMS suite to get what you could have done quickly in .NET , Rails, Django, Symphony, etc...

Probably most important; if you're educating yourself then you should be learning how to write software. A CMS isn't going to help much with things like design patterns / best practices / learning how to learn. Spend your time building a foundation from where you can easily use a CMS or a framework and decide which is the correct choice.

Bill
A: 

I suggest to work from scratch, because it is very lengthy and difficult job, so there is much more to learn.

Even though if you end up in developing your site using some CMS, but what have learned (while trying to make from scratch) will help you understand how CMS and frameworks works and to customise CMS according to your requirements .

Sharique