Disrupt 2 Grow - Devoxx 2013

18,420 views

Published on

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

Published in: Education, Technology
2 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total views
18,420
On SlideShare
0
From Embeds
0
Number of Embeds
13,504
Actions
Shares
0
Downloads
22
Comments
2
Likes
9
Embeds 0
No embeds

No notes for slide

Disrupt 2 Grow - Devoxx 2013

  1. 1. Disrupt 2 Grow Konrad `ktoso` Malawski @ Devoxx 2013 konrad.malawski@java.pl @ktosopl
  2. 2. fun fact
  3. 3. fun fact This talk was a bet with a friend:
  4. 4. fun fact This talk was a bet with a friend: X: “I bet you won’t submit a soft talk!”
  5. 5. fun fact This 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.”
  6. 6. fun fact This 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
  7. 7. fun fact This 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.
  8. 8. _@ Konrad `@ktosopl` Malawski
  9. 9. _@ Konrad `@ktosopl` Malawski
  10. 10. _@ Konrad `@ktosopl` Malawski
  11. 11. _@ Konrad `@ktosopl` Malawski
  12. 12. “disrupt”
  13. 13. “disrupt” dis·rupt • To throw into confusion or disorder • To interrupt or impede the progress, movement, or procedure of • To break or burst; rupture.
  14. 14. “disrupt” dis·rupt • To throw into confusion or disorder • To interrupt or impede the progress, movement, or procedure of • To break or burst; rupture.
  15. 15. “disrupt”
  16. 16. “disrupt” • don’t “just break stuff” • don’t “disrupt only to disrupt” • don’t ignore “helpful” • don’t disrupt others (most of the time)
  17. 17. “disrupt”
  18. 18. “disrupt” • experiment! • focus on “interesting”, not “new” • un-limit yourself
  19. 19. What’s the problem?
  20. 20. What’s the problem? It’s when we stop learning.
  21. 21. My motivation
  22. 22. The good ol’ Dreyfus model…
  23. 23. The good ol’ Dreyfus model…
  24. 24. “Rise of the Expert Beginner” www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner
  25. 25. “Rise of the Expert Beginner” ’s It tr a ! ap www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner
  26. 26. “Rise of the Expert Beginner” disrupt! www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner
  27. 27. failing happens.
  28. 28. failing happens.
  29. 29. Sure, we have JUGs.
  30. 30. Sure, we have JUGs. X: “We don’t have such a community for Haskell!”
  31. 31. 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?”
  32. 32. 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?”
  33. 33. delete(“smartest person in room problem”)
  34. 34. delete(“smartest person in room problem”) X: “My job is boring! Devs are weak!”
  35. 35. delete(“smartest person in room problem”) X: “My job is boring! Devs are weak!” Me: “Find a reading club!”
  36. 36. delete(“smartest person in room problem”) X: “My job is boring! Devs are weak!” Me: “Find a reading club!”
  37. 37. delete(“smartest person in room problem”) X: “My job is boring! Devs are weak!” Me: “Find a reading club!”
  38. 38. delete(“smartest person in room problem”) X: “My job is boring! Devs are weak!” Me: “Find a reading club!” Whitepapers we read:
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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…
  47. 47. 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!
  48. 48. 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!
  49. 49. delete(“smartest person in room problem”)
  50. 50. delete(“smartest person in room problem”) Reading Clubs Code Retreats Hackathons Online Courses (Coursera?!) Open Spaces Code Dojos Prepared Kata Un-Conferences BOFs Corridor Discussions Something else!
  51. 51. Disruptive company structure 20 CEOs in one Company https://softwaremill.com/20-ceos-in-one-company/
  52. 52. Disruptive company structure 20 CEOs in one Company https://softwaremill.com/20-ceos-in-one-company/
  53. 53. Disruptive company structure 20 CEOs in one Company • • • • No managers! Full transparency! Fully distributed company! Trust, responsibility & awesome! https://softwaremill.com/20-ceos-in-one-company/
  54. 54. Disruptive company structure !! ! re o an c 20 CEOs in one Company m u o ! en y ”, ev en at arn wh e th le t en don and om re, re ! m e a )! t a h omp uys Th en t c ls g Be then signa • No managers! “ d by 37 • Full transparency! an ok (bo • Fully distributed company! ! • Trust, responsibility & awesome! ! ! ! https://softwaremill.com/20-ceos-in-one-company/
  55. 55. Determination
  56. 56. And a “do” attitude
  57. 57. And a “do” attitude X: “What’s the company policy? Can I go to this conference?”
  58. 58. And a “do” attitude X: “What’s the company policy? Can I go to this conference?” Y: ” ”
  59. 59. And a “do” attitude X: “What’s the company policy? Can I go to this conference?” Y: ” ”
  60. 60. And a “do” attitude X: “What’s the company policy? Can I go to this conference?” Y: ” ”
  61. 61. http://blog.geecon.org/2013/03/lots-of-fun-at-geecon-4-kids.html
  62. 62. 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
  63. 63. 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
  64. 64. Arduino’s on Women’s Day http://hackerspace-krk.pl/?lang=en
  65. 65. Introvert as a waiter
  66. 66. Introvert as a waiter Felt more like
  67. 67. Introvert as a waiter Felt more like , not as cool as
  68. 68. Try living somewhere else http://en.wikipedia.org/wiki/Dymaxion_map
  69. 69. Try living somewhere else Bold statement? http://en.wikipedia.org/wiki/Dymaxion_map
  70. 70. Try living somewhere else Bold statement? http://en.wikipedia.org/wiki/Dymaxion_map
  71. 71. functional http://www.brics.dk/RS/96/37/BRICS-RS-96-37.pdf
  72. 72. 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
  73. 73. functional
  74. 74. functional X: “But I know functional programming!”
  75. 75. functional X: “But I know functional programming!” Y: “Great! Try something different!”
  76. 76. logic - prolog
  77. 77. logic - prolog likes(mary, food).
  78. 78. logic - prolog likes(mary, food). likes(mary, wine).
  79. 79. logic - prolog likes(mary, food). likes(mary, wine). likes(john, wine).
  80. 80. logic - prolog likes(mary, likes(mary, likes(john, likes(john, food). wine). wine). mary).
  81. 81. logic - prolog likes(mary, likes(mary, likes(john, likes(john, food). wine). wine). mary).
  82. 82. logic - prolog likes(mary, likes(mary, likes(john, likes(john, food). wine). wine). mary). | ?- likes(mary,food).
  83. 83. logic - prolog likes(mary, likes(mary, likes(john, likes(john, food). wine). wine). mary). | ?- likes(mary,food). yes.
  84. 84. logic - prolog
  85. 85. logic - prolog
  86. 86. logic - prolog reverse(List, Reversed) :-
  87. 87. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed).
  88. 88. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed).
  89. 89. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed). reverse([], Reversed, Reversed).
  90. 90. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed). reverse([], Reversed, Reversed).
  91. 91. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed). reverse([], Reversed, Reversed). reverse([Head|Tail], SoFar, Reversed) :-
  92. 92. logic - prolog reverse(List, Reversed) :reverse(List, [], Reversed). reverse([], Reversed, Reversed). reverse([Head|Tail], SoFar, Reversed) :reverse(Tail, [Head|SoFar], Reversed).
  93. 93. From “I won’t use that!”,
  94. 94. From “I won’t use that!”, To “That helped me later on!”
  95. 95. From “I won’t use that!”, To “That helped me later on!” prolog (1972) ! ! inspired datalog (1977)! ! datomic (2012)
  96. 96. Tons and tons more… The point being… Have a “quick look” into other things!
  97. 97. Tons and tons more… 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! The point being… Have a “quick look” into other things!
  98. 98. roll-your-own
  99. 99. roll-your-own
  100. 100. roll-your-own X: “I know all these languages!”
  101. 101. roll-your-own X: “I know all these languages!” Y: “Awesome! Let’s implement one!”
  102. 102. roll-your-own X: “I know all these languages!” Y: “Awesome! Let’s implement one!”
  103. 103. ! // 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)! roll-your-own }! X: “I know all these languages!” Y: “Awesome! Let’s implement one!”
  104. 104. roll-your-own ! X: “I know all these languages!” Y: “Awesome! Let’s implement one!” X: “Uhm, I meant spanish!”
  105. 105. roll-your-own If you’re into that, start out with Charlie Nutter’s: https://github.com/headius/indy_deep_dive
  106. 106. window management
  107. 107. window management
  108. 108. window management X: “How do you manage your windows?”
  109. 109. window management X: “How do you manage your windows?” Y: “Oh, I program my window layouting system”
  110. 110. window management X: “How do you manage your windows?” Y: “Oh, I program my window layouting system” X: “Awesome, show me!”
  111. 111. tiling window management <<= XMonad
  112. 112. tiling window management <<= XMonad
  113. 113. culture differences
  114. 114. culture differences in places I lived
  115. 115. A road-trip style vacation Although mine wasn’t as “exotic” as other’s :-)
  116. 116. culture differences ( )
  117. 117. culture differences ( ) (don’t generalise, but be aware of it)
  118. 118. culture differences ( ) (don’t generalise, but be aware of it)
  119. 119. culture differences ( ) (don’t generalise, but be aware of it) Example from my work-life:
  120. 120. culture differences ( ) (don’t generalise, but be aware of it) Example from my work-life: very direct! historically cunning! (because of old. communism gov.)
  121. 121. culture differences ( ) (don’t generalise, but be aware of it) Example from my work-life: very direct! not direct, it’s being polite! historically cunning! historically peace > personal stuff (because of old. communism gov.)
  122. 122. culture differences ( ) (don’t generalise, but be aware of it) Example from my work-life: very direct! not direct, it’s being polite! historically cunning! historically peace > personal stuff (because of old. communism gov.) And it’s the same with other countries!! Everybody has different “styles” of interaction.! ! And software is a lot of human interaction.
  123. 123. back to now()
  124. 124. back to now() You’re at
  125. 125. back to now() You’re at Jump out of your comfort zone.! ! Try a “weird” session!
  126. 126. Just do it.
  127. 127. Just do it. You’ll get a simple “thanks”.! ! And that’s the best.
  128. 128. Just do it. You’ll get a simple “thanks”.! ! And that’s the best.
  129. 129. 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
  130. 130. thank you! LIFE IS STUDY! BIO: KONRAD MALAWSKI ! T: KTOSOPL GH: KTOSO BLOG.PROJECT13.PL GEECON.ORG @ DEVOXX 2013 PREFERRED TYPING: ! STRONG AND STATIC ! ! TWITTER: @KTOSOPL FAVOURITE MONAD: ! FUTURE[+A]

×