The repository for Programming 101 with Ruby.
This course is happening, thanks to:
Week | Problem | Solution |
---|---|---|
week01 | 1-Warmup-Problems | procedural_solutions.rb, good_solutions.rb |
week01 | 2-List-and-Hashes | solutions.rb |
week01 | 3-I-Know-Everything | None |
week02 | 1-Points | None |
week02 | 2-Vector | None |
week02 | 3-Resolve-with-each | None |
week03 | 1-fmi-tribute | None |
week03 | 2-Patch-Hash | solution.rb |
week03 | 3-My-Enumerable | solution.rb, solution_test.rb |
week03 | 4-FMI-Tribute-Number-Set | None |
week04 | 1-Game-Of-Life | None |
week04 | 2-Polynoms-And-Derivates | solution.rb, solution_test.rb |
This is a detailed program about the course, separated in weeks
- Ruby introduction.
- Rbenv/Ruby Installer and Git setup.
- Introduction to the basic Ruby types, syntax & language structures.
- Solving problems with Ruby.
- In depth look of Array, Hash, String, Symbol, Numeric.
- Introducing Ruby blocks.
- Working with Enumerable and all it's magic.
- OOP Introduction. Classes, Modules and Constants.
- Freedom patching. Opening classes & adding functionality.
- Method resolution lookup and ancestor chain.
- Implementing our own Enumerable objects.
- Keyword arguments & parallel assingments.
- Second take on Ruby OOP model
- Sending messages arround and responding to them. Working with method aliases.
- Understanding Duck Typing & SOLID principles.
- Solving OOP problems
- Enumerators in Ruby.
- Lambda vs Proc semantics.
-
- require vs load.
- Working IO in Ruby. Dealing with Files.
- Dealing with exceptions.
- Kernel & Module methods.
- Constants & Scope
- Making namespaces in Ruby
- Singleton classes.
- Dynamic method definition.
- Don't be evil: class_eval and instance_eval.
- Constants, instance variables API.
- Threading or: How I Learned to Stop Worrying and Learned to Love the GIL.
- JRuby and Rubinius.
- Threading locals. Fibers.
- Basic networking.
- RubyGems: The structure of a gem. Gem specifications. Rake. Bundler.
- Introspection & Meta programming in Ruby.
- Looking at the bigger picture & solving problems using everything we know up to know.
- Working in teams
- Intro to HTTP. The Tricky Parts: Cookies, Sessions.
- Intro to Sinatra.
- Intro to SQL. Transactions, Primary Keys, Foreign Keys, Indexes.
- The Architecture of a Web app.
- Intro to Rails: Convention over Configuration.
- Overview of the Builtin Frameworks, Scaffolding.
- Basic Routing and Controller Rendering.
- Views, Layouts and Partials Structure.
- Controller Rendering and Redirection. Basic Authentication. Rendering forms. Mailers, Intro to ActiveJob.
- Intro to ActiveRecord. Intro to schema.rb and Migrations. Validations and Callbacks. How not to abuse the callbacks.
- Basic Query Interface. Intro to associations. Associations in depth. Many-to-many, .through, Automatic Reverses.
- Transactions, Single table inheritence. Has Secure Password. Musings on Small Models. Sandi Metz 5 Rules. Thoughts on OOP.
- Routes inside out. Introduction to engines. Middleware, Rack, Railties, Initializers and Configuration.
- The Rails Eco System. Third party gems. Responders, Timecop, RSpec, Capybara. Active Model, Internationalization.
- Constant Autoloading explained. The Asset Pipeline. Rake Tasks, Command Line Tools and Debugging Rails applications.