$30 off During Our Annual Pro Sale. View Details »

It is about philosophy: culture of a good programmer

It is about philosophy: culture of a good programmer

Philosophy is the study of general and fundamental problems, such as those connected with reality, existence, knowledge, values, reason, mind, and language.
Even though technical skills are a very positive thing, other qualifications are really more important: 'features' like respect, honesty or humility are required to become a better person and, thus, a better professional.
This is not an easy path to follow, and in order to accomplish it, let me share experiences on how to be a better programmer. Let's have a walk!

Fernando Cejas

January 16, 2015
Tweet

More Decks by Fernando Cejas

Other Decks in Programming

Transcript

  1. It is about
    philosophy…
    …culture of a good
    programmer…
    { 0010 }

    View Slide

  2. Meet…
    @fernando_cejas
    Curious Learner
    Software Engineer
    Android Lover
    Geek

    View Slide

  3. @SoundCloud
    Android

    View Slide

  4. The word "philosophy" comes from the
    Ancient Greek φιλοσοφία
    (philosophia), which literally means
    "love of wisdom"
    wikipedia

    View Slide

  5. 2
    There are…
    types of developers…

    View Slide

  6. hacker
    1234233 lines in a class is not that bad

    View Slide

  7. philosopher
    I need more layers and abstractions!!!

    View Slide

  8. 2
    There are…
    types of developers…

    View Slide

  9. introverted
    Peter Parker

    View Slide

  10. extraverted
    Tony Stark

    View Slide

  11. 2
    There are…
    types of developers…

    View Slide

  12. ‘solo’
    Developer

    View Slide

  13. ‘team’
    Developer

    View Slide

  14. learning
    continuous

    View Slide

  15. accept challenges

    View Slide

  16. be prepare
    for change

    View Slide

  17. code evolves
    be prepare
    for change

    View Slide

  18. code evolves
    language evolves
    be prepare
    for change

    View Slide

  19. code evolves
    language evolves
    we evolve
    be prepare
    for change

    View Slide

  20. do not be shy…
    for the win

    View Slide

  21. expose your ideas…
    do not be shy…
    for the win

    View Slide

  22. expose your ideas…
    do not be shy…
    always ask…
    for the win

    View Slide

  23. write code
    for the win

    View Slide

  24. read code
    write code
    for the win

    View Slide

  25. read code
    write code
    learn from experiences
    for the win

    View Slide

  26. expertise?

    View Slide

  27. 2
    There are…
    types of developers…

    View Slide

  28. object oriented programming
    Learn about: hacker
    patterns
    good practices and testing

    View Slide

  29. evil stuff
    Learn about: philosopher
    anti patterns
    algorithms

    View Slide

  30. try to get out of your
    comfort zone…

    View Slide

  31. team player
    be a good

    View Slide

  32. we work with people!!!

    View Slide

  33. People are one of
    the most important
    things in life…
    yes!!!

    View Slide

  34. we work with people
    they are only
    means to reach
    not with computers,
    people

    View Slide

  35. be respectful

    View Slide

  36. be respectful
    be humble

    View Slide

  37. be respectful
    be humble help

    View Slide

  38. be respectful
    be humble help
    be honest

    View Slide

  39. always accept feedback
    without being an smartass
    no one is perfect
    for the win

    View Slide

  40. listen

    View Slide

  41. listen
    no finger pointing

    View Slide

  42. listen
    do not give orders
    no finger pointing

    View Slide

  43. listen
    do not give orders
    collaborate
    no finger pointing

    View Slide

  44. follow your heart

    View Slide

  45. communities
    contribute to

    View Slide

  46. share your…
    experiences

    View Slide

  47. give back to the community
    contribute
    show what you learned

    View Slide

  48. code

    View Slide

  49. code
    events

    View Slide

  50. code
    events
    posts

    View Slide

  51. code
    events
    posts
    talks

    View Slide

  52. code
    events
    posts
    talks
    social

    View Slide

  53. fun!!!
    have

    View Slide

  54. development
    code and

    View Slide

  55. no
    silver
    bullets

    View Slide

  56. we are not multi-tasking

    View Slide

  57. vs
    productivity
    effectiveness

    View Slide

  58. prioritize your tasks and
    give value
    for the win

    View Slide

  59. prioritize your tasks and
    give value
    personal kanban
    for the win

    View Slide

  60. prioritize your tasks and
    give value
    personal kanban
    for the win
    be agile

    View Slide

  61. get focus and avoid
    distractions
    for the win
    pomodoro
    technique

    View Slide

  62. no
    silver
    bullets

    View Slide

  63. today, we are writing
    tomorrow’s legacy code

    View Slide

  64. vs
    maintainability
    performance

    View Slide

  65. take care of code quality
    for the win

    View Slide

  66. take care of code quality
    for the win
    be a good boy scout

    View Slide

  67. take care of code quality
    for the win
    be a good boy scout
    be agile

    View Slide

  68. celebrate your achievements

    View Slide

  69. solving
    problem

    View Slide

  70. challenge accepted!!!

    View Slide

  71. analyze the problem
    ?

    View Slide

  72. problem decomposition
    divide and conquer
    start simple and works
    towards complexity

    View Slide

  73. I’ll put this temporary hack right here…

    View Slide

  74. 2 years later…

    View Slide

  75. Who the hell wrote this code…?

    View Slide

  76. avoid hacks
    for the win

    View Slide

  77. avoid hacks
    do not reinvent the wheel
    for the win

    View Slide

  78. avoid hacks
    do not reinvent the wheel
    for the win
    always choose the right tool for
    the right job

    View Slide

  79. celebrate your achievements

    View Slide

  80. programming
    pair

    View Slide

  81. so I’m getting HALF the
    code for TWICE the
    money?

    View Slide

  82. Our first impression:

    View Slide

  83. Our first impression:
    - it is DIFFICULT

    View Slide

  84. Our first impression:
    - it is DIFFICULT
    - it is FRUSTRATING

    View Slide

  85. Our first impression:
    - it is DIFFICULT
    - it is FRUSTRATING
    - it is UNCOMFORTABLE

    View Slide

  86. Our first impression:
    - it is DIFFICULT
    - it is FRUSTRATING
    - it is UNCOMFORTABLE

    View Slide

  87. do them!!!
    for the win

    View Slide

  88. tests
    code quality
    learning
    for free

    View Slide

  89. Let’s do some pairing

    View Slide

  90. art
    programming as
    Art is about human
    expression through language

    View Slide

  91. communication
    code is
    (that incidentally, also runs on a computer)
    between people

    View Slide

  92. some
    inspirational
    quotes

    View Slide

  93. “IDEAS that
    spread, WIN”
    Clay Shirky

    View Slide

  94. “We learn from
    FAILURE, not from
    SUCCESS! ”
    Bram Stoker

    View Slide

  95. mission?
    what
    is
    your
    we all have one…

    View Slide

  96. ?
    questions

    View Slide

  97. Thanks!!!
    github.com/android10
    fernandocejas.com
    soundcloud.com/jobs

    View Slide