Дневник разработчика Developer's diary
Та же
профессия.
Same
profession.
Курс начинается.
Перед тем как вы напишете первую строчку —
пара слов о том, во что вы вступаете.
The course is starting.
Before you write your first line —
a few words about what you're stepping into.
↓ scroll
Что впереди What's ahead
Проект, который вы делаете.
Команда, в которой у каждого своя часть.
И дневник — по одному на каждого из вас.
A project you're building.
A team where everyone has their part.
And a diary — one per person.
Мы смотрим на то, как вы думаете,
а не только на то, что вы в итоге сделаете.
We watch how you think —
not just what you eventually ship.
Поэтому писать — будете. So — you'll be writing.
Да Винчи называл себя инженером. Брунеллески — тот, кто поставил купол Флорентийского собора, — тоже. Da Vinci called himself an engineer. So did Brunelleschi — the one who put up the dome of the Florence Cathedral.
Слово «инженер» старше слова «программист» лет на пятьсот. И всё это время оно означало одно и то же: человек, который что-то делает руками и головой. Меняются инструменты — не меняется суть. The word "engineer" is some five hundred years older than "programmer". And all that time it has meant the same thing: a person who makes things with their hands and head. Tools change — the essence doesn't.
Вы — в этой же профессии. Не в её великом крыле. В её рабочей комнате. Но в той самой — где одни и те же вопросы задавались уже пятьсот лет. You're in that same profession. Not in its grand wing. In its workshop. But it's the same one — where the same questions have been asked for five hundred years.
И у этой профессии всегда был один общий инструмент: блокнот. And this profession has always had one shared tool: a notebook.
Три человека. Три эпохи. Одна и та же практика. Three people. Three eras. The same practice.
Леонардо да Винчи Leonardo da Vinci
Италия · 1500 Italy · 1500
Носил с собой блокнот всю жизнь. Записывал наблюдения, идеи, ошибки, вопросы без ответов. До нас дошло семь тысяч страниц. Не дневник чувств — рабочий инструмент мышления. Рядом с эскизами вертолёта — расчёты шестерён и список, сколько стоит яблоко на рынке. Carried a notebook with him his whole life. Recorded observations, ideas, mistakes, unanswered questions. Seven thousand pages survive. Not a feelings journal — a working tool of thought. Beside helicopter sketches: gear calculations, and a list of what an apple costs at the market.
Ричард Фейнман Richard Feynman
Принстон · 1940-е · нобелевский лауреат по физике Princeton · 1940s · Nobel laureate in physics
Готовясь к квалификационному экзамену, не стал перечитывать учебники. Открыл чистую тетрадь и написал на первой странице: «Вещи, которых я не знаю». Потом неделю за неделей разбирал каждую тему и записывал объяснения своими словами. Не для преподавателя — для себя. Чтобы увидеть, где понимание рассыпается. Этот метод носит его имя до сих пор. Preparing for his qualifying exam, he didn't re-read the textbooks. He opened a blank notebook and wrote on the first page: "Things I don't know". Then, week after week, he worked through each topic and wrote out explanations in his own words. Not for a professor — for himself. To see where his understanding fell apart. The method bears his name to this day.
Джон Кармак John Carmack
id Software · 1996–2010 · создатель Doom и Quake id Software · 1996–2010 · creator of Doom and Quake
С 1996 года вёл публичный .plan-файл. Запись за записью — что попробовал, какое решение принял и почему. Так почти четырнадцать лет: не каждый день, но стабильно — пока в 2010-м не ушёл из id Software и перешёл на закрытые блоги. Это стало легендой в индустрии. Не потому что Кармак любил писать. А потому что понимал: записать — значит понять. From 1996 he kept a public .plan file. Entry by entry — what he tried, what he decided, why. For nearly fourteen years: not every day, but consistently — until 2010, when he left id Software and moved to private blogs. It became industry legend. Not because Carmack loved writing. Because he understood: writing it down means understanding.
Не потому что они были гениями. Потому что это часть работы — для любого, кто что-то делает всерьёз. Not because they were geniuses. Because it's part of the work — for anyone doing something seriously.
Никто из них не начинал с шедевров. None of them started with masterpieces.
В блокнотах Да Винчи, рядом с чертежами летающей машины — списки покупок, подсчёт личных расходов, записи типа «купить очки, восемь сольди». Не все семь тысяч страниц гениальны. Важно другое — он не переставал писать. Каждый день. Шестьдесят семь лет подряд. In Da Vinci's notebooks, beside sketches of a flying machine — shopping lists, personal expenses, entries like "buy spectacles, eight soldi". Not all seven thousand pages are brilliant. What matters is something else — he never stopped writing. Every day. For sixty-seven years.
Ранние тетради Фейнмана — не стройные тексты, а фрагменты: непонятое, недоведённое, прочерки на месте формул. «Вещи, которых я не знаю» — это не декларация о методе. Это честное признание состояния. Именно оттуда и пришло понимание, куда смотреть дальше. Feynman's early notebooks aren't polished texts but fragments: half-understood things, unfinished, dashes where formulas should be. "Things I don't know" isn't a manifesto about a method. It's an honest admission of state. That's where the next direction came from.
Первые .plan-файлы Кармака в 1996 году — короткие технические заметки: «работал над рендерингом», «исправил баг в сетевом коде». Через десять лет они превратились в подробные инженерные эссе, на которых училось целое поколение разработчиков. Между первой и последней записью — четырнадцать лет стабильной привычки. Не всегда каждый день: были паузы на выходных, кранчи, отпуска. Но год за годом практика возвращалась. Carmack's first .plan files in 1996 were short technical notes: "worked on rendering", "fixed a bug in the network code". Ten years later they had become detailed engineering essays a whole generation of developers learned from. Between the first and last entry — fourteen years of steady habit. Not always daily: pauses on weekends, crunches, vacations. But year after year, the practice came back.
Умение писать дневник — это навык. Как любой навык, он растёт через повторение, а не через талант. Никто не пишет сразу хорошо. Никто. Writing a diary is a skill. Like any skill, it grows through repetition, not through talent. Nobody writes well at first. Nobody.
Вашу первую запись вам не захочется никому показывать.
Вторую — тоже.
Это нормально. Кармак в 1996-м тоже не хотел бы.
You won't want to show your first entry to anyone.
Your second one either.
That's normal. Carmack in 1996 wouldn't have wanted to either.
Washington University · 2006
Одна группа студентов прочитала материал четыре раза. Другая прочитала один раз — и три раза попыталась вспомнить по памяти. One group of students read the material four times. Another read it once — and tried to recall it from memory three times.
Через неделю первая группа помнила 39% материала. Вторая — 61%. Разница в полтора раза — только потому, что вторая группа не перечитывала, а пыталась вспомнить. Roediger & Karpicke, 2006. С тех пор повторено в десятках исследований. A week later the first group remembered 39% of the material. The second — 61%. A 1.5× difference — only because the second group didn't re-read, but tried to recall. Roediger & Karpicke, 2006. Replicated in dozens of studies since.
Разница не в усилии.
Разница в типе усилия.
The difference isn't in effort.
It's in the kind of effort.
Тест — это когда мозг узнаёт. Ему показывают четыре варианта, и он говорит: «А, вот этот знакомый». Чувство понимания возникает, а понимания часто нет. Через две недели 80% забудется. A test is when the brain recognizes. It sees four options and says, "Ah, that one looks familiar." The feeling of understanding shows up — but understanding often doesn't. Two weeks later, 80% is forgotten.
Написать текст — это когда мозг конструирует. Перед ним чистый лист, и ему приходится достать знание изнутри, собрать его заново, выстроить в структуру. Именно это делал да Винчи в своих блокнотах. Именно это делал Кармак в своих .plan-файлах. Writing is when the brain constructs. A blank page in front of it, and it has to pull knowledge from inside, assemble it again, build it into structure. That's what Da Vinci did in his notebooks. That's what Carmack did in his .plan files.
Дневник разработки — это unit-тест для ваших мыслей. A development diary is a unit test for your thinking.
Если вы не можете объяснить словами, как что-то устроено — у вас баг в понимании. И лучше найти его сейчас, чем на собеседовании. Дневник — самый дешёвый способ прогнать этот тест по каждой своей задаче. If you can't put into words how something works — there's a bug in your understanding. And it's better to find it now than at an interview. A diary is the cheapest way to run that test on every task you do.
От «для галочки» — до записи, которой хочется гордиться. From "for the checkbox" — to an entry you'd be proud of.
Между «я отметил, что было» и «я написал так, что самому захотелось перечитать» — не пропасть, а лестница. Грубо — пять ступеней. Чтобы было проще представить, покажем их на одной и той же задаче: компонент ProductCard в e-commerce приложении. Between "I noted that something happened" and "I wrote it so I'd want to re-read it later" — there isn't a chasm but a ladder. Roughly five rungs. To make it concrete, we'll show them on the same task: a ProductCard component in an e-commerce app.
Уровень 0 Level 0
Отметка Mark
Работал над проектом. Написал код. Всё работает. Worked on the project. Wrote code. Everything works.
Это честная запись о факте. Но через неделю даже автор не вспомнит, о каком коде речь. Формально обязательство выполнено. В памяти — ничего. An honest record of a fact. But a week from now, even the author won't remember which code this was about. The obligation is met formally. In memory — nothing.
Уровень 1 Level 1
Описание Description
Сделал компонент ProductCard с @Input-ами title, price, image. Добавил hover-эффект и адаптив. Built a ProductCard component with title, price, image @Inputs. Added a hover effect and responsive layout.
Факты сохранились. Путь — нет. Через год автор вспомнит, что был компонент ProductCard. Но не вспомнит, какие решения принимал, где споткнулся, что понял в процессе. The facts are saved. The path isn't. A year on, the author will remember there was a ProductCard component. But not which decisions they made, where they tripped up, what they understood in the process.
Уровень 2 Level 2
Рефлексия Reflection
Начал ProductCard со своими стилями. Через полтора часа увидел, что у нас в макете таких карточек ещё пять. Остановился, вынес стили в дизайн-систему. Потратил лишних два часа. Зато теперь любая новая карточка — три строчки. Started ProductCard with my own styles. After an hour and a half I noticed there were five more such cards in the layout. Stopped, moved the styles into the design system. Spent an extra two hours. But now any new card is three lines.
Появляется путь: где начал, что заметил, что изменил. Автор учится через рассказ самому себе. Такую запись уже стоит перечитывать — через неделю, через месяц, через год. A path appears: where it started, what was noticed, what changed. The author is learning by telling themselves the story. This kind of entry is worth re-reading — in a week, in a month, in a year.
Уровень 3 Level 3
Разбор вариантов Weighing options
Стоял выбор: хранить cart state в самом компоненте или в сервисе. За компонент — проще отладка, меньше зависимостей. За сервис — CartIcon и CheckoutButton тоже должны знать о выборе. Выбрал сервис. Пометил в дневнике: если через месяц останется один потребитель — вернуться и откатить. Had to choose: store cart state in the component itself or in a service. For the component: simpler debugging, fewer dependencies. For the service: CartIcon and CheckoutButton also need to know the choice. Picked the service. Noted in the diary: if a month from now there's only one consumer — come back and undo it.
Инженерное мышление на бумаге. В индустрии этот формат называют ADR — Architecture Decision Record. Навык, за который на собеседовании дают плюс. Не потому что красиво оформлено, а потому что видно: человек не угадал, а выбирал осознанно — и честно отметил, где готов передумать. Engineering thinking on paper. The industry calls this format an ADR — Architecture Decision Record. A skill that gets you a plus mark at an interview. Not because it's neatly formatted, but because you can see: the person didn't guess — they chose with awareness — and honestly noted where they're prepared to change their mind.
Уровень 4 Level 4
Запись, которой хочется гордиться An entry you'd be proud of
Три дня ловил баг: при открытии корзины HTTP-запрос /api/cart уходил дважды. Открыл DevTools — действительно два запроса каждый раз. Оказалось, подписывался на cart$ в ngOnInit — и параллельно в шаблоне через AsyncPipe. Каждая подписка на cold Observable — отдельный HTTP-вызов. Удалил ручной subscribe, оставил только AsyncPipe в шаблоне. Урок: AsyncPipe — не просто сахар, он ещё и шарит подписку. Ручной subscribe рядом с ним — лишний сетевой запрос. Завёл себе чеклист таких ловушек. Spent three days hunting a bug: opening the cart fired the HTTP request to /api/cart twice. Opened DevTools — yes, two requests every time. Turned out: I was subscribing to cart$ in ngOnInit, and in parallel via AsyncPipe in the template. Each subscription to a cold Observable is a separate HTTP call. Removed the manual subscribe, kept only AsyncPipe in the template. Lesson: AsyncPipe isn't just sugar — it also shares the subscription. A manual subscribe next to it is an extra network call. Started a checklist of traps like this for myself.
Выглядит как разбор в команде: что ломалось, что пробовал, что понял, что изменил в своих привычках. Не потому что так было нужно для отчёта. А потому что автору самому было важно разобраться — и закрепить урок, чтобы не повторять.

Такую запись хочется перечитать. И — неожиданно — показать. Не начальству. Не ментору. А самому себе через год — как доказательство, что ты умеешь думать.
Reads like a team postmortem: what broke, what was tried, what was understood, what changed in your own habits. Not because it was needed for a report. Because the author themselves wanted to figure it out — and lock in the lesson, so they wouldn't repeat it.

An entry like this you want to re-read. And — surprisingly — to show. Not to your boss. Not to your mentor. To yourself a year from now — as proof that you can think.
Никто не пишет сразу на четвёртой ступени.
И не нужно. Достаточно, чтобы каждая следующая запись была немного толще предыдущей.
Nobody writes at level four right away.
And you don't need to. It's enough that each next entry is a little thicker than the previous one.
В первую неделю у вас будет всё на нуле и единице. Через месяц у кого-то появится одна запись на тройке — и вы удивитесь, перечитав. К середине курса три записи из десяти будут на тройке, одна — на четвёрке. К концу проекта — дневник, который не стыдно открыть через год. In the first week, everything will be at zero or one. A month in, someone will produce a level-three entry — and they'll be surprised when they re-read it. By mid-course, three entries out of ten will be at level three, one at level four. By the end of the project — a diary you won't be embarrassed to open a year later.
Это и есть рост. Не в линиях кода. В качестве мышления, которое вы начали замечать за собой. That's growth. Not in lines of code. In the quality of thinking you've started noticing in yourself.
Два месяца такой практики дают совсем другой дневник.
Полгода — совсем другого инженера.
Two months of this practice give you a very different diary.
Six months — a very different engineer.
Ваш дневник — прежде всего для вас через полгода.
Когда будете готовить ответы на собеседовании.
Или просто захотите вспомнить, как вы сюда дошли.
Your diary is, first of all, for you in six months.
When you're preparing answers for an interview.
Or just want to remember how you got here.
Писать каждый день не нужно.
Писать красиво — тем более.
Нужно только одно: писать честно.
You don't have to write every day.
You don't have to write beautifully.
Only one thing: write honestly.
Первые будут корявые.
Десятые — чуть лучше.
Сотые — такие, что самому захочется показать.
The first ones will be rough.
The tenth ones — a bit better.
The hundredth — ones you'll want to show.
На первой странице напишите:
«Вещи, которых я не знаю.»
On the first page, write:
"Things I don't know."
И начинайте. And begin.