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

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
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...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

How To Pass A Ruby Code Test