Coding Dojo: Data Munging (2016)

26
Coding Dojo: Data Munging (without control structures) Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.

Transcript of Coding Dojo: Data Munging (2016)

Page 1: Coding Dojo: Data Munging (2016)

Coding Dojo:Data Munging

(without control structures)

Peter Kofler, ‘Code Cop’@codecopkofler

www.code-cop.org

Copyright Peter Kofler, licensed under CC-BY.

Page 2: Coding Dojo: Data Munging (2016)

Peter Kofler

• Ph.D. (Appl. Math.)

• Professional SoftwareDeveloper for 15+ years

• “fanatic about code quality”

• Freelance Code Mentor

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 3: Coding Dojo: Data Munging (2016)

I help development teams with

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

● Professionalism

● Quality and Productivity

● Continuous Improvement

Page 4: Coding Dojo: Data Munging (2016)

Mentoring

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

● Pair Programming

● ProgrammingWorkshops

● DeliberatePractice, e.g. Coding Dojos

Page 5: Coding Dojo: Data Munging (2016)

Developing Quality Software Developers

Page 6: Coding Dojo: Data Munging (2016)

Dojo Structure

● Introduction 15'● Coding 60'● Retrospective 15'● Break 15'● Coding 60'● Retrospective 15'

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 7: Coding Dojo: Data Munging (2016)

Coding Dojo Mindset

● Safe place outsidework

● We are here to learn● Need to slow down● Focus on doing it right● Collaborative Game

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 8: Coding Dojo: Data Munging (2016)

Coding Dojo Rules

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 9: Coding Dojo: Data Munging (2016)

Pair Programming & TDD

● regular Pair Programming● do not talk for too long● do not interrupt the other● no “keyboard hugging“

● use TDD (or at least “sort of” TDD)● write a test before you write code● refactor mercilessly● no debugger

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 10: Coding Dojo: Data Munging (2016)

Constraints

● Challenges during a dojo or coderetreat

● Moving to the extreme is a way of learning

● Examples● Missing Tool (No Mouse, …)● Missing Feature (No IFs, …)

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 11: Coding Dojo: Data Munging (2016)

Constraint: Complexity One

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 12: Coding Dojo: Data Munging (2016)

Cyclomatic Complexity One

● No conditional statements (if, switch, ?:)● No loops (for, while, loop, etc.)● Technically no control structures.

● Use Optional or Maybe type.● Use higher order functions like map, filter and reduce instead.

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 13: Coding Dojo: Data Munging (2016)

Assignment Part 1

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 14: Coding Dojo: Data Munging (2016)

Weather “Data Munging“

● weather.dat contains daily weather data for a month.

● Find the day number (column one)● with the smallest temperature spread.

(Max temperature is second column,min temperature is third column.)

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 15: Coding Dojo: Data Munging (2016)

Prepare

● Find a pair.● Choose a programming language.● Set up the environment.

● Create new project.● Add testing framework.

● Check part1/requirements.txt.● Implement Data Munging.

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 16: Coding Dojo: Data Munging (2016)

Don't Focus on Getting it Done.F0cus on Doing

It Perfectly.

Page 17: Coding Dojo: Data Munging (2016)

→Practice

Page 18: Coding Dojo: Data Munging (2016)

Assignment Part 2

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 19: Coding Dojo: Data Munging (2016)

Soccer “Data Munging“

● football.dat contains the results from the English Soccer League.

● The columns 'F' and 'A' contain the total number of goals scored for and against each team.

● Find the name of the team● with the smallest difference in 'for' (F)

and 'against' (A) goals.

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 20: Coding Dojo: Data Munging (2016)

→Practice

Page 21: Coding Dojo: Data Munging (2016)

Assignment Part 3

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 22: Coding Dojo: Data Munging (2016)

DRY Fusion

● Take the two programs written,● factor out as much common code as

possible,● leaving you with two smaller programs● and some kind of shared functionality.

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 23: Coding Dojo: Data Munging (2016)

→Practice

Page 24: Coding Dojo: Data Munging (2016)

Closing Circle

● What did you learn today?

● What surprised you today?

● What will you do differently in the future?

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 25: Coding Dojo: Data Munging (2016)

Peter Kofler@codecopkofler

www.code-cop.org

Kata by Dave Thomas

@pragdavehttp://codekata.com/kata/kata04-data-munging/

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

Page 26: Coding Dojo: Data Munging (2016)

CC Images● Bruce http://www.flickr.com/photos/sherpas428/4350620602/● pairing http://www.flickr.com/photos/dav/94735395/● agenda http://www.flickr.com/photos/24293932@N00/2752221871/● dojo http://www.flickr.com/photos/49715404@N00/3267627038/● rules http://www.flickr.com/photos/phunk/4188827473 x● maze https://www.flickr.com/photos/cyberslayer/952953634● weather https://www.flickr.com/photos/enki22/8255595370/● stadium https://www.flickr.com/photos/113417287@N08/13994724156/● DRY https://www.flickr.com/photos/draconianrain/896834248/● wants you http://www.flickr.com/photos/shutter/105497713/

PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY