SlideShare a Scribd company logo
Deliberate Practice
                          Becoming a better programmer

                                   Alex Aitken

                                  @alexaitken

                                    <EPAM>
                                blog.thoughtcorp.com

                                   alexaitken.com



Thursday, 16 August, 12
Agenda

          Define Deliberate Practice
          One Per Week
          FizzBuzz Randoori
          Object Calisthenics Demo
          How do you start?


Thursday, 16 August, 12
Deliberate Practice
Thursday, 16 August, 12
One Hour Per Week




Thursday, 16 August, 12
FizzBuzz


Thursday, 16 August, 12
Debrief


Thursday, 16 August, 12
calisthenics

Gymnastic exercises to achieve bodily
fitness and grace of movement
Thursday, 16 August, 12
Object Calisthenics               - Jeff Bay



   •    Use only one level of indentation per method
   •    Don’t use the else keyword
   •    Wrap all primitives and strings
   •    Use only one dot per line
   •    Don’t abbreviate
   •    Keep all entities small
   •    Don’t use any classes with more than two instance variables
   •    Use first-class collections
   •    Don’t use any getters/setters/properties




Thursday, 16 August, 12
Object Calisthenics

   •    Use only one level of indentation per method
   •    Don’t use the else keyword
   •    Wrap all primitives and strings
   •    Use only one dot per line
   •    Don’t abbreviate
   •    Keep all entities small
   •    Don’t use any classes with more than two instance variables
   •    Use first-class collections
   •    Don’t use any getters/setters/properties




Thursday, 16 August, 12
Demo


Thursday, 16 August, 12
Debrief


Thursday, 16 August, 12
How do you
                            start?


Thursday, 16 August, 12
Thursday, 16 August, 12
References
          Object Calisthenics
          http://www.markhneedham.com/blog/2008/11/06/object-calisthenics-first-thoughts/


          Katas
          http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue

          Doing practice with your team
          http://blog.thoughtcorp.com/2011/07/18/practice-built-in/


          Constraint exercise
          https://gist.github.com/3355541

Thursday, 16 August, 12
Credits


                    http://www.flickr.com/photos/ajc1/2799103829/

                    http://www.flickr.com/photos/totalaldo/503335275/


                    http://www.flickr.com/photos/magnuz/4111206/

                    http://www.flickr.com/photos/adam_jones/3793605961/


                    http://www.flickr.com/photos/paulmoody/643667931/


Thursday, 16 August, 12
Please fill out surveys

                          Deliberate Practice

                             Alex Aitken

                             Aug 16 2012

                              Thank you
Thursday, 16 August, 12

More Related Content

More from drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
drewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
drewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
drewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
drewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
drewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
drewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
drewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
drewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
drewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
drewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
drewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
drewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

More from drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

Deliberate practice agile2012_alex_aitken

  • 1. Deliberate Practice Becoming a better programmer Alex Aitken @alexaitken <EPAM> blog.thoughtcorp.com alexaitken.com Thursday, 16 August, 12
  • 2. Agenda Define Deliberate Practice One Per Week FizzBuzz Randoori Object Calisthenics Demo How do you start? Thursday, 16 August, 12
  • 4. One Hour Per Week Thursday, 16 August, 12
  • 7. calisthenics Gymnastic exercises to achieve bodily fitness and grace of movement Thursday, 16 August, 12
  • 8. Object Calisthenics - Jeff Bay • Use only one level of indentation per method • Don’t use the else keyword • Wrap all primitives and strings • Use only one dot per line • Don’t abbreviate • Keep all entities small • Don’t use any classes with more than two instance variables • Use first-class collections • Don’t use any getters/setters/properties Thursday, 16 August, 12
  • 9. Object Calisthenics • Use only one level of indentation per method • Don’t use the else keyword • Wrap all primitives and strings • Use only one dot per line • Don’t abbreviate • Keep all entities small • Don’t use any classes with more than two instance variables • Use first-class collections • Don’t use any getters/setters/properties Thursday, 16 August, 12
  • 12. How do you start? Thursday, 16 August, 12
  • 14. References Object Calisthenics http://www.markhneedham.com/blog/2008/11/06/object-calisthenics-first-thoughts/ Katas http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue Doing practice with your team http://blog.thoughtcorp.com/2011/07/18/practice-built-in/ Constraint exercise https://gist.github.com/3355541 Thursday, 16 August, 12
  • 15. Credits http://www.flickr.com/photos/ajc1/2799103829/ http://www.flickr.com/photos/totalaldo/503335275/ http://www.flickr.com/photos/magnuz/4111206/ http://www.flickr.com/photos/adam_jones/3793605961/ http://www.flickr.com/photos/paulmoody/643667931/ Thursday, 16 August, 12
  • 16. Please fill out surveys Deliberate Practice Alex Aitken Aug 16 2012 Thank you Thursday, 16 August, 12