Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm learning Python, and I wanted to advance my skills a bit further so I decided to learn django, then moved on to Flask before realizing that I was having difficulties understanding the very concept of web-frameworks. I don't have any ideas for a website yet so do you still advise me to continue learning a web framework?

share|improve this question

closed as off-topic by gnat, MichaelT, BЈовић, Dan Pichelman, GlenH7 Jul 21 '13 at 17:18

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – gnat, Community, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

Why would you need to learn a Web framework? Are you interested in getting a job in Web development? If not, do something that you like (Mobile/Desktop/Game, etc. development). – ierax Mar 27 '11 at 18:53
"very concept of web-frameworks"? It's quite a large and complex subject. We can't begin to guess what confuses you. TCP/IP? HTTP? HTML? Can you be specific? Can you provide a link or a quote that specifically confuses you? – S.Lott Mar 27 '11 at 19:30
@S.Lott- databases, views, and all those stuff... – Samrat Man Singh Mar 27 '11 at 19:36

When asked

Can you provide a link or a quote that specifically confuses you? – S.Lott

you answered

databases, views, and all those stuff...

I only started playing with frameworks after I had done a fair amount of development without a framework. I can grok what the framework is doing for me because I know that "view" refers to something in the Model-View Controller design pattern. I also know at a strong level that when MVC is mapped onto a traditional web application "database" provides the model -- a persistent representation of all the knowledge/data associated with that web app.

But it sounds like from this quote you might not really be interested in web stuff:

I don't have any ideas for a website yet so do you still advise me to continue learning a web framework?

I only learned the stuff above through spending lots of time digging into these areas and I'm certainly not an expert. There are a lot of subtopics under "web programming", databases being only one. Each subtopic can take years to become proficient in and a lifetime to master. That's not meant to discourage you, it just means that if its something you truly care about you'll have to dedicate significant time into digging under the layers abstractions that frameworks and tools (even databases) let you build upon. Gradually after lots of practice the instinctual feel for the stuff will slowly settle into your bones. You might not retain specific knowledge, but you begin to understand it at a somewhat instinctual level. Some of us find this process engaging and fun as we slowly form a gestalt out of these bits of knowledge up and down the layers of abstraction.

Then again maybe you'd be happier sinking your teeth into any number of other kinds of other human endeavors that are equally as difficult. I recommended finding what you think is interesting/fun and dedicating yourself to that rather then learning "just because". Picking what is fun to you changes it from a chore to something more enjoyable.

share|improve this answer

Yes, you should learn a web framework. E.g. Flask is dead simple and very useful, it's definitely worth knowing.

But you can't learn a tool that you're not using. Unless you're trying to build a web site (even a simplest one), you're not 'getting it'. You don't see the problems, so you can't see why solutions exist; you don't have a question so you have no use for an answer.

Being at least slightly experienced in web site building is good for every programmer, for Web isn't going to disappear soon. Once you have an idea of a website, even a dumbest one, try implementing it. You don't need to care about actually deploying the site, let it first run reliably on localhost. Then you'll see how much Flask helps you, compared to raw SimpleHTTPServer :)

share|improve this answer
+1 - learning any skill falls under the category of "use it or lose it" - you need to have a reason (project) in mind to give you direction. – sunwukung Mar 31 '11 at 9:04

I recommend web2py for start, it is easy to learn yet very powerful web framework. Check out their homepage web2py dot com but as a teaser checkout these videos created by Massimo Di Pierro

Start with this as a teaser ->

share|improve this answer
A link to Web2py would help as well ;-) – Ivo Flipse Mar 30 '11 at 15:35
yes but my reputation allowed only two links in the answer :) so I had to decide wich one I will change – sipiatti Apr 1 '11 at 5:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.