Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reflections on the Craft

Reflections on the Craft

My talk form VarnaConf 2013

5ca07e641fada5a88a09277c45bd7c1b?s=128

Stefan Kanev

July 20, 2013
Tweet

More Decks by Stefan Kanev

Other Decks in Programming

Transcript

  1. Размисли за занаята Стефан Кънев http://skanev.com/ @skanev VarnaConf 20 юли

    2013 Варна
  2. Стефан

  3. Every time

  4. “Разчупен лед”

  5. смях на чужд гръб

  6. Мариян

  7. None
  8. Васил

  9. Митьо

  10. Радо

  11. удрям ниско

  12. None
  13. монади

  14. лимонади

  15. David Chelimsky

  16. None
  17. None
  18. None
  19. Programmer

  20. ⽃⽄ Ruby, Ruby, Ruby ̆̇㽈

  21. None
  22. ❤Programming Languages

  23. Ruby & Python

  24. twitter: @skanev github: skanev blog: http://skanev.com/

  25. ЗА КАКВО ИДЕ РЕЧ?

  26. Размисли Наблюдения

  27. без особен ред

  28. ВЪЗМОЖНОСТ ПРИЛОЖИМОСТ

  29. Възможност

  30. Приложимост

  31. Common Lisp

  32. Java

  33. Fortran възможност спрямо assembly

  34. Structured Programming приложимост спрямо GOTO

  35. Relational Model приложимост спрямо файлове

  36. C++ възможност спрямо C

  37. Java приложимост спрямо C++

  38. Разширяване Свиване

  39. “твърде бавно”

  40. “твърде ограничаващо”

  41. Повечето нови технологии и подходи са реакция към съществуващи технологии

    и подходи
  42. Реакциите са стандартни: скептичност и консерватизъм

  43. Няма значение, че сега това са едни от най-утвърдените и

    най-сигурни технологии
  44. Като индустрия, ние сме ужасно скептични към всяка нова технология

  45. “Скептичен” е лоша дума, понеже предполага съмнение, а не отричане.

    Съответно, ...
  46. Ние сме страхливи

  47. КРАСИВА ТЕОРИЯ ГРОЗНА РЕАЛНОСТ

  48. Имаме страхотна теория как се правят нещата - езици, бази,

    компилатори, архитектури, операционни системи
  49. На практика, всяка стабилна система е назадничава, серия от компромиси

    или просто каша
  50. “Чукча писател, чукча не читател”

  51. малко примери

  52. HTML & HTTP

  53. JavaScript DOM

  54. None
  55. x86

  56. None
  57. повечето програмни езици

  58. None
  59. Може би това е нормалният цикъл за най-използвания софтуер и

    няма друг начин
  60. Можем да се справим по-добре за софтуера, който ние пишем

  61. а дано, ама надали

  62. Ние мислим краткосрочно

  63. ИНДУСТРИЯ НА МЕТАФОРИТЕ

  64. Използваме много метафори да говорим за софтуер помежду си

  65. Заемаме фрази от други сфери, понеже нямаме собствени

  66. None
  67. None
  68. None
  69. None
  70. Метафорите са опасни - могат да ни поведат по грешен

    път
  71. В строителството, нещата трябва да стават в определен ред. Метър

    грешка струва много. Планът и спецификацията са критични.
  72. Имаме copy/paste. Ако метафоричния мост се срути, може да вдигнем

    хиляда нови за секунди.
  73. Agile не е революция - просто ни откъсва от грешната

    метафора
  74. Ние сме объркани

  75. ПРАГМАТИЦИ VS. МЕЧТАТЕЛИ

  76. прагматици мечтатели

  77. Прагматиците искат предимно да свършат работата

  78. Мечтателите искат да направят нещо красиво

  79. Рядко някой е в крайност, но често сме близо до

    тях
  80. Не е черно-бяло - има “добри” прагматици и “лоши” мечтатели

  81. Прагматиците рискуват да си затворят очите за новото

  82. None
  83. Не е лошо да си прагматик, но трябва да внимаваш

    да не се затвориш за новото
  84. Трудно е да бъдеш единия в екип от другите

  85. Когато прагматиците надделеят, това често потиска развитието в дадена среда

  86. Ние сме склонни към регрес

  87. КАКВО ЗНАЧИ ВСИЧКО ТОВА?

  88. 1.Ние сме страхливи 2.Ние мислим краткосрочно 3.Ние сме объркани 4.Ние

    сме склонни към регрес
  89. None
  90. 1.Ние сме страхливи 2.Ние мислим краткосрочно 3.Ние сме объркани 4.Ние

    сме склонни към регрес
  91. None
  92. Не сме обречени. Винаги ще има хора, които да ни

    дърпат напред.
  93. Къде сме? С тях или в авангарда?

  94. Къде е нашето community?

  95. Какво да възпитаваме?

  96. Страст

  97. Смелост

  98. Hardcore умения

  99. Работещ софтуер

  100. None
  101. fin

  102. None