Disrupt 2 Grow - Devoxx 2013

Post on 15-Jan-2015

7,513 views 10 download

Tags:

description

Short presentation about leaving your comfort zone. Presented at devoxx 2013.

transcript

Disrupt 2

Grow

Konrad `ktoso` Malawski @ Devoxx 2013 konrad.malawski@java.pl

@ktosopl

fun fact

fun factThis talk was a bet with a friend:

fun factThis talk was a bet with a friend:

X: “I bet you won’t submit a soft talk!”

fun factThis talk was a bet with a friend:

X: “I bet you won’t submit a soft talk!”

Me: “True - I normally wouldn’t! Let’s do it.”

fun factThis talk was a bet with a friend:

X: “I bet you won’t submit a soft talk!”

Me: “True - I normally wouldn’t! Let’s do it.”

this talk is

fun factThis talk was a bet with a friend:

X: “I bet you won’t submit a soft talk!”

Me: “True - I normally wouldn’t! Let’s do it.”

this talk is meta.

_ @

Konrad `@ktosopl` Malawski

_ @

Konrad `@ktosopl` Malawski

_ @

Konrad `@ktosopl` Malawski

_ @

Konrad `@ktosopl` Malawski

“disrupt”

“disrupt”dis·rupt

• To throw into confusion or disorder

• To interrupt or impede the progress, movement, or procedure of

• To break or burst; rupture.

“disrupt”dis·rupt

• To throw into confusion or disorder

• To interrupt or impede the progress, movement, or procedure of

• To break or burst; rupture.

“disrupt”

“disrupt”• don’t “just break stuff”

• don’t “disrupt only to disrupt”

• don’t ignore “helpful”

• don’t disrupt others (most of the time)

“disrupt”

“disrupt”

• experiment!

• focus on “interesting”, not “new”

• un-limit yourself

What’s the problem?

What’s the problem?It’s when we stop learning.

My motivation

The good ol’ Dreyfus model…

The good ol’ Dreyfus model…

“Rise of the Expert Beginner”

www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner

“Rise of the Expert Beginner”

www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner

It’s a tra

p!

“Rise of the Expert Beginner”

disrupt!

www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner

failing happens.

failing happens.

Sure, we have JUGs.

Sure, we have JUGs.X: “We don’t have such a community for Haskell!”

Sure, we have JUGs.X: “We don’t have such a community for Haskell!”

Y: “Here’s your meetup account. 1st meeting in a week?”

Sure, we have JUGs.X: “We don’t have such a community for Haskell!”

Y: “Here’s your meetup account. 1st meeting in a week?”

delete(“smartest person in room problem”)

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types• The Typeclassopedia

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types• The Typeclassopedia• Data Center TCP

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types• The Typeclassopedia• Data Center TCP• 50+ more…

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types• The Typeclassopedia• Data Center TCP• 50+ more…• interesting!

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

Whitepapers we read:• Deprecating the Observer pattern• Online, Asynchronous Schema Change in F1• HTM and Cortical Learning Algorithms• Strucure and interpretation of Computer programs• Conflict-free Replicated Data Types• The Typeclassopedia• Data Center TCP• 50+ more…• interesting!

delete(“smartest person in room problem”)X: “My job is boring! Devs are weak!”

Me: “Find a reading club!”

delete(“smartest person in room problem”)

delete(“smartest person in room problem”)Reading ClubsCode RetreatsHackathons

Online Courses (Coursera?!)Open SpacesCode Dojos

Prepared KataUn-Conferences

BOFsCorridor Discussions

Something else!

Disruptive company structure

https://softwaremill.com/20-ceos-in-one-company/

20 CEOs in one Company

Disruptive company structure

https://softwaremill.com/20-ceos-in-one-company/

20 CEOs in one Company

Disruptive company structure

https://softwaremill.com/20-ceos-in-one-company/

• No managers!• Full transparency!• Fully distributed company!• Trust, responsibility & awesome!

20 CEOs in one Company

Disruptive company structure

https://softwaremill.com/20-ceos-in-one-company/

• No managers!• Full transparency!• Fully distributed company!• Trust, responsibility & awesome!

20 CEOs in one Company

!

That moment when you can!

“Been there, done that”,!

and then compare and learn even more!!

(book by 37signals guys)!

!

!

!

!

Determination

And a “do” attitude

And a “do” attitudeX: “What’s the company policy? Can I go to this conference?”

And a “do” attitudeX: “What’s the company policy? Can I go to this conference?”

Y: ” ”

And a “do” attitudeX: “What’s the company policy? Can I go to this conference?”

Y: ” ”

And a “do” attitudeX: “What’s the company policy? Can I go to this conference?”

Y: ” ”

http://blog.geecon.org/2013/03/lots-of-fun-at-geecon-4-kids.html

http://blog.geecon.org/2013/03/lots-of-fun-at-geecon-4-kids.html

really “nerdy” “hackers” teaching kids how to code.

!

Everybody learned a lot!

http://blog.geecon.org/2013/03/lots-of-fun-at-geecon-4-kids.html

really “nerdy” “hackers” teaching kids how to code.

!

Everybody learned a lot!

http://hackerspace-krk.pl/?lang=en

Arduino’s on Women’s Day

Introvert as a waiter

Introvert as a waiter

Felt more like

Introvert as a waiter

Felt more like , not as cool as

Try living somewhere else

http://en.wikipedia.org/wiki/Dymaxion_map

Bold statement?Try living somewhere else

http://en.wikipedia.org/wiki/Dymaxion_map

Bold statement?Try living somewhere else

http://en.wikipedia.org/wiki/Dymaxion_map

functional

http://www.brics.dk/RS/96/37/BRICS-RS-96-37.pdf

functional// Figure 3, page 7!trait BinomialHeap extends Heap {!! type Rank = Int! case class Node(x: A, r: Rank, c: List[Node])! override type H = List[Node]!! protected def root(t: Node) = t.x! protected def rank(t: Node) = t.r! protected def link(t1: Node, t2: Node): Node = // t1.r==t2.r! if (ord.lteq(t1.x,t2.x)) Node(t1.x, t1.r+1, t2::t1.c) else Node(t2.x, t2.r+1, t1::t2.c)! protected def ins(t: Node, ts: H): H = ts match {! case Nil => List(t)! case tp::ts => // t.r<=tp.r! if (t.r<tp.r) t::tp::ts else ins(link(t, tp), ts)! }!! override def empty = Nil! override def isEmpty(ts: H) = ts.isEmpty!! override def insert(x: A, ts: H) = ins(Node(x,0,Nil), ts)! override def meld(ts1: H, ts2: H) = (ts1, ts2) match {! case (Nil, ts) => ts! case (ts, Nil) => ts! case (t1::ts1, t2::ts2) =>! if (t1.r<t2.r) t1::meld(ts1,t2::ts2)! else if (t2.r<t1.r) t2::meld(t1::ts1,ts2)! else ins(link(t1,t2),meld(ts1,ts2))! }!

http://www.brics.dk/RS/96/37/BRICS-RS-96-37.pdf

functional

X: “But I know functional programming!”

functional

X: “But I know functional programming!”

Y: “Great! Try something different!”

functional

logic - prolog

logic - prolog

likes(mary, food).

logic - prolog

likes(mary, food).likes(mary, wine).

logic - prolog

likes(mary, food).likes(mary, wine).likes(john, wine).

logic - prolog

likes(mary, food).likes(mary, wine).likes(john, wine).likes(john, mary).

logic - prolog

likes(mary, food).likes(mary, wine).likes(john, wine).likes(john, mary).

logic - prolog

likes(mary, food).likes(mary, wine).likes(john, wine).likes(john, mary).

| ?- likes(mary,food).

logic - prolog

likes(mary, food).likes(mary, wine).likes(john, wine).likes(john, mary).

| ?- likes(mary,food). yes.

logic - prolog

logic - prolog

logic - prologreverse(List, Reversed) :-

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

reverse([], Reversed, Reversed).

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

reverse([], Reversed, Reversed).

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

reverse([], Reversed, Reversed).

reverse([Head|Tail], SoFar, Reversed) :-

logic - prologreverse(List, Reversed) :- reverse(List, [], Reversed).

reverse([], Reversed, Reversed).

reverse([Head|Tail], SoFar, Reversed) :- reverse(Tail, [Head|SoFar], Reversed).

From “I won’t use that!”,

From “I won’t use that!”,To “That helped me later on!”

From “I won’t use that!”,To “That helped me later on!”

prolog (1972) !!

inspired datalog (1977)!!

datomic (2012)

Tons and tons more…

The point being… Have a “quick look” into other things!

Erlang, Haskell, Scala, Prolog, Standard ML, OCaml,

Go, JavaScript, TypeScript, Pascal, ADA, Common Lisp,

Fortress, F#, Eiffel, Cobol, R, D, Ruby, C++, Python,

Clojure, ELM, Scala, and lot’s of emerging languages!

or maybe read about VHDL!

Tons and tons more…

The point being… Have a “quick look” into other things!

roll-your-own

roll-your-own

X: “I know all these languages!”

roll-your-own

X: “I know all these languages!”

Y: “Awesome! Let’s implement one!”

roll-your-own

X: “I know all these languages!”

Y: “Awesome! Let’s implement one!”

roll-your-own

println("Handling simple return, one value: " + s) // todo remove and make multi return possible!! // todo very naive still - can only return a string literal! val l0 = new Label! mv.visitLabel(l0)! mv.visitLineNumber(10, l0) // todo random number here...! mv.visitLdcInsn(s.substring(1, s.length-1)) // todo only handling one value for now! mv.visitInsn(ARETURN)! val l1 = new Label! mv.visitLabel(l1)! mv.visitLocalVariable("this", "Lpl/project13/jo/" + pack + ";", null, l0, l1, 0)! }! X: “I know all these languages!”

Y: “Awesome! Let’s implement one!”

roll-your-own

!

X: “I know all these languages!”

Y: “Awesome! Let’s implement one!”

X: “Uhm, I meant spanish!”

roll-your-own

If you’re into that, start out with Charlie Nutter’s:

https://github.com/headius/indy_deep_dive

roll-your-own

window management

window management

window managementX: “How do you manage your windows?”

window managementX: “How do you manage your windows?”

Y: “Oh, I program my window layouting system”

window managementX: “How do you manage your windows?”

Y: “Oh, I program my window layouting system”

X: “Awesome, show me!”

tiling window management <<= XMonad

tiling window management <<= XMonad

culture differences

culture differencesin places I lived

A road-trip style vacationAlthough mine wasn’t as “exotic” as other’s :-)

culture differences ( )

culture differences ( )(don’t generalise, but be aware of it)

culture differences ( )(don’t generalise, but be aware of it)

culture differences ( )(don’t generalise, but be aware of it)

Example from my work-life:

culture differences ( )(don’t generalise, but be aware of it)

Example from my work-life:

very direct!historically cunning!

(because of old. communism gov.)

culture differences ( )(don’t generalise, but be aware of it)

Example from my work-life:

very direct!historically cunning!

(because of old. communism gov.)

not direct, it’s being polite!historically peace > personal stuff

culture differences ( )(don’t generalise, but be aware of it)

Example from my work-life:

very direct!historically cunning!

(because of old. communism gov.)

not direct, it’s being polite!historically peace > personal stuff

And it’s the same with other countries!!Everybody has different “styles” of interaction.!

!

And software is a lot of human interaction.

back to now()

back to now()

You’re at

back to now()

You’re at

Jump out of your comfort zone.!!

Try a “weird” session!

Just do it.

Just do it.

You’ll get a simple “thanks”.!!

And that’s the best.

Just do it.

You’ll get a simple “thanks”.!!

And that’s the best.

groups:!sckrk.com

hackerspace-krk.pl java.pl

gdgkrakow.pl meetup.com/Paper-Cup

!

images: XKCD

zen.pencils.com “Golden Boy” manga / anime

!

kudos & links:!Adam Pohorecki for SCKRK SoftwareMill for being so flat

All friends that helped to create our communities Erik Dietrich for his blog @ daedtech.com (expert beginner post)

http://en.wikipedia.org/wiki/Ralph_Waldo_Emerson

PREFERRED TYPING:

!STRONG

AND STATIC

LIFE IS

STUDY!

FAVOURITE MONAD:

!FUTURE[+A]

!!

TWITTER: @KTOSOPL

thank you!BIO:

KONRAD MALAWSKI

!T: KTOSOPL GH: KTOSO

BLOG.PROJECT13.PL GEECON.ORG

@ DEVOXX 2013