Long term Projects
KevinMulhern opened this issue · comments
What are the long term projects and improvements you think we should work on for this course? what new sections, lessons, projects do you think we should create?
I've created a "Long Term" project board. Please add suggestions there
Longterm projects I think we can do without having any adverse effects on the rest of the curriculum:
-
Expand the OOP lessons into a section
Currently we have one lesson and a couple of projects for teaching OOP. We could very easily vastly improve the quality of the ruby course by expanding OOP out into a section with individual lessons,History and Justification for OOP
,Classes and Instances
,Modules
,Public and Private Methods
etc -
Proper testing lessons
An entire section that will teach the philosophy and techniques to test properly. This has always been a soar point in the curriculum. There aren't many good resources out there for this so we will probably have to roll our own content here. I'm very willing to put the time into this one. -
Writing Good Code
We always recommend people to read Poodr in the chat, we might as well have a section about S.O.L.I.D design principles, refactoring and the basics of design patterns in the main course. We could use poodr as one of the resources, its not free but I think we would be doing students a disservice by not putting them through the book as part of the course.
@mindovermiles262 yeah lets use this issue as a place to discuss and decide on what the long term projects are. If a majority agree on a long term project. Then we can make it official by putting it in the project board.
Following on from @KevinMulhern's point about writing good code. I think highlighting the huge benefits you get from reading through code and the docs is a must. It's really really daunting getting stuck into someone else's code, especially larger projects but there are plenty of good resources out there that we could easily throw something together.
I think we could really help students by giving them resources for joining live hangouts. Codebuddies do some regularly and there are probably some other resources. Maybe if we see a spike in numbers and if the forum takes off we could possibly look at implementing some but for the time being it won't work for us to look at doing this ourselves so third party resources are a must
An enhanced OOP section has already been mentioned. I think it should definitely include a bit more around code organisation. Most of the TicTacToe projects were terrible compared to Hangman in terms of organisation of code and many people struggled there so the resources around that definitely need to be enhanced.
I'll have more of a think and come back with more ideas.
@CouchofTomato 👍 👍 👍 for reading code, we should also explain the best techniques for doing it. That's a really useful skill with large code bases.
I just thought of another potential long term project, a full suite of lessons about enumerable methods. Once you know enumerable methods well, it opens a big part of Ruby up.
I envision these lessons being spread throughout the project, a basic enumerable lesson in the basics section. An intermediate enumerable lesson further on and finally a advanced enumerable lesson near the end of the course.
I think we could also look at some of the more widely used design patterns. Where it goes I'm not sure because it equally applies to Ruby, Rails and JS. It doesn't need to be a massive thing because I know design patterns are a rabbit hole but knowing the common ones (decorators etc) would be useful. Especially since the final chess project definitely has scope for some (command pattern etc).
@CouchofTomato agree with all that, cover the most common design patterns they will come across and direct them to more comprehensive resources if they want to learn more.