SlideShare a Scribd company logo
1 of 22
Download to read offline
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
 
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 2014drincruz
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open SourceChandan Kumar
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with GroovyMario García
 
How we use Bottle and Elasticsearch
How we use Bottle and ElasticsearchHow we use Bottle and Elasticsearch
How we use Bottle and Elasticsearchswee meng ng
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FBDavide Cavalca
 
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 developmentLuis Borbon
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on RailsIlias Bartolini
 
Python in Industry
Python in IndustryPython in Industry
Python in IndustryDharmit Shah
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
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 SchoolJordan Trevino
 
Data engineering zoomcamp introduction
Data engineering zoomcamp  introductionData engineering zoomcamp  introduction
Data engineering zoomcamp introductionAlexey Grigorev
 
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 MechanizeRobson Agapito Correa
 
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 applicationEduardo 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 DevopsKris 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

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 2023Martin Anderson-Clutz
 
Xconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceXconf 2014 - Contributing to Open Source
Xconf 2014 - Contributing to Open SourceParas Narang
 
`People Management` by Roman Paska
`People Management` by Roman Paska`People Management` by Roman Paska
`People Management` by Roman PaskaLemberg 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 2012Aaron 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 SourceAll 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.pdfShreyaDhurde
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklistDavid Bain
 
Django best practices
Django best practicesDjango best practices
Django best practicesAdam 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 LoveLauren 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 toolsDaniel Lopes
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanDrew 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

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

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