Some words of wisdom for the developer

Some words of wisdom for the developer

Short presentation I've given at the London Java Community even, during the JAX London 2013 conference.

137d3908243acfc30e126615d59d4e6d?s=128

Guillaume Laforge

October 29, 2013
Tweet

Transcript

  1. Little words of  wisdom for the  developer

  2. Guillaume Laforge @glaforge http://glaforge.appspot.com http://gplus.to/glaforge +

  3. None
  4. Have Fun!

  5. “ million 
 downloads
 per year 1.7

  6. None
  7. Great for scripting

  8. Great for scripting Fit for Domain- Specific Languages

  9. Great for scripting Fit for Domain- Specific Languages Most seamless

    integration & interoperability wih java!
  10. None
  11. None
  12. Yup, we’re all using Groovy!

  13. “There are three types of people on earth: ones make

    things happen, ones watch things happen, 
 ones wonder what happened — Jim Lovell
 Appollo 13 astraunaut
  14. Contribute to Open Source

  15. Contribute to Open Source Best carreer move for me!

  16. Contribute to Open Source Best carreer move for me! Work

    with great developers
  17. Contribute to Open Source Best carreer move for me! Travel

    and meet great people Work with great developers
  18. Contribute to Open Source Best carreer move for me! Travel

    and meet great people Work with great developers A job that doesn’t feel like a job
  19. Contribute to Open Source Best carreer move for me! Travel

    and meet great people Work with great developers A job that doesn’t feel like a job You’ll learn a lot
  20. None
  21. Speak publicly

  22. Speak publicly Get more confident in your skills, your knowledge,

    yourself…
  23. None
  24. Always be nice & helpful

  25. Always be nice & helpful You get the community you

    deserve
  26. “ Software 
 is eating 
 the world — Marc

    Andreessen Netscape fame Venture Capitalist
  27. None
  28. Software disrupted: retail, book, newspaper, music industries….

  29. Software disrupted: retail, book, newspaper, music industries…. Need to reinvent

    yourself!
  30. None
  31. Software offers us a lot of opportunities

  32. Software offers us a lot of opportunities Deploy in the

    cloud, spread the word on social networks…
  33. Software offers us a lot of opportunities Deploy in the

    cloud, spread the word on social networks… Create the next disruption!
  34. “ Don’t worry about what anybody 
 else is going

    to do. The best 
 way to predict the future 
 is to invent it. — Alan Kay Smalltalk co-inventor
  35. None
  36. Be an actor!

  37. None
  38. Your best asset is you!

  39. Your best asset is you! Always invest in yourself!

  40. Think out of the box

  41. “ Nothing is black or white. 
 Life is never

    either / or. 
 Nothing is ever as straightforward as it appears — Nelson Mandella
  42. VI EMACS

  43. STATIC DYNAMIC

  44. None
  45. Groovy adds static typing and static compilation

  46. Groovy adds static typing and static compilation C# adds a

    dynamic keyword, and Scala a dynamic trait
  47. Groovy adds static typing and static compilation C# adds a

    dynamic keyword, and Scala a dynamic trait Everybody claims to be functional
  48. A blended world of languages… Compiled Static Imperative Object oriented

    Single dispatch Strong typing Interpreted Dynamic Functional Prototype based Multiple dispatch Weak typing
  49. A blended world of languages… Compiled Static Imperative Object oriented

    Single dispatch Strong typing Interpreted Dynamic Functional Prototype based Multiple dispatch Weak typing Not just 0 or 1
  50. A blended world of languages… Compiled Static Imperative Object oriented

    Single dispatch Strong typing Interpreted Dynamic Functional Prototype based Multiple dispatch Weak typing Not just 0 or 1 A float between 0 and 1
  51. A blended world of languages… Compiled Static Imperative Object oriented

    Single dispatch Strong typing Interpreted Dynamic Functional Prototype based Multiple dispatch Weak typing Not just 0 or 1 A float between 0 and 1 Even a vector of floats!
  52. A blended world of languages… Compiled Static Imperative Object oriented

    Single dispatch Strong typing Interpreted Dynamic Functional Prototype based Multiple dispatch Weak typing Not just 0 or 1 A float between 0 and 1 Even a vector of floats! Several attributes at the same time
  53. “Programs must be written for people to read, and 


    only incidentally for 
 machines to execute — Abelson & Sussman
 Structure & Interpretation 
 of Computer Programs
  54. Readability matters

  55. Readability matters Conciseness shouldn’t compromise readability

  56. Readability matters Conciseness shouldn’t compromise readability 80 % reading, 20

    % writing code
  57. Ascii art programming… (0:/o) (_*_)

  58. Ascii art programming… (0:/o) (_*_) (0:/o) (_*_)

  59. Ascii art programming… (0:/o) (_*_)

  60. Ascii art programming… (0:/o) (_*_) (0:/o) (_*_)

  61. Ascii art programming… (0:/o) (_*_)

  62. Ascii art programming… (0:/o) (_*_) (0:/o) (_*_)

  63. Ascii art programming… (0:/o) (_*_)

  64. Ascii art programming… (0:/o) (_*_)

  65. “ Any sufficiently 
 advanced technology 
 is indistinguishable 


    from magic — Arthur C. Clarke
  66. None
  67. Use magic with caution

  68. Use magic with caution Too many « implicits » or

    « conventions » can be harmful
  69. Use magic with caution Too many « implicits » or

    « conventions » can be harmful Often « explicit » is more obvious
  70. None
  71. Reinventing the wheel isn’t always bad!

  72. Reinventing the wheel isn’t always bad! What about a new

    language?
  73. Reinventing the wheel isn’t always bad! New languages mature the

    field What about a new language?
  74. Reinventing the wheel isn’t always bad! New languages mature the

    field Design patterns become language features What about a new language?
  75. Reinventing the wheel isn’t always bad! New languages mature the

    field Design patterns become language features We’d be still developing in ASM or Cobol… What about a new language?
  76. “Perfection is achieved not when there is nothing more to

    add, but when there is nothing left to take away — Antoine de Saint-Exupéry
  77. None
  78. Keep It Simple Stupid

  79. Keep It Simple Stupid Don’t over-engineer too much

  80. Keep It Simple Stupid Don’t over-engineer too much You Ain’t

    Gonna Need It
  81. Summary — about yourself • Contribute to Open Source •

    You get the community you deserve ! • Be an actor! • Speak publicly • Create the next disruption with software ! • Your best asset is you • Invest in yourself • Think out of the box • Reinvent yourself
  82. Summary — about your craft ! • Be cautious with

    magic ! • Readability matters ! • Keep things simple ! • Don’t be afraid of reinventing the wheel
  83. Summary — and… ! • Have fun!

  84. “ We must be very careful when giving advice 


    to younger people: sometimes 
 they follow it — Edgar Dijkstra
  85. None
  86. Thanks for 
 your attention!