Since you mentioned that your goal is to learn all aspects of web application development, I'd recommend starting with no framework and no CMS for a while (if you haven't already). I think it helps to first understand what's going on at a lower level so that you can understand the problems that a framework is trying to solve by doing things the hard way first. For instance, if someone has always used Django models for interacting with databases, they might not be proficient at writing optimized SQL statements and joins or how to use MySQL from the command line. These skills come in handy since you will not always be working on code that you wrote yourself, you might not always be able to use your framework of choice, and it's also useful in case you ever work on other types of software like games or desktop applications that use a database.

Drupal should enable you to develop most types of sites since you can write modules to do just about anything. There are plenty of companies that just do Drupal development. However, Drupal changes quickly and sometimes it can be a pain to upgrade sites if you are relying on outdated modules.

Your framework choice largely depends on what programming language you would like to use.

If you are using Python, the main choices are Django, Pylons, and webpy. I've been using Django a lot lately and I've been happy with it. The online documentation is great, there are many reusable apps already developed that you can plug in to your project, and there are only a few books you need to read. Practical Django Projects, Pro Django, and the free book at http://www.djangobook.com cover just about everything you need to know. Django also has bundled applications for admin interfaces, flat pages, authorizations, comments, and even support for GIS applications and spatial databases.

If you are using Ruby, you'll most likely use Rails, but there are also mini-frameworks like Sinatra. Rails 3 should be released soon, and many Rails books and tutorials have outdated material now.

For PHP, there is CodeIgniter and its recent fork Kohana, which are easy to learn and are more lightweight. From the benchmarks I've seen, these run faster than CakePHP (which borrows most of its conventions from Ruby on Rails) and Symfony.

The most important thing to do is to not get overwhelmed by all the choices. You can find thousands of articles on why X is the best or why Y sucks, but the important thing to do is to pick something and start building as soon as possible. I've sometimes wasted too much time trying to make a decision looking for the perfect tool, when none of them are perfect, but they will all get the job done.

- Larry

On Jan 14, 2010 10:34am, Jamil Lawrence <[email protected]> wrote:

Good morning Refresh,

I'm an aspiring web applications developer and I'm curious as to everyone's thoughts on which technology would help me to learn all aspects of web applications. I lean towards back-end stuff, but considering I've got very little experience in any area, I consider it important to get a solid foundation in all areas.


By CMS, I'm referring to technologies such as Drupal, Joomla, Wordpress, etc. By Frameworks, I am referring to CakePHP, Symphony, etc. I know each has it promoters and detractors. I have heard the opinion that CMS technologies obscure much of the coding - you simply input content, classify it an article or whatever, add a few modules, and that's it. The end result may be the same with both technologies; you get a working web application. However if you have to modify your app's functionality, a CMS may limit you on what you can do, or even worse, limit your imagination about what's possible because your so used to working within the confines of the CMS. The counter argument to this is that if you know exactly what you're looking for, it will faster and simpler to implement your app with a CMS than a Framework.


Again, these are opinions that I have heard and can neither confirm nor deny. I would guess the best method to answer each question is through personal experience, but I believe Refreshers probably have experience with both. So I ask, which do recommend learning with?


Thanks,



-Jamil
-- 
Our Web site: http://www.RefreshAustin.org/

You received this message because you are subscribed to the Google Groups 
"Refresh Austin" group.

[ Posting ]
To post to this group, send email to [email protected]
Job-related postings should follow http://tr.im/refreshaustinjobspolicy
We do not accept job posts from recruiters.

[ Unsubscribe ]
To unsubscribe from this group, send email to 
[email protected]

[ More Info ]
For more options, visit this group at 
http://groups.google.com/group/Refresh-Austin

Reply via email to