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.
- 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.
Create a model, create a controller, create a route, create a view. (Read only, create the data using the console)
- Understand the Gemfile.
- Understand migrations.
- Understand the request flow.
- Use rails console to store data.
Create tests for the old features and test first approach for the creation part. Cucumber, capybara and rspec.
- Make cucumber tests first.
- Implement the creation view, route, controller.
- Add validations to the model.
Make the app serve JSON for the features already implemented. Jbuilder
Ideally using a different relation cardinality than the fist one
Add foundation, bootstrap or semantic-ui to the app. Make also your own styles. Run the app in production mode.
