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

Mastering the Craft

Mastering the Craft

A couple of ideas on what it is to be a software craftsman.

Stefan Kanev

May 11, 2012
Tweet

More Decks by Stefan Kanev

Other Decks in Programming

Transcript

  1. 200

  2. 1. Да бъдеш програмист и няколко трудни истини 2. Неща,

    които ми се иска да знаех преди 10 години 3. С какво може да започнете още днес План
  3. 1. Да бъдеш програмист и няколко трудни истини 2. Неща,

    които ми се иска да знаех преди 10 години 3. С какво може да започнете още днес План
  4. Всяка котка има 3 имена: 1. Едно за хората 2.

    Едно за другите котки 3. Едно за себе си
  5. Все пак, това е много по- добре от начина, по

    който ни виждат другите програмисти
  6. “Аз съм неакредитиран психолог, терапевт, механик, дипломат, бизнесмен и учител,

    в индустрия, която все още дефинира себе си всеки ден.” - Ka Wai Cheung
  7. Оказа се, че писането на код е най-лесната част. Всичко

    останало е по-трудно и без него не може.
  8. Трудна истина №1 Писането на код е най-лесната част. Ако

    не сте готови да се изправите пред всичко останало, не се захващайте с това.
  9. Не сме 80те. Работата не трябва да е мъчителна и

    неприятна. Трябва да ни доставя удоволствие.
  10. Трудна истина №2 Ако не обичате да програмирате и всички

    аспекти свързани с това, не се захващайте с този занаят.
  11. Днес пиша на Ruby и това е сигурно Преди 7

    години беше риск 7 години по-рано Java беше риск Преди това управлявахме паметта
  12. В един занаят постоянно трябва да се развивате, да учите

    нови техники и да гледате какво правят другите занаятчии
  13. Трудна истина №3 Ако не сте готови да се посветите

    на занаята, не се захващайте с него
  14. Трудна истина №4 Програмирането не е работа от 9 до

    5. Програмирането е начин на живот. Ако не сте готови на жертви, не се захващайте със занаята.
  15. 1. Да бъдеш програмист и няколко трудни истини 2. Неща,

    които ми се иска да знаех преди 10 години 3. С какво може да започнете още днес План
  16. Ще ви кажа десет урока, които ми се иска да

    бях научил преди десет години
  17. Урок №1: Текстов редактор Изберете един текстов редактор и станете

    майстори в него. Научете как да променяте най-малките му детайли. Ползвайте го за всичко. Персонализирайте го агресивно.
  18. Урок №2: Процес и подход Постоянно анализирайте процеса си. Опитайте

    да го структурирате. Подобрявайте го постоянно.
  19. Ако сядате пред машина, блъскате се X часа и накрая

    магически произвеждате резултат, правите нещо грешно
  20. Мислете за следните неща как тествате програмата си? какво правите

    като има проблем? кога правите дизайн? кога правите рефакторинг? над какво работите в момента? кога се отказвате и пробвате друго? как предавате подхода на други?
  21. Урок №3: Контрол на версии Научете една система за контрол

    на версии и я ползвайте за всичко, което правите.
  22. Урок №4: Дисциплина Най-важното нещо докато програмирате е да бъдете

    дисциплинирани. Програмирането е невероятно сложно и ако не разчитате на навици, бързо ще се загубите.
  23. Когато човек е под стрес, той прибягва до предишните си

    навици. Ако нямате дисциплина, стреса ще ви убива.
  24. Урок №5: Водете си бележки Разработете си система за водене

    на бележки. Описвайте всичко, което научите. Четете ги редовно. Направете това част от процеса си.
  25. Урок №6: Ритуал за развитие Изградете си стриктен процес, с

    който научавате нови неща. Спазвайте го фанатично. Ревизирайте го периодично.
  26. Урок №7: Научете много езици Научете много езици за програмиране.

    Научете ги в дълбочина. Трябва да са разнообразни.
  27. Всеки език е ви дава нов начин на мислене. Той

    е много по- важен от синтаксиса.
  28. Чували сме един тон глупости “Ruby е твърде бавен и

    не става за големи неща” “Java е твърде бавна и не става за големи неща” “Релационните бази данни са хубаво академично упражнение, но не стават за истински проекти” “Структурираното програмиране е хубаво академично упражнение, но не става за истински проекти” “C е твъре бавен и не става за реални неща”
  29. Все пак, Haskell няма да стане голям ...твърде бавен и

    не става за големи неща ...хубаво академично упражнение, но не става за истински проекти
  30. Ruby Python Perl C C++ Assembly Java AspectJ Scala Erlang

    Scheme Haskell Io Prolog JavaScript CoffeeScript PHP Basic Pascal Smalltalk Tcl
  31. Урок №8: Направете си dotfiles Повечето unix инструменти могат да

    се персонализират. Правете го агресивно. Дръжте настройките във version control.
  32. Персонализацията на инструментите е част от процеса ви. Ще ги

    развивате повече, ако имате лесен начин за това.
  33. Урок №9: Правете OpenSource Занимавайте се с отворен код. Ще

    научите много. Ще се запознаете с интересни хора. Ще придобиете много умения.
  34. Урок №10: Пазете здравето си В работата ни има здравословни

    рискове. Седенето и стресът са убийствени. Мислете за това отрано. Появят ли се проблемите, ще е твърде късно.
  35. 1

  36. Седенето по цял ден е опасно. Поддържайте правилна стойка. Намирайте

    време за спорт. Спете достатъчно. Хранете се здравословно.
  37. Стресът е след най-големите убийци на 21 век. Не се

    претоварвайте. Ако имате нужда от почивка - направете го. Здравето ви е по-важно.
  38. Намирайте време за семейство, партньори, приятели и хобита. Ако ги

    жертвате твърде често за работата си, тя ще страда.
  39. 1. Текстов редактор 2. Процес и подход 3. Контрол на

    версии 4. Дисциплина 5. Водете си бележки 6. Ритуал за развитие 7. Научете много езици 8. Направете си dotfiles 9. Правете OpenSource 10. Пазете здравето си
  40. 1. Да бъдеш програмист и няколко трудни истини 2. Неща,

    които ми се иска да знаех преди 10 години 3. С какво може да започнете още днес План
  41. Днес. Създайте си профил. Качете каквото можете. Почнете да следите

    интересни проекти и хора. 1 Регистрирайте с в Github
  42. Изберете си Vim или Emacs и започнете да го учите

    днес. Ползвайте го навсякъде. Не се подавайте на изкушението да ползвате стария си редактор. Започнете с редактор 2
  43. $ mkdir dotfiles $ cd dotfiles $ git init .

    Направете си dotfiles 3