If you've never taught beginners how to program, then you should obsessively follow Zed's advice...I just cringe whenever I see even a mention of "git" or any other development tool in the context of beginners coding.
I can only say that it is nearly impossible to underestimate the technical unfamiliarity of this audience. Opening the command line terminal is bewildering to them. Not understanding why 'ls' worked a minute ago but not now (it's because they're in the interactive interpreter) causes rage.
You may think you're enticing the beginner by teasing all the cool things they'll eventually get into, but it ends up being a disservice. They're already entering a world of confusion and frustration, no need to add orthogonal concepts to the mix.
I agree in principle. However, sometimes it is useful to bundle things together if that's how things work in the real world, like Ruby on Rails + Github + Heroku in a RoR book. Then again, it would be counter-productive to add in totally irrelevant things like vim or emacs.
I vividly remember my first foray into real programming a year and half ago. Trust me, just getting Python to install and compile was lesson enough. It was months before I learned how to use the Windows command line. To a total beginner, especially one who is only familiar with Windows, path variables and stuff like that is absolutely frightening. It also doesn't help that the documentation for many programs is Linux-only.
If you can't get someone started with the following steps:
1- Go to website
2- Download and press next until the prompt says "Installation Finished."
3- Click here to create a file and save the file on your desktop.
4- Press "Run."
5- See "Hello, World."
You already made it too damn difficult for week one.
All that other stuff is secondary. Getting the words "Hello, World!" (much less getting the screen to show 1 through 10 without dropping into an infinite loop) to show up w/o supervising the student is a huge victory. I can't tell you how long it took me to understand while and for loops, but it wasn't one or two days.
Getting someone set up and running with a semi-significant website is an unrealistic goal to accomplish within a few months... well, if you want that site to be reasonably coded, that is.
People with lots of experience forget that the basics, for a total beginner and near technophobe (as I was 18 months ago), is very difficult. The real "oh, crap" moment came for me when I was first exposed to Emacs. I complained that, in today's day and age, it was utterly fucked-up that some stupid class would suggest you don't use a mouse. I was told that that statement was probably the biggest indicator of my newbie status than all the horrid code I could demonstrate up to that point. Just remember that people aren't ready to learn a bunch of new tools and they aren't ready to give up familiar tools at the start.
I disagree. Adding github + heroku to a Rails book is a mistake. Too much time is spent setting up things you don't really need to learn how to code with Rails. Its a big drag.
Imagine if at school you were taught how to write cursive while also being taught how to hold the pencil. Shit gets complicated too fast.
It depends on your goals and your audience. The Ruby on Rails Tutorial teaches web development to those who already have some programming experience, and in this context including Git and Heroku is, for many readers, a big win. True, the #1 complaint about the tutorial is that it includes so much more than just Rails, but that's also the #1 compliment.
I like your book. Have read about a 100 times. Its good. But its not perfectly marketed. The title does not fit the book. You are not teaching Ruby on Rails per se, but web development and deployment with Ruby on Rails. There is a difference between the two. Imagine a beginner, who has no experience with actual web development, but wants to try out RoR to find out what the big fuss is. He/she finds your book, and starts reading it. Only to find out that he/she has to learn about n different things before learning how to include a field in a model. Its frustrating. I know because I went through it. Even though I knew git/heroku deployment beforehand, skipping over those subjects proved difficult.
Though you do make a good point in your first sentence. It does depend on the goals and the audience. But I think your audience is a bit too widespread. People who have some programming experience are too wide of a net. I think if it were sold as a book for people who havea bit of web development experience then your conversion rate would be higher (from free reader to paying customer).
Now, I'm not knocking on your accomplishments. My approach is merely from the business perspective of marketing you book and videos. Have you tested other approaches? If so, may you shed some light? I used to market/sell books on the web, and find it fascinating. If you wish to continue this conversation through email mine is in my profile.
If I'm teaching someone rails deployment and making their first rails app, then maybe but that's a whole lot of indoctrination there. You have to pick, but to me you're basically just making customers not programmers.
If I'm teaching someone who doesn't know how a computer loops in a while loop or what a variable is, then you're advice is counter productive. None of that is useful for them and just gets in the way of what they need. At best you're just impressing them with a flashy demo that they may not even really understand.
Yes, because clearly the only way to see a list of files is by typing something in a command prompt, and beginners should install lots of apps to handle different edge cases so they can't program on their own.