SlideShare a Scribd company logo
Ruby on Rails: From Zero to Hero 
Teach yourself how to program in Ruby on Rails. 
@patrikbona
Me (beginning of 2013) 
● Non-programming job 
● X years of “programming” experience 
● Git? GitHub? Tdd? Rails? What?
About me 
● I learned more about programming in last 1 
and half year than ever before 
● Ruby on Rails developer at Toptal
Resources
Ruby on Rails Tutorial 
● Start here! 
● Full stack 
○ Ruby on Rails 
○ Git/GitHub 
○ HTML/CSS 
○ TDD 
○ Heroku 
○ … 
● http://www.railstutorial.org/
Rails Guides 
● Official and up to date documentation 
● I still use it 
● http://guides.rubyonrails.org/
Agile Web Development with Rails 4 
● Build e-commerce site in Rails way 
● Up to date 
● https://pragprog.com/book/rails4/agile-web-development- 
with-rails-4
Upcase by thoughtbot 
● Exercises 
● Forum 
● Source code access 
● Workshops, videos 
● Mentoring 
● https://upcase.com/
Google and Stackoverflow 
● Because someone else already had the 
same problem 
● But try to understand it anyway!
Railscasts 
● Small Rails screencasts 
● Not up to date, but still useful 
● http://railscasts.com/
Tips & Tricks
Practice 1/2 
"If you want to pick up a new skill, you must 
practice. There's no other way. Make the time, 
and do the work. The only time you can choose 
to practice is today." 
Josh Kaufman (The First 20 Hours)
Practice 2/2 
● Find yourself some project 
○ Toy project for yourself 
○ Something for a friend 
○ Work for free
Improve your typing 
● http://type-fu.com/ 
● http://goo.gl/Az3WJc (Google Chrome 
extension)
Master your editor and environment 
● Remove all obstacles 
● Learn one thing at the time
Programming Katas 
● Simple programming problems 
● Do them again and again 
● FizzBuzz under 6 minutes
Spaced repetition 
● Scientific approach to learning 
● http://sivers.org/srs 
● http://ankisrs.net/
Make notes 
● Because spaced repetition doesn’t work for 
complex things 
● Be quick 
● https://github.com/mrhead/notes
Pair programming 
● Most effective way to share knowledge 
● Immediate feedback loop 
● Try it!
KISS 
● Keep it simple, stupid 
● Work on small issues
Conclusion 
● Try to understand things 
● Don’t try to learn everything at once 
● Practice (a lot) 
● Be pragmatic
Q&A

More Related Content

What's hot

Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
Nikhil Agrawal
 
Gpars Workshop 2014
Gpars Workshop 2014Gpars Workshop 2014
Gpars Workshop 2014
Mario García
 
Learning & Building Something New in July with Python -- PyGotham 2014
Learning &  Building Something New in July with Python -- PyGotham 2014Learning &  Building Something New in July with Python -- PyGotham 2014
Learning & Building Something New in July with Python -- PyGotham 2014
drincruz
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
Chandan Kumar
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
Mario García
 
How we use Bottle and Elasticsearch
How we use Bottle and ElasticsearchHow we use Bottle and Elasticsearch
How we use Bottle and Elasticsearch
swee meng ng
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FB
Davide Cavalca
 
Death by meeting
Death by meetingDeath by meeting
FrontBox - what frontend web development is? Let's discover ReactJS!
FrontBox - what frontend web development is? Let's discover ReactJS!FrontBox - what frontend web development is? Let's discover ReactJS!
FrontBox - what frontend web development is? Let's discover ReactJS!
Marco Pegoraro
 
Python for web development
Python for web developmentPython for web development
Python for web development
Luis Borbon
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on Rails
Ilias Bartolini
 
Python in Industry
Python in IndustryPython in Industry
Python in Industry
Dharmit Shah
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
digitalzombie
 
KegKong: Automated Keg System, presented at the Flatiron School
KegKong: Automated Keg System, presented at the Flatiron SchoolKegKong: Automated Keg System, presented at the Flatiron School
KegKong: Automated Keg System, presented at the Flatiron School
Jordan Trevino
 
Data engineering zoomcamp introduction
Data engineering zoomcamp  introductionData engineering zoomcamp  introduction
Data engineering zoomcamp introduction
Alexey Grigorev
 
Google Docs
Google DocsGoogle Docs
Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e Mechanize
Robson Agapito Correa
 
Lesson 01
Lesson 01Lesson 01
Lesson 01
Gene Babon
 
Open Jupyter Notebook and JupyterLab as a desktop application
Open Jupyter Notebook and JupyterLab as a desktop applicationOpen Jupyter Notebook and JupyterLab as a desktop application
Open Jupyter Notebook and JupyterLab as a desktop application
Eduardo Avelar Pantoja
 
ADDO 2019: Looking back at over 10 years of Devops
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
Kris Buytaert
 

What's hot (20)

Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
Gpars Workshop 2014
Gpars Workshop 2014Gpars Workshop 2014
Gpars Workshop 2014
 
Learning & Building Something New in July with Python -- PyGotham 2014
Learning &  Building Something New in July with Python -- PyGotham 2014Learning &  Building Something New in July with Python -- PyGotham 2014
Learning & Building Something New in July with Python -- PyGotham 2014
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
 
How we use Bottle and Elasticsearch
How we use Bottle and ElasticsearchHow we use Bottle and Elasticsearch
How we use Bottle and Elasticsearch
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FB
 
Death by meeting
Death by meetingDeath by meeting
Death by meeting
 
FrontBox - what frontend web development is? Let's discover ReactJS!
FrontBox - what frontend web development is? Let's discover ReactJS!FrontBox - what frontend web development is? Let's discover ReactJS!
FrontBox - what frontend web development is? Let's discover ReactJS!
 
Python for web development
Python for web developmentPython for web development
Python for web development
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on Rails
 
Python in Industry
Python in IndustryPython in Industry
Python in Industry
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
KegKong: Automated Keg System, presented at the Flatiron School
KegKong: Automated Keg System, presented at the Flatiron SchoolKegKong: Automated Keg System, presented at the Flatiron School
KegKong: Automated Keg System, presented at the Flatiron School
 
Data engineering zoomcamp introduction
Data engineering zoomcamp  introductionData engineering zoomcamp  introduction
Data engineering zoomcamp introduction
 
Google Docs
Google DocsGoogle Docs
Google Docs
 
Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e Mechanize
 
Lesson 01
Lesson 01Lesson 01
Lesson 01
 
Open Jupyter Notebook and JupyterLab as a desktop application
Open Jupyter Notebook and JupyterLab as a desktop applicationOpen Jupyter Notebook and JupyterLab as a desktop application
Open Jupyter Notebook and JupyterLab as a desktop application
 
ADDO 2019: Looking back at over 10 years of Devops
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
 

Similar to Teach yourself Ruby on Rails

Coding dojo
Coding dojoCoding dojo
Coding dojo
Rafael Rosa
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
Ambassador Labs
 
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
Martin Anderson-Clutz
 
Introduce Python
Introduce PythonIntroduce Python
Introduce Python
M Asep Indrayana
 
Xconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceXconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open Source
Paras Narang
 
`People Management` by Roman Paska
`People Management` by Roman Paska`People Management` by Roman Paska
`People Management` by Roman Paska
Lemberg Solutions
 
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Prasid Pathak
 
Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012
Aaron Saray
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
All Things Open
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
ShreyaDhurde
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
David Bain
 
Django best practices
Django best practicesDjango best practices
Django best practices
Adam Haney
 
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
Metosin Oy
 
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
Tony Tran
 
Intro to Technical Writing: Creating Content that Google and Readers will Love
Intro to Technical Writing: Creating Content that Google and Readers will LoveIntro to Technical Writing: Creating Content that Google and Readers will Love
Intro to Technical Writing: Creating Content that Google and Readers will Love
Lauren Hayward Schaefer
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
Asier Barrenetxea
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
rc2209
 
Agile work practices and tools
Agile work practices and toolsAgile work practices and tools
Agile work practices and tools
Daniel Lopes
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
vaibhavbhapkar3
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
Drew Malone
 

Similar to Teach yourself Ruby on Rails (20)

Coding dojo
Coding dojoCoding dojo
Coding dojo
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
 
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
 
Introduce Python
Introduce PythonIntroduce Python
Introduce Python
 
Xconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceXconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open Source
 
`People Management` by Roman Paska
`People Management` by Roman Paska`People Management` by Roman Paska
`People Management` by Roman Paska
 
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, an...
 
Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
 
Django best practices
Django best practicesDjango best practices
Django best practices
 
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
Creating an experimental GraphQL formatter using Clojure, Instaparse, and Gra...
 
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In ...
 
Intro to Technical Writing: Creating Content that Google and Readers will Love
Intro to Technical Writing: Creating Content that Google and Readers will LoveIntro to Technical Writing: Creating Content that Google and Readers will Love
Intro to Technical Writing: Creating Content that Google and Readers will Love
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
Agile work practices and tools
Agile work practices and toolsAgile work practices and tools
Agile work practices and tools
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
 

Recently uploaded

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 

Recently uploaded (20)

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 

Teach yourself Ruby on Rails

  • 1. Ruby on Rails: From Zero to Hero Teach yourself how to program in Ruby on Rails. @patrikbona
  • 2. Me (beginning of 2013) ● Non-programming job ● X years of “programming” experience ● Git? GitHub? Tdd? Rails? What?
  • 3. About me ● I learned more about programming in last 1 and half year than ever before ● Ruby on Rails developer at Toptal
  • 5. Ruby on Rails Tutorial ● Start here! ● Full stack ○ Ruby on Rails ○ Git/GitHub ○ HTML/CSS ○ TDD ○ Heroku ○ … ● http://www.railstutorial.org/
  • 6. Rails Guides ● Official and up to date documentation ● I still use it ● http://guides.rubyonrails.org/
  • 7. Agile Web Development with Rails 4 ● Build e-commerce site in Rails way ● Up to date ● https://pragprog.com/book/rails4/agile-web-development- with-rails-4
  • 8. Upcase by thoughtbot ● Exercises ● Forum ● Source code access ● Workshops, videos ● Mentoring ● https://upcase.com/
  • 9. Google and Stackoverflow ● Because someone else already had the same problem ● But try to understand it anyway!
  • 10. Railscasts ● Small Rails screencasts ● Not up to date, but still useful ● http://railscasts.com/
  • 12. Practice 1/2 "If you want to pick up a new skill, you must practice. There's no other way. Make the time, and do the work. The only time you can choose to practice is today." Josh Kaufman (The First 20 Hours)
  • 13. Practice 2/2 ● Find yourself some project ○ Toy project for yourself ○ Something for a friend ○ Work for free
  • 14. Improve your typing ● http://type-fu.com/ ● http://goo.gl/Az3WJc (Google Chrome extension)
  • 15. Master your editor and environment ● Remove all obstacles ● Learn one thing at the time
  • 16. Programming Katas ● Simple programming problems ● Do them again and again ● FizzBuzz under 6 minutes
  • 17. Spaced repetition ● Scientific approach to learning ● http://sivers.org/srs ● http://ankisrs.net/
  • 18. Make notes ● Because spaced repetition doesn’t work for complex things ● Be quick ● https://github.com/mrhead/notes
  • 19. Pair programming ● Most effective way to share knowledge ● Immediate feedback loop ● Try it!
  • 20. KISS ● Keep it simple, stupid ● Work on small issues
  • 21. Conclusion ● Try to understand things ● Don’t try to learn everything at once ● Practice (a lot) ● Be pragmatic
  • 22. Q&A