SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Siv Midtun Hollup
”I know exactly what code I need to write”
”Coding is easy.”
”I’ll just add another function instead of changing the existing one.”
”Don’t fix it if it ain’t broken.”
As little code as possible

Results as fast as possible

Correct results

Efficient code

Extendable code
”A scientists’ nightmare: Software problems leads to five retractions”
G. Miller, Science (2014)
”Deriving chemosensitivity from cell lines: Forensic bioinformatics and
reproducible research in high-throughput biology”
KA Baggerly et al, Annals of Applied Statistics (2009)
”Scientific software development is not an oxymoron”
SM Baxter et al, PLOS Computational Biology (2006)

”Publishing scientific software matters”
C. Pradal et al, Journal of Computational Science (2013)

”Best practices for scientific computing”
G. Wilson et al, PLOS Biology (2014)
To rewrite existing source code in order to improve its
readability, reusability or structure without affecting its meaning or
behaviour
”Testing takes too much time.”
”It’s too hard to test.”
”I can’t possibly test everything.”
”Test-Driven Development: An Empirical Evaluation of Agile Practice”
Lech Madeyski
As little code as possible

Results as fast as possible

Correct results

Efficient code

Extendable code


Clean Code, Robert C. Martin (Uncle Bob)



Test Driven Development, Kent Beck



Refactoring, Martin Fowler



Working effectively with legacy code, Michael Feathers


Introcing TDD and why it’s a good idea, Evan Dorn
http://www.youtube.com/watch?v=HhwElTL-mdI



Estimation and deception, Linda Rising http://chariotsolutions.com/podcast/ete-2010session-9-linda-rising-deception-and-estimation/



TDD in action (Roy Osherove) http://www.youtube.com/watch?v=xX9hfPkA800


Practice coding and get feedback: http://www.exercism.io/



Online courses (subscription): http://www.pluralsight.com/

Weitere ähnliche Inhalte

Andere mochten auch

Web20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaWeb20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaNetlife s.r.l.
 
Fear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoFear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoOpen Access Peru
 
Teksan generator 2011
Teksan generator 2011Teksan generator 2011
Teksan generator 2011ataelif
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageDavid Hain
 
Three Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Marketing
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce MarketingThree Deep Marketing
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Netlife s.r.l.
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaWeronika
 
Op Sy 03 Ch 101
Op Sy 03 Ch 101Op Sy 03 Ch 101
Op Sy 03 Ch 101 Google
 
Op Sy 03 Ch 61
Op Sy 03 Ch 61Op Sy 03 Ch 61
Op Sy 03 Ch 61 Google
 

Andere mochten auch (18)

Web20 per la camera di commercio di venezia
Web20 per la camera di commercio di veneziaWeb20 per la camera di commercio di venezia
Web20 per la camera di commercio di venezia
 
Fear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académicoFear and Loathing in Academia - Miedo y temor en el mundo académico
Fear and Loathing in Academia - Miedo y temor en el mundo académico
 
Marys 50th.Pps
Marys 50th.PpsMarys 50th.Pps
Marys 50th.Pps
 
Teksan generator 2011
Teksan generator 2011Teksan generator 2011
Teksan generator 2011
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable Advantage
 
Three Deep Web Analytics Wednesday
Three Deep Web Analytics WednesdayThree Deep Web Analytics Wednesday
Three Deep Web Analytics Wednesday
 
Ietc presentation
Ietc presentationIetc presentation
Ietc presentation
 
Evaluation Websites
Evaluation WebsitesEvaluation Websites
Evaluation Websites
 
Vores julekort 2010
Vores julekort 2010Vores julekort 2010
Vores julekort 2010
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce Marketing
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka Narodowa
 
Op Sy 03 Ch 101
Op Sy 03 Ch 101Op Sy 03 Ch 101
Op Sy 03 Ch 101
 
Op Sy 03 Ch 61
Op Sy 03 Ch 61Op Sy 03 Ch 61
Op Sy 03 Ch 61
 
Caudill 2011
Caudill 2011Caudill 2011
Caudill 2011
 
0
00
0
 
Be social
Be socialBe social
Be social
 
Businessfocus09
Businessfocus09Businessfocus09
Businessfocus09
 

Kürzlich hochgeladen

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Pooja Bhuva
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 

Kürzlich hochgeladen (20)

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 

Good coding-practices-for-scientists-jan-2014

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. ”I know exactly what code I need to write”
  • 12.
  • 13.
  • 14. ”I’ll just add another function instead of changing the existing one.”
  • 15. ”Don’t fix it if it ain’t broken.”
  • 16.
  • 17. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  • 18.
  • 19.
  • 20.
  • 21. ”A scientists’ nightmare: Software problems leads to five retractions” G. Miller, Science (2014)
  • 22. ”Deriving chemosensitivity from cell lines: Forensic bioinformatics and reproducible research in high-throughput biology” KA Baggerly et al, Annals of Applied Statistics (2009)
  • 23. ”Scientific software development is not an oxymoron” SM Baxter et al, PLOS Computational Biology (2006) ”Publishing scientific software matters” C. Pradal et al, Journal of Computational Science (2013) ”Best practices for scientific computing” G. Wilson et al, PLOS Biology (2014)
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. To rewrite existing source code in order to improve its readability, reusability or structure without affecting its meaning or behaviour
  • 31.
  • 32. ”Testing takes too much time.”
  • 33. ”It’s too hard to test.”
  • 34. ”I can’t possibly test everything.”
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. ”Test-Driven Development: An Empirical Evaluation of Agile Practice” Lech Madeyski
  • 41.
  • 42.
  • 43. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  • 44.  Clean Code, Robert C. Martin (Uncle Bob)  Test Driven Development, Kent Beck  Refactoring, Martin Fowler  Working effectively with legacy code, Michael Feathers
  • 45.  Introcing TDD and why it’s a good idea, Evan Dorn http://www.youtube.com/watch?v=HhwElTL-mdI  Estimation and deception, Linda Rising http://chariotsolutions.com/podcast/ete-2010session-9-linda-rising-deception-and-estimation/  TDD in action (Roy Osherove) http://www.youtube.com/watch?v=xX9hfPkA800
  • 46.  Practice coding and get feedback: http://www.exercism.io/  Online courses (subscription): http://www.pluralsight.com/