Skip to content

emil-kirilov/programming101-ruby

 
 

Repository files navigation

Programming101-Ruby

The repository for Programming 101 with Ruby.

Partners

This course is happening, thanks to:

Hosting Partners

SiteGround

Problems & Solutions

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

Course Program

This is a detailed program about the course, separated in weeks

Week 1

  • Ruby introduction.
  • Rbenv/Ruby Installer and Git setup.
  • Introduction to the basic Ruby types, syntax & language structures.
  • Solving problems with Ruby.

Week 2

  • In depth look of Array, Hash, String, Symbol, Numeric.
  • Introducing Ruby blocks.
  • Working with Enumerable and all it's magic.

Week 3

  • OOP Introduction. Classes, Modules and Constants.
  • Freedom patching. Opening classes & adding functionality.
  • Method resolution lookup and ancestor chain.
  • Implementing our own Enumerable objects.

Week 4

  • 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

Week 5

  • Enumerators in Ruby.
  • Lambda vs Proc semantics.
    • require vs load.
  • Working IO in Ruby. Dealing with Files.
  • Dealing with exceptions.

Week 6

  • Kernel & Module methods.
  • Constants & Scope
  • Making namespaces in Ruby

Week 7

  • Singleton classes.
  • Dynamic method definition.
  • Don't be evil: class_eval and instance_eval.
  • Constants, instance variables API.

Week 8

  • Threading or: How I Learned to Stop Worrying and Learned to Love the GIL.
  • JRuby and Rubinius.
  • Threading locals. Fibers.
  • Basic networking.

Week 9

  • RubyGems: The structure of a gem. Gem specifications. Rake. Bundler.
  • Introspection & Meta programming in Ruby.

Week 10

  • Looking at the bigger picture & solving problems using everything we know up to know.
  • Working in teams

Week 11

  • Intro to HTTP. The Tricky Parts: Cookies, Sessions.
  • Intro to Sinatra.

Week 12

  • Intro to SQL. Transactions, Primary Keys, Foreign Keys, Indexes.
  • The Architecture of a Web app.

Week 13, 14, 15, 16 - The Rails part

  • 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.

About

The repository for Programming 101 with Ruby.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 82.7%
  • HTML 14.6%
  • CSS 1.4%
  • JavaScript 1.3%