SlideShare a Scribd company logo
1 of 32
How to pass a ruby code test

         Robert Postill
Huh?
Mea Culpa
No names
http://github.com/C3/code_test
Habits
Junior
No Objects?
No tests 
Train Wrecks
thing.method.fiddle_result!.sort.fiddle_more
things.block {|yielded_thing|
    15 lines …
    possibly including block
    }.mangle
IO.risky_operation.immediately_bugger_about_with_result
Ignore the standard library
No Gemfile
No Rakefile
No documented thinking
Show me you thought about the
     problem. That’s it.
Journeyman
Object Design
It only runs on Windows
Make it complex to run

bin/app –fiddly-flag –J –see-
            output
Use select, collect, reject and
            inject
  Bonus fail points for all on one line
Give me an aesthetic sense
Make it easy to run
Design with objects
Have some basic tests
Show some environmental sensitivity
Craftsman
Don’t make a
gem/redistributable package
Extend object
Do something tricky like ASCII
       bit-twiddling
Rely on an implementation bug
Go crazy with symbol to proc
Don’t consider object side effects
Don’t use large scale code
organisation like modules
Wow me with:
a git repo
a thorough test suite
some description of your thinking
well organised files
How to get up the curve?
Books:
Clean code: A Handbook of Agile Software
Craftsmanship
The Little Schemer
Structure and Interpretation of Computer
Programs
Ruby Group
Contributing to projects
Questions?
                             Photo Credits
    Turtle - http://www.flickr.com/photos/hyakuhei/2234810476/
Witch Burning - http://www.flickr.com/photos/marsumic/4384582059/
                            PHP rock stars-
         http://www.flickr.com/photos/rbowen/2523308528/
                                Ninjas –
        http://www.flickr.com/photos/osakajock/121838967/

More Related Content

What's hot

Deliberate practice agile2012_alex_aitken
Deliberate practice agile2012_alex_aitkenDeliberate practice agile2012_alex_aitken
Deliberate practice agile2012_alex_aitken
drewz lin
 
Staying excited after getting excited by Esta Prangel
Staying excited after getting excited by Esta PrangelStaying excited after getting excited by Esta Prangel
Staying excited after getting excited by Esta Prangel
trigger106
 
Best practices-for-production-environments
Best practices-for-production-environmentsBest practices-for-production-environments
Best practices-for-production-environments
Artem Kovardin
 

What's hot (14)

AATC2016: Exploratory testing an API
AATC2016: Exploratory testing an APIAATC2016: Exploratory testing an API
AATC2016: Exploratory testing an API
 
Crafting a Ruby-on-Rails Course for Developers
Crafting a Ruby-on-Rails Course for DevelopersCrafting a Ruby-on-Rails Course for Developers
Crafting a Ruby-on-Rails Course for Developers
 
Be a polyglot programmer
Be a polyglot programmerBe a polyglot programmer
Be a polyglot programmer
 
Go lang - What is that thing?
Go lang - What is that thing?Go lang - What is that thing?
Go lang - What is that thing?
 
Deliberate practice agile2012_alex_aitken
Deliberate practice agile2012_alex_aitkenDeliberate practice agile2012_alex_aitken
Deliberate practice agile2012_alex_aitken
 
Raising the bar 2, Using Puppet to install enterprise middleware applications
Raising the bar 2, Using Puppet to install enterprise middleware applicationsRaising the bar 2, Using Puppet to install enterprise middleware applications
Raising the bar 2, Using Puppet to install enterprise middleware applications
 
Staying excited after getting excited by Esta Prangel
Staying excited after getting excited by Esta PrangelStaying excited after getting excited by Esta Prangel
Staying excited after getting excited by Esta Prangel
 
Everything you wanted to know about making an R package but were afraid to ask
Everything you wanted to know about making an R package but were afraid to askEverything you wanted to know about making an R package but were afraid to ask
Everything you wanted to know about making an R package but were afraid to ask
 
Best practices-for-production-environments
Best practices-for-production-environmentsBest practices-for-production-environments
Best practices-for-production-environments
 
Logging node.js global summit
Logging   node.js global summitLogging   node.js global summit
Logging node.js global summit
 
Isotope
IsotopeIsotope
Isotope
 
Ruby Tuesday Ottawa - Jan 24, 2012
Ruby Tuesday Ottawa - Jan 24, 2012Ruby Tuesday Ottawa - Jan 24, 2012
Ruby Tuesday Ottawa - Jan 24, 2012
 
From Journeyman to Master
From Journeyman to MasterFrom Journeyman to Master
From Journeyman to Master
 
Fix The Future - Accessibility Testing Using Wave
Fix The Future - Accessibility Testing Using WaveFix The Future - Accessibility Testing Using Wave
Fix The Future - Accessibility Testing Using Wave
 

Viewers also liked

Tech Success
Tech SuccessTech Success
Tech Success
lyncis
 
Ilona fpra luncheon
Ilona fpra luncheonIlona fpra luncheon
Ilona fpra luncheon
ilona418
 
The Co-operative University: Labour, Property and Pedagogy
The Co-operative University: Labour, Property and PedagogyThe Co-operative University: Labour, Property and Pedagogy
The Co-operative University: Labour, Property and Pedagogy
Joss Winn
 
Vsemirnaja pautina
Vsemirnaja pautinaVsemirnaja pautina
Vsemirnaja pautina
ollesya
 
Spikemilligan3
Spikemilligan3Spikemilligan3
Spikemilligan3
hikari16
 

Viewers also liked (20)

Tech Success
Tech SuccessTech Success
Tech Success
 
Tugas Prof. Yusuf
Tugas Prof. YusufTugas Prof. Yusuf
Tugas Prof. Yusuf
 
iDay (Independence Day)
iDay (Independence Day)iDay (Independence Day)
iDay (Independence Day)
 
Ilona fpra luncheon
Ilona fpra luncheonIlona fpra luncheon
Ilona fpra luncheon
 
Using video online to increase sales slideshare
Using video online to increase sales slideshareUsing video online to increase sales slideshare
Using video online to increase sales slideshare
 
Introduction to Indie GameDev India
Introduction to Indie GameDev IndiaIntroduction to Indie GameDev India
Introduction to Indie GameDev India
 
Orientamenti di social media marketing
Orientamenti di social media marketingOrientamenti di social media marketing
Orientamenti di social media marketing
 
2
22
2
 
The Co-operative University: Labour, Property and Pedagogy
The Co-operative University: Labour, Property and PedagogyThe Co-operative University: Labour, Property and Pedagogy
The Co-operative University: Labour, Property and Pedagogy
 
1.3 Process and Information Layout
1.3 Process and Information Layout1.3 Process and Information Layout
1.3 Process and Information Layout
 
Lyddie: Unit2 lesson3
Lyddie:  Unit2 lesson3Lyddie:  Unit2 lesson3
Lyddie: Unit2 lesson3
 
Comparison
ComparisonComparison
Comparison
 
Tips for grabbing and holding attention in online courses
Tips for grabbing and holding attention in online coursesTips for grabbing and holding attention in online courses
Tips for grabbing and holding attention in online courses
 
FantáStic[1]
FantáStic[1]FantáStic[1]
FantáStic[1]
 
Vsemirnaja pautina
Vsemirnaja pautinaVsemirnaja pautina
Vsemirnaja pautina
 
Qenlacecovalente
QenlacecovalenteQenlacecovalente
Qenlacecovalente
 
Kkka
KkkaKkka
Kkka
 
Articulo final
Articulo finalArticulo final
Articulo final
 
Spikemilligan3
Spikemilligan3Spikemilligan3
Spikemilligan3
 
Turkey etwinning
Turkey etwinningTurkey etwinning
Turkey etwinning
 

Similar to How To Pass A Ruby Code Test

Automated UI Testing Done Right (QMSDNUG)
Automated UI Testing Done Right (QMSDNUG)Automated UI Testing Done Right (QMSDNUG)
Automated UI Testing Done Right (QMSDNUG)
Mehdi Khalili
 
Forensic Theming - DrupalCon London
Forensic Theming - DrupalCon LondonForensic Theming - DrupalCon London
Forensic Theming - DrupalCon London
Emma Jane Hogbin Westby
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
Lorna Mitchell
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
guestebde
 

Similar to How To Pass A Ruby Code Test (20)

Performance - a challenging craft
Performance  - a challenging craftPerformance  - a challenging craft
Performance - a challenging craft
 
Drupal Patch Reviews: Get good reviews, give good reviews. Faster.
Drupal Patch Reviews: Get good reviews, give good reviews. Faster.Drupal Patch Reviews: Get good reviews, give good reviews. Faster.
Drupal Patch Reviews: Get good reviews, give good reviews. Faster.
 
Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeis
 
Automated UI Testing Done Right (QMSDNUG)
Automated UI Testing Done Right (QMSDNUG)Automated UI Testing Done Right (QMSDNUG)
Automated UI Testing Done Right (QMSDNUG)
 
Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)
 
Forensic Theming - DrupalCon London
Forensic Theming - DrupalCon LondonForensic Theming - DrupalCon London
Forensic Theming - DrupalCon London
 
Building Rackspace Cloud Monitoring
Building Rackspace Cloud MonitoringBuilding Rackspace Cloud Monitoring
Building Rackspace Cloud Monitoring
 
Development: What they don't teach you in college
Development: What they don't teach you in collegeDevelopment: What they don't teach you in college
Development: What they don't teach you in college
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Rails in the Large - Neal Ford
Rails in the Large - Neal FordRails in the Large - Neal Ford
Rails in the Large - Neal Ford
 
Web Development in Django
Web Development in DjangoWeb Development in Django
Web Development in Django
 
Development: What They Don't Teach You in College
Development: What They Don't Teach You in CollegeDevelopment: What They Don't Teach You in College
Development: What They Don't Teach You in College
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
5 best practices for (web/ software) development (2010)
5 best practices for (web/ software) development (2010)5 best practices for (web/ software) development (2010)
5 best practices for (web/ software) development (2010)
 
Active Web Development
Active Web DevelopmentActive Web Development
Active Web Development
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatterns
 
Yahoo! Hack India: Hyderabad 2013 | YDN & Hacking 101
Yahoo! Hack India: Hyderabad 2013 | YDN & Hacking 101Yahoo! Hack India: Hyderabad 2013 | YDN & Hacking 101
Yahoo! Hack India: Hyderabad 2013 | YDN & Hacking 101
 
What the hack - Yahoo! Hack India Hyderabad 2013
What the hack -  Yahoo! Hack India Hyderabad 2013What the hack -  Yahoo! Hack India Hyderabad 2013
What the hack - Yahoo! Hack India Hyderabad 2013
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

How To Pass A Ruby Code Test