Ada-Developers-Academy / LessonPlanning

19 stars 20 forks source link

Ruby/RVM installation notes #4

Open nanoxd opened 11 years ago

nanoxd commented 11 years ago

Start by installing the following software. Each of these are easy one-click installers:

Xcode Brew Textmate or Sublime TODO: Decide which

Brew should not be considered as a one-click installer until after they have installed CLI Tools. It should also go in more detail to teach/verify installation procedures (e.g. brew doctor to verify paths are set, brew install git to teach syntax)

Text Editor: I think Sublime might be a better fit due to it's unlimited free-trial, stable code base (less updates), and extensibility.

zspencer commented 11 years ago

It's also important to note that Xcode requires you to go in and manually instal the command line tools after you've installed XCode, and XCodes is not available for OS X 10.6 or older.

On Wed, Sep 18, 2013 at 7:03 AM, Fernando Paredes notifications@github.comwrote:

Start by installing the following software. Each of these are easy one-click installers:

Xcode Brew Textmate or Sublime TODO: Decide which

Brew should not be considered as a one-click installer until after they have installed CLI Tools. It should also go in more detail to teach/verify installation procedures (e.g. brew doctor to verify paths are set, brew install git to teach syntax)

Text Editor: I think Sublime might be a better fit due to it's unlimited free-trial, stable code base (less updates), and extensibility.

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4 .

nanoxd commented 11 years ago

@zspencer agreed :+1:

ColetteIsabella commented 11 years ago

I think since we have the time, I am a fan of the possibility of having the first day be an "install day" where more than just download some stuff, we also have a breakdown of what they do and why one would choose one method over another. I think for the course, having everyone on roughly the same page will be important (ie, RVM or RBENV) And Sublime for the reasons given. An overview of how git vs github work, and the browser to website connections. These are kind of heady subjects, and exposure on the first day, or very early, might help clarify some things in the future. The biggest issues I have run into in early learning have been: What is the purpose of MVC, what can I do/why would I use RoR, and why use GitHub? That would be my early suggestion for the start potentially. I have written up some lesson plans around this which can run in half an hour each or so. They are not comprehensive, mostly intro, but that seems like it could be the right way to go for the first day-get your feet wet class. -Colette

On Wed, Sep 18, 2013 at 11:35 AM, Fernando Paredes <notifications@github.com

wrote:

@zspencer https://github.com/zspencer agreed [image: :+1:]

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24688331 .

zspencer commented 11 years ago

@collete: Those are two really good awesome ideas (Install Days/Why X). It'd be great to have open issues for each of them so we can contribute directly to that part of the discussion.

On Wed, Sep 18, 2013 at 11:50 AM, Colette Taylor notifications@github.comwrote:

I think since we have the time, I am a fan of the possibility of having the first day be an "install day" where more than just download some stuff, we also have a breakdown of what they do and why one would choose one method over another. I think for the course, having everyone on roughly the same page will be important (ie, RVM or RBENV) And Sublime for the reasons given. An overview of how git vs github work, and the browser to website connections. These are kind of heady subjects, and exposure on the first day, or very early, might help clarify some things in the future. The biggest issues I have run into in early learning have been: What is the purpose of MVC, what can I do/why would I use RoR, and why use GitHub? That would be my early suggestion for the start potentially. I have written up some lesson plans around this which can run in half an hour each or so. They are not comprehensive, mostly intro, but that seems like it could be the right way to go for the first day-get your feet wet class. -Colette

On Wed, Sep 18, 2013 at 11:35 AM, Fernando Paredes < notifications@github.com

wrote:

@zspencer https://github.com/zspencer agreed [image: :+1:]

— Reply to this email directly or view it on GitHub< https://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24688331>

.

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24689533 .

nanoxd commented 11 years ago

@ColetteIsabella @eliseworthy already has a lesson on git in case you want to contribute.

I think since we have the time, I am a fan of the possibility of having the first day be an "install day" where more than just download some stuff, we also have a breakdown of what they do and why one would choose one method over another.

We should also note that people learn differently. Some people love(tolerate) the firehose method, while others want the bare minimum. Going in depth into something they know almost nothing about will serve only to confuse the students.

Experiential learning seems like a better route. This allows the student to learn by doing, understand the software/service, and understand what the right questions to ask are. Although some people are morbidly afraid to speak up, so a recap FAQ would cover that area

jasonpeacock commented 11 years ago

We do a firehose training approach here at work, and while it gets people up & working quickly they soon run into issues once something non-std happens because they don't know why it works, they only know how it should work. Also, if parts of the training are not immediately put into those then those parts are quite quickly forgotten (like cramming for a test).

I'd be worried of something similar in a single-push "setup everything" approach. They may nod and think they understand while going through the motions, but we'll find ourselves reviewing the same stuff again later. I agree with Fernando that a more serial, experiential approach is better. Start with the basic and build on that in layers, teaching new technology/concepts/tools as needed for each component.

On Wed, Sep 18, 2013 at 1:54 PM, Fernando Paredes notifications@github.comwrote:

@ColetteIsabella https://github.com/ColetteIsabella @eliseworthyhttps://github.com/eliseworthyalready has a lesson on githttps://github.com/Ada-Developers-Academy/curriculum/blob/master/lessons/01_git.mdin case you want to contribute.

I think since we have the time, I am a fan of the possibility of having the first day be an "install day" where more than just download some stuff, we also have a breakdown of what they do and why one would choose one method over another.

We should also note that people learn differently. Some people love(tolerate) the firehose method, while others want the bare minimum. Going in depth into something they know almost nothing about will serve only to confuse the students.

Experiential learning seems like a better route. This allows the student to learn by doing, understand the software/service, and understand what the right questions to ask are. Although some people are morbidly afraid to speak up, so a recap FAQ would cover that area

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24698466 .

yaauie commented 11 years ago

Is there a reason we're setting up a full Xcode installation? It's many GB, and the Xcode Command Line Tools are available as a stand-alone installation.

eliseworthy commented 11 years ago

Because that's how I've always done it! :) Hah, terrible excuse.

Besides time/bandwidth, is there any reason not to?

On Fri, Sep 20, 2013 at 10:29 PM, Ryan Biesemeyer notifications@github.comwrote:

Is there a reason we're setting up a full Xcode installation? It's many GB, and the Xcode Command Line Toolshttps://developer.apple.com/downloads/index.action?searchTextField=command%20line%20toolsare available as a stand-alone installation.

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24856475 .

nanoxd commented 11 years ago

One requires logging in to the App Store, the command line tools require you to sign up for a developer account.

yaauie commented 11 years ago

The primary reason I see against the full installation is that it introduces a whole lot of irrelevant (to what they will learn in this course) concepts and tools before we start getting them into the challenge-success loop that makes programming fun. I would personally be willing to pre-fetch the standalone cli-tools disk image and provides handful of thumb-drives with the latest version & a document explaining how to get them yourself. The more we can reduce friction here, the sooner we can introduce relevant concepts.

zspencer commented 11 years ago

Alternatively, create a dropbox group for AdaInitiative and host it there. If they're all on the same Wifi they'll stream to each other similar to BitTorrent.

On Sun, Sep 22, 2013 at 10:31 AM, Ryan Biesemeyer notifications@github.comwrote:

The primary reason I see against the full installation is that it introduces a whole lot of irrelevant (to what they will learn in this course) concepts and tools before we start getting them into the challenge-success loop that makes programming fun. I would personally be willing to pre-fetch the standalone cli-tools disk image and provides handful of thumb-drives with the latest version & a document explaining how to get them yourself. The more we can reduce friction here, the sooner we can introduce relevant concepts.

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24886341 .

nanoxd commented 11 years ago

@zspencer wouldn't that be an issue for anyone with a Dropbox account already? As per Dropbox, one can only switch accounts through their WebUI which doesn't have LAN Sync.

@yaauie We could set up a Raspberry Pi and accomplish the same thing as multiple USBs with less maintenance. The Pi can be configured to serve the file(s) through Samba or Owncloud.

zspencer commented 11 years ago

@fernando You can share dropbox folders to any dropbox user.

On Sun, Sep 22, 2013 at 12:09 PM, Fernando Paredes <notifications@github.com

wrote:

@zspencer https://github.com/zspencer wouldn't that be an issue for anyone with a Dropbox account already? As per [Dropbox], one can only switch accounts through their WebUI which doesn't have LAN Sync.

@yaauie https://github.com/yaauie We could set up a Raspberry Pi and accomplish the same thing as multiple USBs with less maintenance. The Pi can be configured to serve the file(s) through Samba or Owncloud.

— Reply to this email directly or view it on GitHubhttps://github.com/Ada-Developers-Academy/curriculum/issues/4#issuecomment-24888269 .

nanoxd commented 11 years ago

@zspencer I thought you meant group as a business account. That would definitely be the easiest approach.

johana-star commented 11 years ago

What improvements should be completed to resolve this issue?

nanoxd commented 11 years ago

@strand A AdaDevAcademy Dropbox account with the command line tools shared may be the easiest way.

johana-star commented 11 years ago

@NanoXD So, to resolve this issue we need to create the Dropbaox with the CL Tools and link to that resource in the guide somewhere? Who has authorization to make that for Ada? @kerrizor?

kerrizor commented 11 years ago

If someone would like to volunteer to write-up the install instructions and toss me a link to the latest CL tools, I can setup an official ADA Dropbox folder. I like that approach more than swamping the network with multiple multi-GB downloads.

An alternate approach, and one we've done for RailsBridge, is to have a half-dozen USB drives with the download already on it - low-tech, works like a charm every time :)