

Is learning a framework harder than to learn programming? - nicolasd

I learned C/C++, Java, SQL and know how most common patterns work.<p>But I've never really used a framework before and a few months ago I wanted to work with rails. But for me it was harder than learning about 4 star pointers or something like that.<p>Especially if you programmed nearly everything before by yourself it's hard to get comfort with the "magic" behind rails.<p>I tried to create some small webapps with rails to get in touch with it, but to be honest: without Ryan Bates awesome railscasts I can't write a single line of code!<p>How did you learn to work with frameworks like rails or django?
Is learning a framework harder than learning programming?
======
dutchrapley
It depends on context. If you have never built a web application, it can be
very difficult task grasping what exactly Rails does for you (even it your are
experienced in programming languages). For someone who has been building web
applications for years, the it may be easier for that person to understand the
pain points that Rails solves. Since Rails is domain specific to web
development, you're not necessarily learning programming, but really how to
apply programming to web development based on the framework's conventions. The
bottom line is that you're learning something new. How hard the learning is
depends on the foundation you're currently have that you can build upon.
Having a foundation in a programming language doesn't necessarily mean that
you're poised get up and running quickly with a web framework if you've never
done web development.

The art of building web applications today, in itself, is much more complex
than it was 10 years ago - mostly due to the every growing selection of tools
that make it easier for experienced developers to build web applications. This
in turn can make web development seem daunting.

Personally, when I started learning Rails, I had a foundation of working with
rudimentary frameworks in other languages. When I discovered Rails, it did
quiet a bit of what those other frameworks accomplished and then some. Then it
took it further and pushed the envelope (i.e. REST support for urls and
routing, more recently including CoffeeScript and the Asset Pipeline).

While there's a ton of learning resources out there for learning Rails, it can
be really hard to put them together and figure out what in what order you need
to learn new concepts.

That being said, I think The Flatiron School did an excellent job getting
together a list of learning resources: <http://prework.flatironschool.com/> \-
Just a heads up that it recommends CodeSchool and Tree house which are
subscription services. If you're serious about learning, I'd consider the
subscription cost to be a small investment.

The one resource that Flatiron Prework didn't mention is the Rails Tuturial:
<http://ruby.railstutorial.org/ruby-on-rails-tutorial-book>

If you really want to dive into ruby, I'd recommend The Well Ground Rubyist by
David Black.

~~~
nicolasd
Thank you for the links. I know Michael Hartl's ruby on rails tutorial, and
it's nice written, but when I read programming books and come to parts like
data-structures, then I think - "Oh no, I already know that stuff" and skip
this part. But in this section you really learn about string handling… I
probably should just read everything and keep on learning..

~~~
dutchrapley
Very true. While you may know about strings, integers, floats, and arrays,
it's always good to read about them in the context of a new language you're
learning. The Well Grounded Rubyist is riddled with useful tidbits. The
predecessor to that book was Ruby for Rails (also by David Black). Each time I
read the book, I picked up new information, even the third time around.

When we learn, we learn by applying new material to what we already know.
Hence foundations and context. When you read, especially something like a book
on programming, you're not going to absorb it all. Also, programming books
shouldn't be treated as one and done reading. Each time you read, I guarantee
something will pop out based on previously acquired knowledge.

------
Millennium
Is Rails really all you're learning? From your post, it sounds like you're
also learning Ruby, which is a very different language from the ones you list:
the syntax and common idioms differ, of course, but in some ways the paradigm
also differs. Django wouldn't be any easier, because and the things I said
about Ruby apply to Python as well.

End result: in your particular case, "learning the framework" and "learning to
program" amount to basically the same thing. What makes it harder this time,
as opposed to the first time you learned to program, is that last time you had
no preconceived notions. Now you do -that's inevitable- but only some of those
notions will apply in this new way of programming. This would be just as true
if you went in the other direction; you haven't learned things in the "wrong"
order or anything like that. A "wrong" order probably doesn't even exist.

The good news is that you're not alone. This happens to everyone when they
first hit something wildly different from the way they first learned to
program. As you do more of them, it gets easier, but the first big wall is
always a shock. Good luck getting over the wall.

~~~
nicolasd
Thank you, I always thought that learning frameworks shouldn't be hard for
programmers and was uncertain about my skills. But it's good to see, that I'm
not the only one, so I have hope ;)

------
redspark
Have you studied the documentation for rails and how/why it does things the
way it does. Have you become proficient with Ruby?

Trying to learn an MVC framework without understanding the underlying
architecture is definitely a large task. Trying to do that without a firm
understanding of the nuances of the programming language used is even harder.

------
noptic
It really depends on the frameworks documentation.

It does not matter if you want to learn framework a language or how to use a
products API.

What really matters is if there is a good a documentation and some tutorials
to get you started.

I often settle for the sollution with less features but a better usabilty.

------
govindreddy
yes indeed.No where and nobody explains magic behind frameworks.I agree that
it is very difficult to learn framework.I think many develops their apps
without many things without any understanding.

