Open KevinMulhern opened 6 years ago
To kick off some ideas here. I think the following areas could be addressed.
This course doesn't require a huge amount of work, but rails 5 and 5.1 was a big step forward for rails and we need to ensure our curriculum covers that.
@CouchofTomato
I agree with all of that, sinatra could be expanded into more lessons and the projects could be simplified. The games aren't great for teaching about http and the nature of the projects being games promotes hacky solutions.
I'm on the fence about webpacker and yarn, we should put it in the advanced rails section imo.
Heres my thoughts on the course.
Sections I think its missing or that should be expanded:
Things we could potentially remove or change
Other things I would like to do with this course:
Thanks for great feedback @KevinMulhern
Why on the fence about webpacker and yarn? They are useful javascript tools to know anyway so it seems crazy we wouldn't at least cover it to me.
What about Actioncable too? How important is that to know?
Testing is a definite. Good call there. Biggest issue is railsbook annoyingly being in minitest. Are we aiming to cover testing techniques in general and then give some resources for both minitest and rspec?
I think nested attributes should at least be covered a little bit but I'll take your lead here because I don't have any production rails app experience.
I feel both the rails guides and the rails book were a real slog. We can't change railsbooks due to no great alternative so definitely we can look at the rails guides.
It would be great to expand the API section. There are some brilliant API's out there that could be made into awesome apps that would look great on a CV.
Do we want to touch at all on anything like caching (like Redis) or some rails really common design patterns?
@JonathanYiv Do you have anything to add here?
@KevinMulhern Do you think it would be worth copying the syllabus as it is in my post to your top comment so we can keep an eye on it's current status there.
@CouchofTomato Moved the syllabus to the top comment š
I'm on the fence because its not strictly necessary to know, the asset pipeline can still be used out of the box without having to go into yarn and webpacker.
But you've got me thinking š¤ a full "Js with rails" that includes that stuff and other thinks like page specific js and using ajax with rails would be very useful.
I'm not sure about action cable, I personally haven't had an opportunity to use nor have I heard much about it this past while. I think its something we could skip on.
Good point about the rails book using minitest. It would get annoying switching between testing frameworks. I think your idea of teaching the main concepts is the way to go.
We could do a small section on performance. That would cover caching and background workers etc. I think that would be a really valuable thing to add to the course.
Oh we should definitley have a debugging lesson in there somewhere as well š
Great thanks. I've deleted my comment with the syllabus so it doesn't confuse.
I've used the Rails ajax integrated methods for the Waldo app and they are very handy. They work exactly like Jquery but without needing jquery. You probably knew that already :-p but we should definitely cover it.
I understand regarding asset pipeline and yarn but it's a standard Rails feature and even supports configs out of the box for React, Vue etc. I understand it's not core to understanding rails but knowing it will make somebody more employable imo with many employers looking at using front-end js frameworks.
I like your idea about rails and javascript in a 'js with rails' section though so maybe for now we can leave webpacker for that and focus on things we can work on first to get the current content up to scratch.
The real annoyance about testing is we focus on rspec in the Ruby course so it's just a bit of a pain all round. There isn't much we can do about it though. The concepts are similar so we can focus on those but we will need to provide some specific examples. Maybe we can focus on providing some rspec examples to show how some of the minitest examples in the railsbook would be written in rspec?
Actioncable we can park for now. Might be nice to look at in the future as there are many cool projects you can make with it.
Let's go with a section on performance tuning. It would be great to split out that last section which covers loads of advanced topics into maybe a couple of smaller sections.
Oh...
Agreed on debugging.
One other thing that has been on my mind is maybe a small section, nothing complex, about the gems that make up rails, how they fit together and how the student can explore the gems themselves. Maybe just covering a few methods they will have come across. It really doesn't need to be deep but just point them in the direction of exploring about a bit themselves. Certainly the methods which monkey patch existing Ruby classes are very interesting from a Ruby perspective.
š Agree with all of that š that indeed would be very good stuff to know.
Unrelated but I've just spent a good minute trying to figure out why they've made an emoji with a milk moustache š š
fml.
A place to discuss and decide upon the syllabus for this course.
Syllabus
Section: The Track Ahead
Lesson: How this course will work
Section: Sinatra
Lesson: Sinatra Basics
Project: Sinatra Project
Section: Introduction to rails
Project: getting your feet wet
Lesson: A Railsy Web Refresher
Lesson: Deployment
Project: Let's get building
Section: Routes, Views, Controllers and Assets
Lesson: Routing
Lesson: Controllers
Lesson: Views
Lesson: the asset pipeline
Project: Basic Routes, Views and Controllers
Section: Databases and Active Record
Lesson: Databases and SQL
Project: SQL
Lesson: Active Record Basics
Project: Building With Active Record
Section: Forms and Authentication
Lesson: Form Basics
Project: Forms
Lesson: Sessions, Cookies and Authentication
Project: Authentication
Section: Advanced Forms and Active Record
Lesson: Active Record Queries
Lesson: Active Record Associations
Project: Associations
Lesson: Active Record Callbacks
Project: Advanced Associations
Lesson: Advanced Form
Project: Building Advanced Forms
Section: APIs, Mailers and Advanced Topics
Lesson: Apis and building your own
Lesson: Working with external APIs
Project: APIs
Lesson: Mailers
Project: Sending confirmation Emails
Lesson: Advanced Topics
Project: Final Project
Lesson: Conclusion