theodinproject / ruby_course Goto Github PK
View Code? Open in Web Editor NEWThe Ruby course on The OdinProject
The Ruby course on The OdinProject
@KevinMulhern is responsible for coordinating the creation of these lessons, but he needs your help.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
This has been coming up quite a lot in chat ☝️ October 26, 2017 8:40 PM
We had to remove the rspec course by codeschool from the testing lesson on web dev 101 https://www.theodinproject.com/courses/web-development-101/lessons/testing-basics
Without that course the lesson is basically useless, its too early in the curriculum to be going over testing anyway.
The solution to this problem is to remove this testing lesson from the curriculum. I believe that removing this lesson will have a positive effect on the curriculum as a whole.
Tasks include
We are seeking people to take charge of coordinating the creation of these lessons. If you would like to fill take this role, please let us know by commenting on this issue with your desire take ownership of these lessons.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
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?
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
Now that we have moved all the files over I think It would be a good idea to decide upon the first long term project we will work on.
While we are trying to get the course to match the syllabus we drafted up, a long term project can be one of the sections of the new syllabus.
We will of course create issues and work on other smaller things as they come up while we work on a longer term project.
We are seeking people to take charge of coordinating the creation of these lessons. If you would like to fill take this role, please let us know by commenting on this issue with your desire take ownership of these lessons.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
We are seeking people to take charge of coordinating the creation of these lessons. If you would like to fill take this role, please let us know by commenting on this issue with your desire take ownership of these lessons.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
I've noticed a few grammar mistakes in the Event Manager project including comma splices, sentence fragments, and singular articles referring to plural nouns. Some of the comma splices are desirable within the colloquial style, and should be kept. For example:
By making a copy and then changing the copy, we’re sure everyone’s name is unique.
Others look wrong and should be changed to a dash or split into two sentences:
ERB defines several different escape sequence tags that we can use, the most common are:
I'm finding the lesson very helpful! I would love to improve it by making these minor style edits if that's alright! :)
@KevinMulhern mentioned in another issue that the final project could potentially be replaced to something less daunting.
I'm personally in two minds. One the one hand you need to challenge yourself and many students probably move on because they feel they have a good grasp of Ruby and are itching to get started with Rails.
I also am hopeful that with a new improved Ruby course most students will be better equipped to tackle it.
That said. I'm not a huge fan of the chess project because there are some aspects of it that are just a royal pain. Namely formatting to a terminal which isn't really the kind of skills most people need.
Let's throw out some project ideas no matter how crazy they sound and see what we come up with. Any that seem plausible we can discuss further.
Project ideas
I'll keep this as an open ongoing issue so we can see the lesson completions for each lesson in the Ruby Course over time. This will give us data to use when making decisions about the course.
We should probably automate this in some way so it posts a comment on this issue each week with the percentage increase or decrease from the week before.
Hey team,
The links in the Beginning Ruby book are linking out to an Amazon page to purchase the book whereas in previous sections, it was linking to the ebook preview itself.
Happy to fix the links myself but was wondering if there were legal issues or other reasons why we're linking out to Amazon instead of a free albeit pirated version of the book.
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
Second assignment here goes to an Amazon page to buy the book, I don't think that was intended :)
This lesson should teach the student the following:
describe "#my_method" do
describe ".my_method" do
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
Creating lessons by seeding is inefficient and can be troublesome with the disjoint between the seed and the lesson.
One workaround for this would be to include metadata for each lesson in the header. There are Kramdown parsers (Kramdown-metadata-parser) that are able to read this information and return a hash.
We can then use this data to dynamically seed the ruby lessons.
I'd like to test-run this type of seeding with the ruby content before rolling it out site-wide
Regarding the project of this lesson. If you use download the event_attendees.csv file using the link from the lesson, you don't get the actual csv but the html file. To get the actual csv you have to use the raw link:
@mindovermiles262 pointed out that the URL is correct in the project's readme but If you take a look at the lesson.md for this project: https://github.com/TheOdinProject/ruby_course/blob/master/ruby_programming/intermediate_ruby/project_event_manager.md
You will see that the link doesn't point to the raw CSV file but the regular CSV file.
This should be an easy fix.
PS: On this line in the lesson:
response = civic_info.representative_info_by_address(address: 80202, levels: 'country', roles: ['legislatorUpperBody', legislatorLowerBody'])
there is a missing '
for legislatorLowerBody
Inspired by @CouchofTomato's final project post I think having somewhere to store project ideas would be a good idea.
Any projects or exercise ideas you have put them here please.
Leo made a great point about drafting out a broad syllabus for this course in another issue #2
I think it's a great idea and will hopefully generate a lot of new ideas as well as get us all on the same page as to what we want this course to be and contain.
I'm not sure what format we should go with here so write out your ideas in whatever way you think is best.
I think it would also be good to mention that I think we should take an MVP philosophy with working on and rolling out the new course. We should aim to make the smallest changes that add value and then roll it out to get feedback and to allow users to get value from what we are working on as quickly as possible. We can then iterate from that to polish and 'complete' things.
Split Project: File I/O and Serialization
into two sections, then add EventManager rewrite to first section
Alright lads @TheOdinProject/ruby-team lets get this kicked off.
First thing we need to do is move everything ruby related over from the curriculum repo and change the seeds files on the main site to point the lessons towards their new home in this repo.
We are seeking people to take charge of coordinating the creation of these lessons. If you would like to fill take this role, please let us know by commenting on this issue with your desire take ownership of these lessons.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
When switching over to using the CSV
library in the Event Manager project, I get the following error when running the file:
EventManger Initialized!
Traceback (most recent call last):
3: from lib/event_manager.rb:4:in `<main>'
2: from /Users/scott/.rbenv/versions/2.5.0/lib/ruby/2.5.0/csv.rb:1272:in `open'
1: from /Users/scott/.rbenv/versions/2.5.0/lib/ruby/2.5.0/csv.rb:1272:in `open'
/Users/scott/.rbenv/versions/2.5.0/lib/ruby/2.5.0/csv.rb:1272:in `initialize': No such file or directory @ rb_sysopen - event_attendess.csv (Errno::ENOENT)
Here's my event_manager.rb
file:
require 'csv'
puts 'EventManger Initialized!'
contents = CSV.open 'event_attendess.csv', headers: true, header_converters: :symbol
contents.each do |row|
name = row[:first_name]
puts name
end
Interestingly, I'm able to access the CSV file and work with it in Pry without problems.
Please someone important review this section, it surely needs some work. For example, at many places the code seemed complete but gave an error when i ran it, because it was incomplete. If its not complete on purpose then atleast state that, and at some places the code is formated as simple text.
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
Going through the Basic Ruby section, I've noticed that the link to the resource for Beginning Ruby by Peter Cooper is not a complete copy of the book and has some pages removed. Some of these removed pages are included in what we are told to read.
I did some searching and found this PDF which I believe should be used instead, as it has the full book uploaded. It is also the same edition as the one already used in this lesson.
Hi
The link "submit them to the project on Github" near the start of the lesson here is broken.
We are seeking people to take charge of coordinating the creation of these lessons. If you would like to fill take this role, please let us know by commenting on this issue with your desire take ownership of these lessons.
For each lesson, reply to this issue with:
An Introduction for the lesson
A brief summary about what the lesson is about and why the topics or concepts it teaches are important.
Learning Outcomes
A list of bullet points of what the student is expected to know or be able to do by the end of this lesson
Content for the lesson
Explanations of the main concepts in the lesson, include code snippets and easy to understand metaphors where applicable.
Assignment
Either a list of links to resources the user will go through to learn about the topic of this lesson more in depth. Have no more than 5 resources, ideally no more than three. Or an exercise the student should do to solidify their understanding of the lesson content.
Additional Resources
A list of links to other resources which are valuable and or complement the assignment resources. Link to no more than three additional resources to avoid this section becoming too cluttered.
List of lessons:
Are there any small things you think we can do to improve the course right away?
This is the place to list and discuss them.
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
https://www.theodinproject.com/courses/ruby-programming/lessons/common-data-structures-and-algorithms?ref=lnav
3rd point, assignment section, the video doesn't load.
first sentence Web Dev 101 course goes to 404 page instead of here
This lesson should teach the student the following:
Please use this stub file for the lesson
Note
If you have any questions or need clarification about anything related to this task please contact the maintainers in our contributing channel on Gitter
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.