Teach the standard stack? #335

steveklabnik opened this Issue Nov 13, 2012 · 15 comments


None yet
5 participants

steveklabnik commented Nov 13, 2012

Related to a few other tickets, I wonder if we shouldn't be teaching only the default stack, ie, erb and minitest. Most apps usually use the default, even though we ❤️ HAML.

Just a thought. What are your thoughts?

/cc @jcasimir @burtlo @kytrinyx


jcasimir commented Nov 13, 2012

I think it's good to have an exploration of HAML, but it probably doesn't belong in the introductory tutorial (Blogger). There is this existing tutorial:


And we could probably delete or migrate content from Blogger over there.

As to Minitest/RSpec, I don't have a strong opinion. So few classes get into either, which is kind of a shame. Maybe the HAML content gets replace with a short introduction to MiniTest that could exercise some model, helper, or controller methods in Blogger?


steveklabnik commented Nov 13, 2012

Seems legit.


kytrinyx commented Nov 13, 2012

I don't have a strong opinion about MiniTest vs RSpec, though there is seemingly more 'magic' involved with RSpec, which may throw beginners for a loop.

I love the idea of replacing HAML stuff with MiniTest stuff in the Blogger tutorial.


jcasimir commented Jan 16, 2013

@steveklabnik @kytrinyx That sounds great. Would you two pull the HAML/SASS stuff out and add an iteration about using MiniTest? I think it could focus on just models and controllers.


kytrinyx commented Jan 16, 2013

Yepp, no problem!


steveklabnik commented Jan 20, 2013

@kytrinyx let me know when you've knocked this out, I'll check out the rest of anything we use that's not default.


radar commented Jan 20, 2013

👍 This is a good idea.


kytrinyx commented Jan 20, 2013

@steveklabnik I won't have time to look at any of this until after February 5th. If you have time before that feel free to jump on it.


steveklabnik commented Jan 20, 2013

Word. :)

@ghost ghost assigned steveklabnik Jan 20, 2013

ybakos commented Jan 23, 2013

Sorry to "butt in." Just wanted to say that my approach this semester is to start with Ruby, move to Rack, add some ERB and raw db work, move to Sinatra w/ DataMapper, then hit Rails. If you're interested to hear about how well this works out, reach out to me in May. (Good luck w/ gSchool this year!)


kytrinyx commented Jan 24, 2013

@ybakos I'm very interested in hearing more. Is there any chance you'd blog about your experience/results sometime in May?


steveklabnik commented Jan 25, 2013

Haml removal in cea26ce.

ybakos commented Jan 25, 2013

Sure Katrina. I've put it on my list.

ybakos commented Mar 29, 2013

No time to blahg, but I did just get some quantitative and qualitative data on student comprehension of Web internals. In previous iterations of my course, students failed to grasp Web application fundamentals abstracted away by Rails. This semester, students implemented a Rack app with data stored in a plaintext file and views stored in static html fragments. They'd use the Rack API for request/response, and cobble together the view using simple file I/O.

Next, they'd implement the same app using Rack and ERB, with data stored in SQLite. They'd use ERB to interpolate data within the view, and raw database calls to interact w/ SQLite.

Then they implemented the same app using Sinatra, a layout, ERB views, SQLite and DataMapper.

They also had to take an exam articulating the entire request/response lifecycle, from a click within the browser to the resulting rendered response. Students definitely are far more intimate with the pure idea of MVC, HTTP, how the web server and application interact, and, most importantly, they have a stronger appreciation of Rails' conventions after building the two Rack apps and the Sinatra app.

I feel this has been a great path for leading students into Rails, rather than dropping them into it.


steveklabnik commented Mar 29, 2013

Thanks for the reply, even if it's not bloarghing. <3

@steveklabnik steveklabnik removed their assignment Jul 28, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment