Hacker News new | past | comments | ask | show | jobs | submit login

This may seem silly, but I found the most difficult part of learning RoR was getting my development environment set up. I tried several times since 2005 to get started, but failed due to a sticking point that for some reason I couldn't get past. It wasn't until a friend with a bunch of RoR experience walked me through the setup of the black box of different parts to run a web app that I actually got it. Comparatively, coding, refactoring, implementing best practices is much easier and enjoyable.

If you view programming as a craft, having mentors/coaches/peers definitely helps you improve much faster.

There is nothing silly about that at all. I teach high school math and science, but I also sneak in an intro programming class whenever I can. Right now I am teaching students to set up dual-booting with ubuntu on our school district's windows laptops. They are loving it, but it reminds me how many little details you have to get right before you can even start programming. Setting up the environment is nontrivial if you have only ever used windows boxes before.

That said, students pick it up quickly, and are very satisfied with their new skills. I can't wait to get into actual programming next week.

One of the great things about growing up in the 80s was that virtually all computers booted into a BASIC interpreter as soon as you flipped the power switch, and presented you with a flashing cursor eagerly awaiting your program input.

Computers don't work like that today. Installation and configuration of various dependencies are a real challenge when learning.

This is especially true when trying to teach kids - we like to think they're all computer geniuses now, but really a lot of kids don't seem to have any idea of how to navigate a file system. They're hooked on installers.

Yeah, it's a bit of a nightmare at the moment, especially for a beginner.

You might be interested in Yehuda Katz's project, Tokaido.


Totally agree with your last point.

To your first point, I really wish people would make virtual machine images with dev environments already set up on them.

> I really wish people would make virtual machine images with dev environments already set up on them

I think this is actually often more of a problem in the long run, as it just pushes the learning of how RoR interfaces with the rest of the stack to later. If you're seeking to teach someone how logic, program control flow, and separation of concerns work (as the author did by abstracting the "grunge work" as he calls it), why not pick an environment a bit more bare-bones?

I see the merit in allowing someone to get something up and running rapidly, but I think they may miss important concepts when learning in an environment that favors convention over configuration.

Because the author explicitly wanted "not to waste his time on banal unrelated issues" except those directly related to the project at hand.

He's not missing important concepts but deferring important concepts to learn other important concepts that lead to progress today.

You end up paying back that deficit one step and one layer of abstraction at a time:

    Some of Brian's biggest forward mental leaps came when he took 
    a step back away from the day-to-day project grind, learned new 
    concepts in a course or from a book, and then thought about how to 
    apply them to SwearBuy.

It really depends entirely on what your goal is.

If your goal is to tinker with a new language, or a new tool, it would be really nice to start from a working example that you can fiddle with, rather than being stuck with the sometimes arduous task of configuration.

They did just that in the coursera course "Software Engineering for Software as a Service". A VM is available for download and as a rank amateur I found it a great way to dive in. https://www.coursera.org/saas/

modern Rails requires lots of configuration, convention and prerequisites.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact