Live data from Hacker News

Rails Is Not For Beginners

horsesaysinternet.com

61–70 of 79 posts

Re: Rails Is Not For Beginners

#62
post #48

It occurred to me while interviewing the other day--web development is not really for beginners anymore. To do web development without endangering customer passwords, data security and credit card numbers now takes very substantial knowledge, and it is knowledge that some beginners won't realize they need. If you don't understand how to prevent sql injection attacks, cross site scripting, why SSL by default for web a…

It never was for beginners. All those problems have been around since the web has, and beginners have been making insecure crap ever since the first perl cgis.

Re: Rails Is Not For Beginners

#65
I teach Rails a lot. I've ranted and raved for the last year how Rails 3 is much harder for a beginner to grasp than previous versions, but the things that make it difficult for the beginners are not specifically Rails itself. Usually the difficulties come from a few specific things:

First, it's the absolutely fragmented ecosystem, made up of everyone who has opinions on the best way to do Rails development. "You need this gem, and this gem, and ZOMG you're using that library? So last week! Use this one!"

Sure, it's funny to exaggerate that, but if you joined a community, you'd probably look around. A person who does daily work in Rails is going to have a preferred development stack. They may write tests with Rspec, they may use Cucumber. They may even use CoffeeScript. And they'll tell a newbie that they should too.

But a wide-eyed developer who thinks Rails will solve all his or her problems will get freaked out at all of the options available.

When I teach beginners, I don't teach RSpec or Cucumber, and I try to even avoid talking about Bundler. I stick with the core components of Rails. I stay on the happy path. Rails has all these hooks for experts that you can unravel after a few months (or years) of daily work. But a beginner can understand ActiveRecord, controllers, and views easily.

I love the Dreyfus Model. It basically says newbies don't need choices in the beginning. They need clear instruction, clear tutorials. Once they master those, they can move on to reading the docs, exploring the options, etc.

I've been pretty successful teaching Rails to folks who know how to program.

Where Rails falls flat on its face for the beginner is when the beginner doesn't know SQL or HTML. That's a whole different ballgame. Then something like Sinatra is a nice slow introduction.

Re: Rails Is Not For Beginners

#67
post #48

It occurred to me while interviewing the other day--web development is not really for beginners anymore. To do web development without endangering customer passwords, data security and credit card numbers now takes very substantial knowledge, and it is knowledge that some beginners won't realize they need. If you don't understand how to prevent sql injection attacks, cross site scripting, why SSL by default for web a…

It never was for beginners. All those problems have been around since the web has, and beginners have been making insecure crap ever since the first perl cgis.

Perhaps I'm dating myself a bit here, but there was a time when there was no such thing as an "e-commerce app" and no wi-fi to eavesdrop on. Black hat hacking has evolved also, so although some techniques have always been possible, new vectors have opened up over time as they are discovered and disseminated, and I would suggest the corresponding knowledge burden needed to enter the arms race for a developer is higher now. Also, the tools have evolved in such a way that the barrier to entry is lower and lower. For example, FireSheep.

Re: Rails Is Not For Beginners

#68
post #27

If you optimize a framework for beginners, you're optimizing for learnability. That's great for the first few days or even weeks of learning. But once you're past that, it's not so great. What you care more about is the usability of the thing once you know it. There are plenty of cases where learnability and usability are in conflict. Letting learnability win is a short-term relief. If you on the other hand optimize…

One of my favorite Alan Kay quotes: "Make simple things simple, and complex things possible." And the Albert Einstein quote everyone mangles: "A scientific theorem should be as simple as possible, but not simpler." It's a matter of finding the sweet spot where the system is easy enough to learn to be accessible, and sophisticated enough to be powerful. In terms of usability, I've generally been happy with where Rails falls on that spectrum. The real challenge with Rails is learning the codebase well enough to make effective contributions to the framework.

Re: Rails Is Not For Beginners

#69
post #8

I'm actually starting to think there's something to be said for letting each generation of programmers grow up simultaneously with a hot new framework. It encourages learning through experimentation, lets them make the mistakes we all have to make, helps spread new ideas unbounded by the received wisdom (many of which will be stupid, some will have important influence for decades to come). In the end, you get a bunch…

[deleted]

Re: Rails Is Not For Beginners

#70
post #59

Earlier quoted context omitted.

I personally went from PHP > RUBY > Ruby(cgi) > Sinatra > Rails, And i think the journey was great because sometimes we need to learn and work in really bad technologies to appreciate something as good as rails. We should strive to make the learning curve more enjoyable rather than making it beginner friendly, The only way i know of doing that is to show evolution of technologies, there merits and de-merits and why o…

To be fair, you went from PHP > Ruby. You can't really call a framework a language.

True PHP is weird A Language + Framework in one. Or you can call it a webDSL if you want.
Post reply on HN