6

Long time back, when I was reading my introductory programming books on (Basic, Pascal, C/C++), one thing that was emphasized is you can't become a professional programmer over night or over few weeks. It takes time to grasp programming and to apply it for solving problems and developing applications.

Now, once someone has the grasp of basic programming, the person can quickly adapt to new technologies. In recent times, the use of frameworks in application development is prevalent. Though the learning curve for framework is way smaller than that of programming, even so they too would require some time to learn. Of course, different frameworks have different complexity, hence the learning curve would vary greatly.

My question is, should one start to do commercial projects while they are learning a particular framework, or should a demo/learning project be done first to get the hang the framework and then proceed onto real projects?

4 Answers 4

1

You should definitely do a bit of background research before you consider using a particular framework. For starters, looking into the documentation about the kind of problems the framework claims it can solve, ask people about their experience with this framework on places like stackexchange, read the reviews of the people who have used this framework. If its possible and the project's open sourced, check the download count of the project -- the more the merrier in this case.

When you are done with all of that, start digging in deeper. Look into the fine print like the minimum compiler and OS versions required to use this framework, dependencies on other frameworks (if any) that this framework might have, performance limitations etc.

Doing a small project and investing your time into this framework comes after all of these.

2
  • So in summary, you would say one should never start to use a framework for professional work before having a grasp of it? Dec 6, 2010 at 17:58
  • 1
    @Shamim I would definitely recommend a feasibility study on the framework before playing around with it. It'd be a sheer waste of time to learn the hard way that the framework's great but not for the purpose you intended to use it for.
    – Fanatic23
    Dec 6, 2010 at 18:02
12

When one understands the need of a framework.

5
  • 7
    Oooommmmmmmmmmm
    – BlackICE
    Dec 6, 2010 at 17:14
  • @David: Ha haaa, best laugh I've had today... :) Dec 6, 2010 at 17:17
  • 1
    Maybe, I should have put grasshopper at the end of it.
    – johnny
    Dec 6, 2010 at 17:24
  • 1
    The zen is strong with that one. Dec 6, 2010 at 17:28
  • 4
    When you can snatch this methodology from my hand, you will be ready. Dec 6, 2010 at 17:36
4

The most logical thing to do is to start using a framework when you feel the pain that the framework is supposed to reduce.

So if you want to do Java web programming, I would start with Servlets and JSP, and use straight JDBC to connect to the database.

It won't be long until you are tired of created repetitive Servlets, and then you know that you should learn Spring MVC or Struts 2. And when the JDBC is causing you pain, start using Hibernate.

You are right that it is easier to learn a framework than a language, but I think that it can be very demoralizing to try to learn a framework that solves problems that you have never experienced.

2
  • But by the time I start to feel the pain, is it safe to straight away jump into using framework without learning to use them in some demo work? Dec 6, 2010 at 17:57
  • That's going to be a matter of personal preference. I would go through a tutorial or two first. The ideal situation is to be working on a team with someone experienced in the framework. Dec 6, 2010 at 20:38
1

I think you have to use a framework with non-trivial work in order to really understand it. Of course, this will mean you go outside the lines at some points and you may have some refactoring to do later. If you have a real project, and you know which framework you are planning to use - why wait?

2
  • If I know how to use the framework, I wont surely wait. But if I have never used it, should I go into the risk of doing real work using it? Dec 6, 2010 at 18:00
  • 1
    Worst case, you lose some time with "real work". If you do "fake work" its all wasted time to begin with. Unless you feel you could actually learn better from some particular "fake work" then it doesn't make any sense.
    – Jeremy
    Dec 6, 2010 at 18:02

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