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