Top Banner
THE STORY OF A RAFFLER Extracting wisdom from stupidity
73

Extracting wisdom from stupidity

Jan 10, 2017

Download

Self Improvement

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Extracting wisdom from stupidity

THE STORY OF A RAFFLERExtracting wisdom from stupidity

Page 2: Extracting wisdom from stupidity

About me

Ramon de la Fuente

Future500 B.V.

@f_u_e_n_t_e

SweetlakePHP

Page 3: Extracting wisdom from stupidity
Page 4: Extracting wisdom from stupidity
Page 5: Extracting wisdom from stupidity
Page 6: Extracting wisdom from stupidity

–Edward de Bono

“The purpose of the book has been to shift attention from the problems themselves to the

way the mind tackles them”

Page 7: Extracting wisdom from stupidity

Stupidity

The words "stupid" and "stupidity" entered the English language in 1541. Since then, stupidity has taken place along with "fool," "idiot," "dumb," "moron," and related concepts as a pejorative appellation for human misdeeds, whether purposeful or accidental, due to absence of mental capacity.

Stupidity is a quality or state of being stupid, or an act or idea that exhibits properties of being stupid.

Page 8: Extracting wisdom from stupidity

Code experiment

• 1. Write throw-away code

• 2. That performs some function

• 3. Wait, what??

Page 9: Extracting wisdom from stupidity
Page 10: Extracting wisdom from stupidity

Domcode Raffler Rules

• 1. Accept a filename as the first CLI argument.

• 2. The file will contain a \n delimited list of names

• 3. Echo a single random name from the list

Page 11: Extracting wisdom from stupidity
Page 12: Extracting wisdom from stupidity
Page 13: Extracting wisdom from stupidity

–Johnny Appleseed

“Type a quote here.”

Page 14: Extracting wisdom from stupidity
Page 15: Extracting wisdom from stupidity
Page 16: Extracting wisdom from stupidity
Page 17: Extracting wisdom from stupidity

Code experiment

• 1. Write a raffler

• 2. Using every “array_” function in PHP

• 3. Exactly once

Page 18: Extracting wisdom from stupidity

Insight

Page 19: Extracting wisdom from stupidity

Sequential

Page 20: Extracting wisdom from stupidity

Strategic

Page 21: Extracting wisdom from stupidity

Logical Thinking Lateral Thinking

Page 22: Extracting wisdom from stupidity

Logical Thinking Lateral Thinking

A

B

C

A

B

C

Y

Page 23: Extracting wisdom from stupidity

Logical Thinking Lateral Thinking

A

B…Y

Z

A

Z

C

Y

Page 24: Extracting wisdom from stupidity

Evolution

Page 25: Extracting wisdom from stupidity

Evolution

Page 26: Extracting wisdom from stupidity

Evolution

Page 27: Extracting wisdom from stupidity

Evolution

–Matt Groening

Page 28: Extracting wisdom from stupidity

The Six Stages of Debugging

1. That can't happen.

2. That doesn't happen on my machine.

3. That shouldn't happen.

4. Why is that happening?

5. Oh, I see

6. How did that ever work?

Page 29: Extracting wisdom from stupidity

The Six Stages of Debugging

1. That can't happen.

2. That doesn't happen on my machine.

3. That shouldn't happen.

4. Why is that happening?

5. Oh, I see

6. How did that ever work?

Page 30: Extracting wisdom from stupidity

• It forces you to plan before you code.

• It virtually eliminates coder's block.

• Writing Unit tests will improve the design.

Test Driven Development?

Page 31: Extracting wisdom from stupidity

Scenario: Starting a game

Given the dictionary provides "coconut" When I start a game using the dictionary

Then there should be 11 guesses available And the revealed word should be "_______"

Test Driven Development?

Page 32: Extracting wisdom from stupidity

Scenario: Starting a game

Given the dictionary provides "coconut" When I start a game using the dictionary

Then there should be 11 guesses available And the revealed word should be "_______"

Test Driven Development?

Page 33: Extracting wisdom from stupidity

Scenario: Starting a game

Given the dictionary provides "coconut" When I start a game using the dictionary

Then there should be 11 guesses available And the revealed word should be "_______"

Test Driven Development?

Page 34: Extracting wisdom from stupidity

Problem Solving

Page 35: Extracting wisdom from stupidity

Problem Solving

Page 36: Extracting wisdom from stupidity

Problem Solving

Page 37: Extracting wisdom from stupidity

Better solution

Problem Solving

Barely working solution

Page 38: Extracting wisdom from stupidity

Problem Solving

Page 39: Extracting wisdom from stupidity

Better solution

Problem Solving

Barely working solution

Page 40: Extracting wisdom from stupidity

Problem Solving

Page 41: Extracting wisdom from stupidity

Problem Solving

Page 42: Extracting wisdom from stupidity

✓ ✗✓

Problem Solving

Page 43: Extracting wisdom from stupidity

Problem Solving

Page 44: Extracting wisdom from stupidity

Problem Solving

Page 45: Extracting wisdom from stupidity

Problem Solving

SINGLETONS

GOTO

SERVICE LOCATOR

Page 46: Extracting wisdom from stupidity

Problem Solving

SINGLETONS

GOTO

SERVICE LOCATOR

Page 47: Extracting wisdom from stupidity

Problem Solving

Page 48: Extracting wisdom from stupidity

Problem Solving

Page 49: Extracting wisdom from stupidity

Problem Solving

Page 50: Extracting wisdom from stupidity

Problem Solving

Page 51: Extracting wisdom from stupidity

Problem Solving

Page 52: Extracting wisdom from stupidity

–Edward de Bono

“Excellent thinking is of no use if based on an incorrect assumption”

Page 53: Extracting wisdom from stupidity

Problem Solving

You solve a Rubik’s Cube layer by layer,

by applying fixed sequences of moves,

leaving previously solved layers intact.

Page 54: Extracting wisdom from stupidity

Problem Solving

You solve a Rubik’s Cube layer by layer,

by applying fixed sequences of moves,

leaving previously solved layers intact.

a programming problem

general patterns

Page 55: Extracting wisdom from stupidity

Building a Raffler

Page 56: Extracting wisdom from stupidity

Building a Raffler

Page 57: Extracting wisdom from stupidity

Building a Raffler

Page 58: Extracting wisdom from stupidity

Building a Raffler

• Separate by return value

• Add complexity score

• Group similar functions together

• Create composable blocks

Page 59: Extracting wisdom from stupidity

Building a Raffler

Page 60: Extracting wisdom from stupidity

Building a Raffler

Page 61: Extracting wisdom from stupidity

Building a Raffler

/* returns original array */

.

Page 62: Extracting wisdom from stupidity

Building a Raffler

Page 63: Extracting wisdom from stupidity

Building a Raffler

Page 64: Extracting wisdom from stupidity

Building a Raffler

Page 65: Extracting wisdom from stupidity

Building a Raffler

Page 66: Extracting wisdom from stupidity

Building a Raffler

Page 67: Extracting wisdom from stupidity

Relevance?

Page 68: Extracting wisdom from stupidity

Relevance?

“…do I use this interface, or not?”

– Senior developer

Page 69: Extracting wisdom from stupidity

Relevance?

“…do I use this interface, or not?”

– Junior developer

Page 70: Extracting wisdom from stupidity

Relevance?

“…I don’t understand how this can happen”

“…how could I make this happen??”

Page 71: Extracting wisdom from stupidity

Further reading

Page 72: Extracting wisdom from stupidity

“Experience is a museum for mistakes”

– Edward de Bono

Page 73: Extracting wisdom from stupidity

Feedback on Joind.in: 16863@f_u_e_n_t_e