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
840
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Learn to Program in 10+ Years (HackConf 2016)
Bozhidar Batsov
October 18, 2016
More Decks by Bozhidar Batsov
See All by Bozhidar Batsov
RuboCop 2.0: Where do we go now?
bbatsov
0
79
Clojure: The Bad Parts
bbatsov
0
110
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
190
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
210
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
72
Victims of Complexity
bbatsov
0
350
Ruby 3.0 Redux (Spark Academy, Jan 2021)
bbatsov
1
290
Ruby 3.0 Redux (Pivorak 4.0)
bbatsov
0
510
The Elements of Programming Style (HackConf 2019)
bbatsov
0
220
Other Decks in Programming
See All in Programming
メールのエイリアス機能を履き違えない
isshinfunada
0
210
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
520
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
320
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
130
霧の中の代数的エフェクト
funnyycat
1
450
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
450
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
640
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
0
130
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
390
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
160
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
420
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
310
The untapped power of vector embeddings
frankvandijk
2
1.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
470
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
WENDY [Excerpt]
tessaabrams
11
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
420
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
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