Ruby bootcamp
Globant's Ruby Boot Camp is a hands on training course covering the following topics: ruby language, rails framework, basic HTML, CSS and javascript; and REST/JSON APIs with ruby.

Material:
http://www.codecademy.com/tracks/ruby
https://www.bloc.io/ruby-warrior/
apigee REST APIs desing book
###Technical Assistance
You can contact other bootcamp participants or any available tutor if you need technical assistance. We will create one chat for boot camp members only, and another one for boot camp members and tutors when boot camp starts.
###Performance Measurement
-
Code review after each practice and sprint
-
Checkpoint completion after Learning stage with your assigned tutor
###Materials
-
The IDE to use is SublimeText. (You are free to use other IDE)
-
Installed ruby using rvm
-
Skype Account + headset (audio calls)
-
Create your own GitHub account. Follow this guideline to setup your account.
-
Create a new repository in GitHub to host the project code.
-
REST client (POSTMAN recommended)
###General Guidelines
The boot camp is organized in the following way:
##Learning days
###Topic 1: Ruby basics
- Create a game in which the user has to guess a number.
- The number to be guessed must be initialized randomly in the constructor.
- The constructor must take as a parameter the max attempts the user have to guess the number.
- The game must indicate the user if the number entered is bigger or smaller than the one he has to guess.
- The game should keep track of all the numbers the user entered.
- When the user wins, a message should be displayed to the user telling so and also a score should be printed. The score should be calculated based on the attempts the user did and the max amount of attempts it had.
- The user lose if exceeds the limit of attempts.
- Add a method that prints all numbers the user entered.
Topic 2: Inheritance, polymorphism and duck typing
- Implement a hierarchy of Person, Student and Teacher.
- Implement a method “introduce_me” in each of the classes that prints something like: “Hello, my name is Juan and I am a Student”.
- Create an array that contains at least one instance of each of the defined classes, loop through it and invoke the introduce_me method.
- Remove the inheritance relationships and repeat the step 4. (Duck typing)
- Implement a module with the following methods (hint: all methods should rely on an “age” method not implemented in the module):
* can_drive?
* can_vote?
* can_travel_alone?
- Implement an “age” method in Person, Student and Teacher and the include the module in the classes to create a mixin. Call the methods implemented in the module in instances of the classes.
Topic 3: Rails MVC
Reading material
Excercises
Create a model, create a controller, create a route, create a view. (Read only, create the data using the console)
Key points
- Understand the Gemfile.
- Understand migrations.
- Understand the request flow.
- Use rails console to store data.
Extra credit
Topic 4: Tests first
Reading material
Excercises
Create tests for the old features and test first approach for the creation part.
Cucumber, capybara and rspec.
Key points
- Make cucumber tests first.
- Implement the creation view, route, controller.
- Add validations to the model.
Extra credit
Topic 5: Adding a second model
Reading material
Excercises
Key points
Extra credit
Topic 6: REST and JSON
Reading material
Excercises
Make the app serve JSON for the features already implemented.
Jbuilder
Key points
Extra credit
Topic 7: Adding a third model
Reading material
Excercises
Ideally using a different relation cardinality than the fist one
Key points
Extra credit
Topic 8: Asset pipeline
Reading material
Excercises
Add foundation, bootstrap or semantic-ui to the app. Make also your own styles. Run the app in production mode.
Key points
Extra credit