Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learn to Program in 10+ Years (HackConf 2016)
Search
Bozhidar Batsov
October 18, 2016
Programming
1
830
Learn to Program in 10+ Years (HackConf 2016)
Bozhidar Batsov
October 18, 2016
Tweet
Share
More Decks by Bozhidar Batsov
See All by Bozhidar Batsov
Clojure: The Bad Parts
bbatsov
0
56
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
150
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
150
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
24
Victims of Complexity
bbatsov
0
310
Ruby 3.0 Redux (Spark Academy, Jan 2021)
bbatsov
1
260
Ruby 3.0 Redux (Pivorak 4.0)
bbatsov
0
460
The Elements of Programming Style (HackConf 2019)
bbatsov
0
190
The Groundhog Day Development Method (HackConf 2019)
bbatsov
0
280
Other Decks in Programming
See All in Programming
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
140
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.5k
XP, Testing and ninja testing ZOZ5
m_seki
2
270
私はどうやって技術力を上げたのか
yusukebe
43
17k
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
900
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1k
ABEMAモバイルアプリが Kotlin Multiplatformと歩んだ5年 ─ 導入と運用、成功と課題 / iOSDC 2025
akkyie
0
320
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
140
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
実践AIチャットボットUI実装入門
syumai
7
2.4k
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
130
dynamic!
moro
9
6.1k
Featured
See All Featured
Scaling GitHub
holman
463
140k
Speed Design
sergeychernyshev
32
1.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Building an army of robots
kneath
306
46k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
RailsConf 2023
tenderlove
30
1.2k
Thoughts on Productivity
jonyablonski
70
4.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
It's Worth the Effort
3n
187
28k
Transcript
None
ЙО!
None
Hack
Conf
Hack
Conf
Hack
Conf
Божидар
@bbatsov
None
None
None
2^5
None
None
Как да се научим да програмираме за 21 дни Божидар
Бацов
None
Научете за променливи, константи, масиви, низове, изрази, твърдения, функции,… Ден
1 - 10
Научете за потока на изпълнение на една програма, основи на
ООП,… Ден 11 - 21
Програмирайте ударно за кеф. Забавлявайте се в процеса, но не
забравяйте да се учите от грешките си. Ден 22 - 697
Общувайте с други програмисти. Работете по проекти с тях. Учете
от тях. Ден 698 - 3648
Научете висша теоретична физика и формулирайте консистента теория на квантовата
гравитация. Ден 3649 - 7781
Научете биохимия, молекулярна биология, генетика,… Ден 7782 - 14611
Използвайте познанията си по биология, за да направите елексир на
младостта. Ден 14611
Използвайте познанията си по физика, за да направите машина на
времето и да се върнете в ден 21. Ден 14611
Убийте младото си “аз” и заемете мястото му. Ден 21
Все още не е открит по- прост начин да се
научите да програмирате за 21 дни…
Как да се научим да програмираме за 10 години Божидар
Бацов
9 години Emacs
1 година всичко останало
None
Как да се научим да програмираме за 10+ години Божидар
Бацов
Защо се занимаваме с програмиране?
None
None
None
Софтуера управлява живота ни
Програмистите решават проблеми посредством софтуер
Ние създаваме софтуер
Ние сме модерните богове
None
Правете нещо, което обичате
Аз обичам да програмирам!
None
Apprentice Journeyman Master
Чирак Калфа Майстор
None
A long time ago in a galaxy not far away….
1997
None
None
1998
None
None
None
None
None
Убеден бях че не знам почти нищо за програмирането
3 lvl Dev Knight
3/100
Плафон и половина
None
None
Слаба учебна програма отказва всеки
Сега всички имате достъп до страхотни образователни ресурси онлайн
Khan Academy
Coursera
edX
2003
None
None
None
None
None
2004
None
None
None
Technical support
Средата е супер важна
Повечето книги за програмиране издадени в България не стават
None
None
None
None
None
None
Уиндоус не е единствената операционна система
Системното програмиране под Unix е забавно
FreeBSD е най-великата операционна система
None
None
Тунинговането на операционната ти система е супер забавно
Компилирането на ядро е мега яко
vim е странен, но готин редактор
None
Не ограничавайте процеса на учене до рамките на работния ден
less is more
more is more
Поддръжката е една супер неблагодарна работа
Не отивай пиян на работа
10 lvl Dev Knight
2005
Systems Programmer
Средата е важна
FTP не става за version control
Правилните инструменти те правят по-продуктивен
None
Emacs
GNU/Linux
Gentoo
Необходима е стратегия за развитие
None
Развивай се в много посоки
Виж какво те кефи най-много
23 lvl Dev Knight
2006
C++ Programmer
Средата е важна
Emacs е велик
None
None
None
Трябва да можеш да дебъгваш ефективно
Огромните С++ приложения се компилират бавноооооо
None
Трябва да можеш сам да се ориентираш в кода
Това, за което са те наели, не значи нищо
Понякога просто се налага да правиш нещата, които са важни
None
Постоянното тунинговане на операционна система е загуба на време
None
В голямата фирма нещата се случват бавно
Пренаписванията на проекти са опасни…
…и обикновено не свършват
Ефективното планиране е важно
Екипите, в които има само тесни специалисти, са неефективни
Programming is thinking, not typing. —Casey Patton
Но не е лошо и да можете да пишете като
хората…
None
Механичните клавиатури са велики
None
Leopold FC 660C
Караокето е най- висшата форма на team building
None
Да ходиш с колежка е лоша идея
32 lvl Dev Knight
Професионална криза
None
All programming and no play make Bozhidar a dull boy.
Стара народна мъдрост
None
2008
Java Programmer
Средата е важна
Прагматично програмиране
Pair programming кърти, чисти и извозва
Базови добри практики • Прилична документация • Автоматизирани тестове •
Continuous integration • Code review • Планиране на работата • Ретроспективи
Трябва да се инвестира в хората
Java програмистите са Джедаи
C програмистите са Сити
Широк спектър задачи - от десктоп приложения до Java Enterprise
Swing > HTML + CSS
Различни проблеми, различна оптимална технология
Groovy, Scala, Ruby
За да израстваш трябва да поемаш отговорности
Консултантската работа не става
51 lvl Dev Knight
Преподавател
None
Уменията да презентираш са важни
Не разбираш нещо, ако не можеш да го обясниш
Научаваш повече отколкото хората, на които преподаваш
Индивидуалният подход дава много добри резултати
Голяма част от студентите не знаят защо са на курса
ти
Партитата на курсовете са топ забавни
None
OSS Developer
0 -> 1
None
None
Emacs… отново
Когато един проект ти е присърце мотивацията ти е епична
Разпределените екипи работят
Винаги има някой по-умен от теб, от който да учиш
Четенето на добър код е един от най-добрите начини да
се учиш
Чувството някой да ползва твой проект е невероятно
Да комитваш в Emacs е по-яко от да правиш секс
Абсолятно!
2011
Technical Lead
Средата е важна
Ти си голям фактор в изграждането и
Средата в start-up-ите е уникална
Продуктова компания > Ишлеме софт
Трябва да научиш това- онова за мениджънт на хора и
проекти
Трябва ти да се научиш да разпознаваш добри попълнения за
екипа ти
Трябва да имаш стратегия за развитие на тима
По-голям фокус върху архитектурни решения
Повече време отделено на проучване
Не трябва да си гъз
None
67 lvl Dev Knight
2013
CTO
Средата е важна
Ти създаваш средата
Ти избираш технологиите
Най-добрата технология не винаги е технология, която познаваш
Познато != Просто
Познато != Оптимално
Занимаваш се с всичко…
…освен с програмиране
81 lvl Dev Knight
Равносметката
Програмирам от 18 години
Програмирам професионално от 12 години
В период на около 5 години регистрирах огромни темпове на
развитие
Бат Божо, колко зле беше миналата година… — Бат Божо
None
Продължавам да научавам нови неща почти всеки ден
Технологиите са развиват стремглаво
Ако не се развиваш в крак с тях ще гледаш
прогреса им само отстрани
Рецептата за успеха
500 мл хъс
800 гр добра среда
5 кг практика
20 Разнообразни и разнородни проекти
3 с.л. забавления
Пече се на бавен огън 10 години
None
Felina twitter: @bbatsov github: @bbatsov http//batsov.com http://emacsredux.com HackConf 2016 София
Сити, България 16.10.2016