newsmode
search
Меню
arrow_back Назад

DataTalksClub - The Importance Of Writing In A Tech Career

auto_awesomeКраткое саммари

Eugene Yan, прикладной учёный из Amazon, рассказывает в подкасте DataTalks.Club о том, почему умение писать — ключевой навык в технической карьере. Он делится своим путём от выпускника факультета психологии до специалиста по машинному обучению, описывает свой процесс написания статей: 50–70% времени уходит на итерации по структуре (outline), а не на прозу, и каждую неделю он публикует новый материал, тратя около 25 часов. Eugene выделяет три мотивации: делиться знаниями, учиться через письмо и быть «маяком» для единомышленников. Также обсуждается культура документов в Amazon — пресс-релизы и дизайн-документы вместо презентаций — и практические советы для начинающих: просто начать писать, не гнаться за оригинальностью и не тратить время на выбор идеальной платформы.

DataTalksClub - The Importance Of Writing In A Tech Career

DataTalksClub — Важность письма в технической карьере

[ writing career ] · 45 min read

[ writing career ] · 45 мин. чтения

I recently had the pleasure to be on the DataTalk.Club podcast, where Alexey and I chatted about the importance of writing in a tech career. We discussed about why I started writing, what keeps me motivated to write week-after-week, my writing process, how to start writing, the writing culture and process at Amazon, and more.

Недавно мне посчастливилось побывать в подкасте DataTalk.Club, где мы с Alexey обсудили важность письма в технической карьере. Мы поговорили о том, почему я начал писать, что мотивирует меня писать неделя за неделей, о моём процессе написания, о том, как начать писать, о культуре и процессе написания в Amazon и о многом другом.

• • •

• • •

Here’s the transcript for our chat, lightly edited for clarity and readability.

Ниже — расшифровка нашего разговора, слегка отредактированная для ясности и удобства чтения.

Alexey Grigorev: Hello everyone. Thanks for coming to our event today. This event is brought to you by datatalks.club, which is a community of people who like to talk about data.

Alexey Grigorev: Всем привет. Спасибо, что пришли на наше мероприятие сегодня. Это мероприятие организовано datatalks.club — сообществом людей, которые любят говорить о данных.

Today we’ll talk about technical writing and blogging. We have a special guest today, Eugene Yan. Eugene works at the intersection of machine learning and product. He likes building pragmatic machine learning systems. And he also writes and speaks about effective data science, machine learning in production, and career growth.

Сегодня мы поговорим о техническом писательстве и блогинге. У нас сегодня особенный гость — Eugene Yan. Eugene работает на стыке машинного обучения и продукта. Ему нравится создавать практичные системы машинного обучения. А ещё он пишет и выступает на темы эффективной data science, машинного обучения в продакшене и карьерного роста.

If you follow Eugene, you’ll know that he writes a lot every week on his personal site. Naturally, it was very difficult for me to think of anyone else who is more suited for this podcast episode. So thank you, Eugene. Welcome.

Если вы следите за Eugene, вы знаете, что он пишет очень много каждую неделю на своём личном сайте. Естественно, мне было очень сложно придумать кого-то более подходящего для этого выпуска подкаста. Так что спасибо тебе, Eugene. Добро пожаловать.

Eugene Yan: Thank you, Alexey, it’s a pleasure to be here.

Eugene Yan: Спасибо, Alexey, рад быть здесь.

Alexey Grigorev: Before we go into our main topic of writing, let’s start with your background. Could you tell us a bit about your journey so far, about your career, about how you started.

Alexey Grigorev: Прежде чем мы перейдём к нашей основной теме — письму, — давайте начнём с твоего бэкграунда. Можешь рассказать немного о своём пути, о карьере, о том, как ты начинал.

Eugene Yan: It’s a bit of an unusual journey. I graduated with a Psychology degree about 10 years ago. I spent a few years working on investment policy and decided that I didn’t really like it. I was doing a lot of contracts and agreements and I wanted to work more with data. So, I took about 20 - 30 MOOCs and interviewed at a few places and very luckily got accepted at IBM.

Eugene Yan: Мой путь довольно необычный. Я окончил факультет психологии около 10 лет назад. Несколько лет проработал в сфере инвестиционной политики и понял, что мне это не очень нравится. Я много занимался контрактами и соглашениями, а хотел больше работать с данными. Поэтому я прошёл примерно 20–30 онлайн-курсов (MOOC), сходил на собеседования в несколько компаний и мне очень повезло — меня приняли в IBM.

While I was at IBM I did a Kaggle competition on product classification. My team and I managed to get into the top 3% and we happened to share about our attempt at a meet-up. It happened that an e-commerce startup was facing a similar problem about how to categorize products correctly and they had someone in the audience.

Пока я работал в IBM, я участвовал в соревновании Kaggle по классификации продуктов. Моя команда попала в топ-3%, и мы рассказали о нашем подходе на митапе. Случилось так, что один e-commerce стартап сталкивался с аналогичной проблемой — как правильно категоризировать товары — и в зале был их представитель.

So they invited me in for lunch and asked how I would solve the problem for them in different languages in Vietnam and Indonesia and English. And they next day they offered me a job. I was excited to experience how start-up was like. I was pretty early in my career then and joined as their third data scientist.

Они пригласили меня на обед и спросили, как бы я решил эту задачу для них на разных языках — во Вьетнаме, Индонезии и на английском. А на следующий день предложили работу. Мне было интересно узнать, каково это — работать в стартапе. Я был ещё в начале карьеры и присоединился к ним в качестве третьего дата-сайентиста.

That startup was Lazada. A few years later Alibaba acquired us and I moved on to a health tech start-up. Unfortunately, that didn’t work out very well. So now here I am. I’m now an Applied Scientist at Amazon in Seattle, working on recommendation and machine learning systems.

Этим стартапом был Lazada. Через несколько лет Alibaba нас приобрела, и я перешёл в health-tech стартап. К сожалению, там всё сложилось не очень хорошо. Так что вот я здесь. Сейчас я Applied Scientist в Amazon в Сиэтле, работаю над рекомендательными системами и машинным обучением.

Alexey Grigorev: So if anyone tells you that Kaggle is a waste of time, you’re a living proof.

Alexey Grigorev: Так что если кто-то скажет вам, что Kaggle — пустая трата времени, вы — живое доказательство обратного.

Eugene Yan: Haha, I was really lucky.

Eugene Yan: Ха-ха, мне просто очень повезло.

Alexey Grigorev: There is an article about your career journey right and this is one of your most viewed one right, how is it called?

Alexey Grigorev: У тебя же есть статья о твоём карьерном пути, и это одна из самых просматриваемых, верно? Как она называется?

Eugene Yan: I’ll post a link later. I’ll find the link and I’ll share it later.

Eugene Yan: Я скину ссылку позже. Найду и поделюсь.

Alexey Grigorev: It’s a pretty detailed career journey. That’s an awesome read, I recommend everyone to read it, like pretty much every other article that you wrote. Since we’re talking about writing today, I’m curious, when did you start writing and by writing I mean like internal not necessarily like technical documentation, because like when you just started your career I guess you need to write a bit. But like something external, like blogging, when did you start doing that?

Alexey Grigorev: Это довольно подробное описание карьерного пути. Отличное чтение, рекомендую всем прочитать, как и практически любую другую статью, которую ты написал. Раз уж мы сегодня говорим о письме, мне любопытно: когда ты начал писать? И я имею в виду не внутреннюю документацию — понятно, что в начале карьеры приходится что-то писать. А именно что-то внешнее, вроде блогинга — когда ты начал этим заниматься?

Eugene Yan: So I’m looking at my site now and my first post was from September 2015. This was a report for DataKind, which is an NGO that works on projects. So this was a project accelerator with a few NGOs that we were trying to help out. Why did I write that? Because they were just asking for volunteers to write, so I volunteered. Why did I volunteer? I’ll admit that my reason for volunteering was not entirely altruistic. I volunteered because I wanted to practice writing.

Eugene Yan: Я смотрю сейчас на свой сайт, и мой первый пост был от сентября 2015 года. Это был отчёт для DataKind — НКО, которая занимается проектами. Это был проектный акселератор с несколькими НКО, которым мы пытались помочь. Почему я это написал? Потому что они искали волонтёров для написания текстов, и я вызвался. Почему вызвался? Признаюсь, мои мотивы были не совсем альтруистическими. Я вызвался, потому что хотел попрактиковаться в письме.

I know Alexey asked, when did I start writing? But I also want to answer the question of why did I start writing, which I think is a very important one. Back then, I interviewed several data scientists and data science leads that I admire, some of them two to three steps ahead of me, similar to how I interviewed Alexey a few months ago for the informal mentors series.

Я знаю, Alexey спросил, когда я начал писать. Но я хочу также ответить на вопрос, почему я начал писать, — а это, на мой взгляд, очень важный вопрос. Тогда я провёл интервью с несколькими дата-сайентистами и руководителями data science, которыми восхищался, — некоторые из них были на два-три шага впереди меня, — похоже на то, как несколько месяцев назад я интервьюировал Alexey для серии informal mentors.

Alexey Grigorev: Haha, I’m not two or three steps ahead of you.

Alexey Grigorev: Ха-ха, я не на два-три шага впереди тебя.

Eugene Yan: The key question I asked them was what skills do I need to be an effective data scientist? Was it domain expertise, ninja hacking skills, PhD level research, data pipelining? what was it? The answer I got really surprised me. Um, anyone want to make a guess? … I guess not, everyone’s too shy.

Eugene Yan: Ключевой вопрос, который я им задавал: какие навыки нужны, чтобы быть эффективным дата-сайентистом? Экспертиза в предметной области, хакерские навыки ниндзя, исследования на уровне PhD, построение пайплайнов данных? Что именно? Ответ меня очень удивил. Хочет кто-нибудь угадать? … Видимо, все слишком стесняются.

Alexey Grigorev: I can try, business skills?

Alexey Grigorev: Я попробую — бизнес-навыки?

Eugene Yan: No, you know, they say that all that could be learned. But the thing that really made someone on the team really stand out was the ability to communicate, the ability to write, the ability to speak with non-technical speakers, so that things could happen.

Eugene Yan: Нет. Они говорили, что всему этому можно научиться. Но то, что действительно выделяло человека в команде, — это умение коммуницировать, умение писать, умение разговаривать с нетехническими людьми так, чтобы дела двигались.

To be honest, when they first told me that I thought they were just bullshitting, that they were just kidding me. But then I decided, okay, I asked them this, 80% of them say the same thing. I’m going to try it for one year. So for one year, anytime that people need something to be written, I’m going to do that.

Честно говоря, когда мне это впервые сказали, я подумал, что они просто шутят, что это ерунда. Но потом я решил: ладно, я их спросил, 80% говорят одно и то же. Попробую в течение года. И целый год каждый раз, когда нужно было что-то написать, я брался за это.

So I wrote for a year and in that same year, I also spoke at my very first meetup, which was about the Kaggle competition. And in that one year so many good things happen to me, and I decided that, hey, you know, I’m going to try this again for another year. And so that eventually became a habit. So I guess it’s a long, long answer. I started writing about five years ago because people told me to write, because they say that this is important for you to be effective. And that’s why I did it.

Так я писал год, и в тот же год я выступил на своём первом митапе — о соревновании Kaggle. И за этот год со мной произошло столько хорошего, что я решил: ладно, попробую ещё год. И в итоге это стало привычкой. Так что, если коротко: я начал писать около пяти лет назад, потому что люди сказали мне писать, потому что они говорили, что это важно для эффективности. Вот почему я это делаю.

Alexey Grigorev: And actually, Ricky in chat wrote “communication”. So he was correct.

Alexey Grigorev: И, кстати, Ricky в чате написал «коммуникация». Так что он угадал.

Eugene Yan: He got it, yes, he got it.

Eugene Yan: Да, он угадал, верно.

Alexey Grigorev: Yeah. And so this is, I guess, what keeps you motivated right? Because I think it’s pretty similar for me. I know that writing is important. I know all these benefits that it can give me all like all these connections. And every time I post something like some people reach out to me and ask things, but still, it’s very difficult to write, because, you know, writing is difficult.

Alexey Grigorev: Да. И, наверное, это то, что тебя мотивирует, верно? Потому что, мне кажется, у меня похожая ситуация. Я знаю, что писать важно. Я знаю обо всех преимуществах, которые это даёт, — обо всех этих связях. И каждый раз, когда я что-то публикую, люди пишут мне и задают вопросы. Но всё равно писать очень трудно, потому что, ну, писать — это сложно.

It takes a lot of time. It takes preparation and sometimes, you even interview some people to actually get material. It takes a lot of time and effort. And the reward is not immediate. So yeah, you still need to put a lot of effort and then you need to do this regularly. So what keeps you motivated, like this reward or something else?

Это требует много времени. Требует подготовки, а иногда приходится даже интервьюировать людей, чтобы собрать материал. Это много времени и усилий. И награда не приходит сразу. Так что да, нужно прикладывать много усилий, и делать это регулярно. Так что тебя мотивирует — эта награда или что-то другое?

Eugene Yan: That’s a good question. At the end of 2020, I did some reflection. I went back through all my posts and one thing really stood out. I realized that the main reason why I write is to share.

Eugene Yan: Хороший вопрос. В конце 2020 года я провёл рефлексию. Я просмотрел все свои посты, и одна вещь сильно выделялась. Я понял, что главная причина, по которой я пишу, — это желание делиться.

For example, I would do my projects and I would share with people this is how I clean the Amazon data, this is how I deploy an API. I also wrote about the classes I took at the Online Masters of Computer Science at Georgia Tech. I wrote a summary for each class because a lot of people were asking me questions about which classes are good, which professors are good. So I wrote that. And when I attend conferences and some of these conferences are expensive, so I wanted to share my notes as well. So, I just write and put them online.

Например, я делал свои проекты и рассказывал людям: вот так я очищаю данные Amazon, вот так я разворачиваю API. Ещё я писал о курсах, которые проходил в рамках онлайн-магистратуры по информатике в Georgia Tech. Я написал обзор каждого курса, потому что многие спрашивали, какие курсы хорошие, какие преподаватели хорошие. Вот я и написал. А когда я посещал конференции — а некоторые из этих конференций стоят дорого — мне хотелось поделиться своими заметками. Так что я просто писал и выкладывал в сеть.

And that was first reason that and it’s a very satisfying reason because when I share and other people find it helpful, it motivates me to write more. So thankfully I happen to be motivated by this and that continues me to write.

И это была первая причина, и она очень приятная, потому что когда я делюсь и другие люди находят это полезным, это мотивирует меня писать ещё больше. Так что, к счастью, меня мотивирует именно это, и это поддерживает мою привычку писать.

But along the way, I also found other reasons to write. Alexey, you’ve mentioned about this before. Sometimes you think you know enough about something to write about it. And then when you actually try to write about it, you realize that you know nothing. So that happens to me a lot. I forget the details. So I write to consolidate all these details and fill the gaps. And that’s another reason to write—to learn, to consolidate your knowledge.

Но по ходу дела я нашёл и другие причины писать. Alexey, ты и сам об этом упоминал. Иногда тебе кажется, что ты достаточно знаешь о чём-то, чтобы написать об этом. А когда садишься писать, понимаешь, что не знаешь ничего. Со мной это происходит постоянно. Я забываю детали. Поэтому я пишу, чтобы собрать все эти детали воедино и заполнить пробелы. И это ещё одна причина писать — учиться, систематизировать свои знания.

Recently I applied this technique to topics that I had some familiarity with but I wanted to consolidate my knowledge, such as the survey on natural language processing from RNNs up to Big Bird. And also on some topics that are new to me, such as the summary on data discovery platforms. And also, you know, consolidating my knowledge and sharing about real-time recommendations. So by forcing myself to write, I was forcing myself to learn and that’s awesome.

Недавно я применил эту технику к темам, с которыми был немного знаком, но хотел систематизировать знания, — например, обзор обработки естественного языка от RNN до Big Bird. А также к темам, которые были для меня новыми, например обзор платформ для обнаружения данных. И ещё — систематизация и рассказ о рекомендациях в реальном времени. Заставляя себя писать, я заставлял себя учиться — и это потрясающе.

So I write to share, and I write to learn. And I guess the last reason, which is really awesome, and is what led to this is—something really interesting happens when you write online. People start reaching out to you for feedback, discuss ideas. They say, “this is really useful”, “this part could be improved”.

Итак, я пишу, чтобы делиться, и пишу, чтобы учиться. И, наверное, последняя причина — совершенно замечательная, и именно она привела к этому разговору — нечто очень интересное происходит, когда ты пишешь в интернете. Люди начинают обращаться к тебе за обратной связью, обсуждать идеи. Они говорят: «Это очень полезно», «Вот эту часть можно улучшить».

And some of these people, I’m really inspired by, and I’m really humbled to have a chance to chat with these people, my idols that I admire online. And this is also what led to the current chat I’m having with Alexey right now, to share about writing online and to help people more.

И среди этих людей есть те, кто меня по-настоящему вдохновляет, и я очень благодарен за возможность пообщаться с ними — с моими кумирами, которыми я восхищаюсь в интернете. И именно это привело к нынешнему разговору с Alexey — чтобы рассказать о письме в интернете и помочь большему количеству людей.

So the third reason why I write is to be a lighthouse. I’m saying: “This is what I’m interested about. If you’re interested about this, I hope you talk to me about it. I hope to have a conversation about it so we can mutually learn and mutually inspire each other.” So I write to share, to learn, and to be a lighthouse.

Так что третья причина, по которой я пишу, — быть маяком. Я говорю: «Вот что мне интересно. Если вам тоже это интересно, я надеюсь, что вы поговорите со мной об этом. Я надеюсь на разговор, чтобы мы могли учиться друг у друга и вдохновлять друг друга». Я пишу, чтобы делиться, чтобы учиться и чтобы быть маяком.

Alexey Grigorev: Yeah, that’s awesome. Actually now I remember the first time we spoke on Twitter. And my first question was, do you remember what I asked?

Alexey Grigorev: Да, это здорово. Кстати, сейчас я вспомнил, как мы впервые общались в Twitter. И мой первый вопрос — ты помнишь, что я спросил?

Eugene Yan: No, I can’t. (Alexey laughed) Did you reach out to me or did I reach out to you?

Eugene Yan: Нет, не могу вспомнить. (Alexey засмеялся) Ты написал мне первый или я тебе?

Alexey Grigorev: I think I reached out to you. I actually asked, “Hey, what do you use for blogging because I also want to blog. What do you use for that?”

Alexey Grigorev: Думаю, я написал тебе первый. Я спросил: «Слушай, а что ты используешь для блогинга? Я тоже хочу вести блог. Что ты для этого используешь?»

Eugene Yan: Oh, yeah

Eugene Yan: А, да.

Alexey Grigorev: That’s you being a lighthouse.

Alexey Grigorev: Вот это ты и есть — маяк.

Eugene Yan: Haha true. By the way if anyone’s interested I use a very simple Jekyll framework and just hosted it on Github pages.

Eugene Yan: Ха-ха, точно. Кстати, если кому-то интересно, я использую очень простой фреймворк Jekyll и хощу сайт на Github Pages.

Alexey Grigorev: Yeah, that’s pretty amazing. And especially the learning part—I can 100% relate to that. I guess I think okay, this will take me two hours to write because I know everything, then I sit down and then like a week after the post’s still not finished because like there are so many things I need to look up, especially if it’s something technical and things like frameworks evolve. They no longer work. But, but, yeah, it also helps to learn a lot.

Alexey Grigorev: Да, это впечатляет. И особенно часть про обучение — я могу на 100% это подтвердить. Думаешь, ладно, это займёт два часа, я же всё знаю. Садишься, а через неделю пост всё ещё не закончен, потому что столько всего нужно проверить — особенно если это что-то техническое, фреймворки развиваются, что-то перестаёт работать. Но да, это тоже очень помогает учиться.

Alexey Grigorev: I’m curious to know, how do you write? Now we understand the motivation. Right, and this is awesome, I can totally relate to that. But it’s also interesting, how do you write like yeah, you have an article about that, but I just wanted to hear from you. Like, do you have any process, maybe, like, how do you go about writing?

Alexey Grigorev: Мне любопытно, как ты пишешь? Мотивацию мы поняли — и это здорово, я полностью с этим согласен. Но интересен ещё и сам процесс. У тебя есть статья об этом, но я хотел бы услышать лично от тебя. Есть ли у тебя какой-то процесс, может быть? Как ты подходишь к написанию?

Eugene Yan: It’s a good question. Let me first share how I went about writing the wrong way. So when I first started writing. I thought that, you know, writing is sitting in front of a computer, typing it out, something beautiful will come out. But it doesn’t happen that way.

Eugene Yan: Хороший вопрос. Давайте сначала расскажу, как я писал неправильно. Когда я только начинал писать, я думал: ну вот, сядешь перед компьютером, начнёшь набирать текст, и выйдет что-то прекрасное. Но так не бывает.

And I thought that whatever I write must be 100% original, no one should have written about it. It must be 100% useful. And I realized that, looking back on it, this is a very, very, very high bar. It’s very difficult, made it very difficult for me to write.

И я думал, что всё, что я пишу, должно быть на 100% оригинальным — никто не должен был писать об этом раньше. Должно быть на 100% полезным. И, оглядываясь назад, я понимаю, что это очень, очень, очень высокая планка. Это сильно затрудняло мне процесс.

So, how do I write now,? I realized, first, it’s not to have that mindset. So now my mindset is “I write to share, to learn, to be a lighthouse”. And I realized that writing doesn’t start with writing. You start with reading, reading things you’re interested in, learning things you’re interested in, and you think about it, and then you write notes. And now that I view it this way, my writing doesn’t have to be original. It doesn’t have to be perfect. It doesn’t have to be hundred percent useful. It makes it a lot easier for me to write.

Так как я пишу сейчас? Я понял, что, во-первых, нельзя иметь такой настрой. Теперь мой настрой — «я пишу, чтобы делиться, учиться и быть маяком». И я осознал, что написание не начинается с написания. Начинаешь с чтения — читаешь то, что тебе интересно, изучаешь то, что тебе интересно, думаешь об этом и делаешь заметки. И теперь, когда я смотрю на это так, моё письмо не должно быть оригинальным. Не должно быть идеальным. Не должно быть на сто процентов полезным. И это значительно облегчает мне процесс.

So how do I write, do you mean about how I select topics, or how I actually craft a post? What do you mean?

Так как я пишу — ты имеешь в виду, как я выбираю темы или как я непосредственно работаю над постом? Что именно?

Alexey Grigorev: Yeah, like basically your process. Let’s say you want to write about something, then you all of a sudden I don’t know you’re taking a walk and then an idea occurs to you or you see like a tweet about real-time machine learning in China, and then you think, Okay, this is something I can write about. So now you have this idea, right. So you use, okay, I have some knowledge about this topic and I want to write, and what happens next after this?

Alexey Grigorev: Да, твой процесс в целом. Допустим, ты хочешь написать о чём-то. Вдруг, скажем, ты гуляешь и к тебе приходит идея, или ты видишь твит о машинном обучении в реальном времени в Китае и думаешь: окей, вот об этом я могу написать. И вот у тебя есть идея. У тебя есть какие-то знания по этой теме, и ты хочешь написать. Что происходит дальше?

Eugene Yan: So usually when I have an idea for a topic, I’m just gonna put a title in my notes. I’m gonna say, “Hey, you know, here’s a possible topic”. Right now my notes have like 50 topics that I just need to go through week by week to write about it and pick.

Eugene Yan: Обычно, когда у меня появляется идея для темы, я просто записываю заголовок в заметки. Пишу: «Эй, вот возможная тема». Сейчас в моих заметках около 50 тем, которые мне нужно постепенно разбирать, неделя за неделей.

So how do I write? My process is pretty straightforward. It starts from the timeline I set for myself. I set myself a timeline of seven days. Every week I aim to publish regardless of what state it’s in. I will ship every week. So starting from day one, I just pick a topic that I want to tackle. I write an outline of how I want to structure it.

Так как я пишу? Мой процесс довольно прямолинейный. Он начинается с дедлайна, который я себе ставлю. Я задаю себе срок в семь дней. Каждую неделю я стремлюсь опубликовать пост, в каком бы состоянии он ни был. Я публикую каждую неделю. Итак, начиная с первого дня, я просто выбираю тему. Пишу план (outline) — как я хочу структурировать материал.

For example, let’s take real-time machine learning. I want to write about why you should not do real-time recommendations and why it would be useful, and after that how real-time recommendations look like, and then how to do an MVP yourself. So there’s the big picture. And then I start to add bullet points. So that takes about two hours.

Например, возьмём машинное обучение в реальном времени. Я хочу написать о том, почему не стоит делать рекомендации в реальном времени и почему это всё же может быть полезно, потом — как выглядят рекомендации в реальном времени, а затем — как сделать MVP самостоятельно. Это общая картина. Потом я начинаю добавлять тезисы. На это уходит примерно два часа.

Then day two, I look at that outline again and I rewrite it from memory. So all the crap or the bad ideas go out and the new ideas go in. And then maybe at day three, I look, if I’m okay with the outline, maybe I stop iterating on the outline. If I’m not okay on day three I iterate again. So I do this several times on the outline section until I’m satisfied.

На второй день я снова смотрю на этот план и переписываю его по памяти. Всё плохое и слабые идеи уходят, а новые приходят. И, может быть, на третий день — если меня устраивает план, я прекращаю итерации. Если нет — итерирую снова. Я повторяю это несколько раз, пока не буду доволен.

By the time it’s Saturday, which is day six and I have no more time to iterate on the outline, I’m forced to write the prose. So how I write the prose, is just take the outline… essentially the outline is pretty detailed, everything’s there. I just need to write it in proper human language, instead of just bullet points, so people can read it. And find images. So by the end of day six, I will always have a prose. Sometimes this takes 12 hours, sometimes this takes six hours, but I will always have it.

К субботе — шестому дню, когда времени на итерации плана уже не остаётся, — я вынужден писать прозу. Как я пишу прозу? Просто беру план… по сути, план к этому моменту уже очень подробный, всё на месте. Мне нужно лишь переписать его нормальным человеческим языком вместо тезисов, чтобы люди могли это читать. И подобрать иллюстрации. Так что к концу шестого дня у меня всегда есть проза. Иногда на это уходит 12 часов, иногда 6, но она всегда готова.

On day seven, after a night of sleep, I will read through it again, organize my ideas, organize paragraphs, organize the sentences, find images and all that. So by day seven, my time is up. I must publish it. If people give me feedback, I might still make more tweaks on the next Monday and Tuesday, but usually after that I stop.

На седьмой день, после ночи сна, я перечитываю текст заново, упорядочиваю идеи, абзацы, предложения, нахожу иллюстрации и всё такое. К седьмому дню время истекает. Я обязан опубликовать. Если люди дают обратную связь, я могу ещё поправить что-то в понедельник-вторник, но обычно после этого останавливаюсь.

So the key part of this is the iteration. I mainly iterate on the outline. Why do I iterate on the outline? Because iterating on the prose takes too long for me. I care too much about the language, the sentence structure and the right words. By forcing myself to only focus on the ideas, on the outline, I improve it and only leave very little time to iterate in the prose. So that’s my process.

Ключевая часть этого процесса — итерации. Я в основном итерирую план. Почему именно план? Потому что итерировать прозу для меня занимает слишком много времени. Я слишком сильно переживаю за язык, структуру предложений и точные слова. Заставляя себя фокусироваться только на идеях, на плане, я улучшаю его и оставляю очень мало времени на работу с прозой. Вот мой процесс.

Alexey Grigorev: That’s pretty interesting. So basically, like if you look at the amount of time you spent writing an article, like how much time would say you spent on this outline? 50 percent?

Alexey Grigorev: Это очень интересно. То есть если посмотреть на общее время написания статьи — сколько, по-твоему, уходит на план? 50 процентов?

Eugene Yan: Definitely more, I would say that the outline is at least 50% sometimes 70%.

Eugene Yan: Точно больше, я бы сказал, что на план уходит как минимум 50%, а иногда и 70%.

Alexey Grigorev: So most of the time goes to this outline and then that makes me really curious to know like how this outline looks like because to me, like when I hear outline it’s just three, four bullet points. Yeah, so, like, how do you structure this outline?

Alexey Grigorev: Значит, основная часть времени уходит на план, и мне теперь очень любопытно, как этот план выглядит, потому что для меня «план» — это три-четыре тезиса. Так как ты структурируешь этот план?

Eugene Yan: So the outline really is the key section headers. And then for a section header, under each paragraph, what should the key topic sentence of each paragraph be and then maybe I have supporting evidence, etc. That’s it. In the later stages of the outline, the outline becomes sort of like the actual content itself. It’s just that it is not in paragraph form. And that makes it easier for me to write. I just force myself to write in bullet points.

Eugene Yan: План — это, по сути, ключевые заголовки разделов. А под каждым заголовком — какой должна быть ключевая мысль каждого абзаца и, может быть, подкрепляющие аргументы и так далее. Вот и всё. На поздних стадиях план становится чем-то вроде самого содержания. Просто он не в форме абзацев. И это облегчает мне работу. Я просто заставляю себя писать тезисами.

Alexey Grigorev: Yeah, so basically you have all, like the idea is already there, you already know what to write about. Like, probably you have already sections, sub-sections, even paragraphs. Maybe you already have in that outline and so you need to do on day six is just take these bullet points that you have and make them like, you know, translate them into normal, natural language.

Alexey Grigorev: Да, то есть у тебя уже есть все идеи, ты уже знаешь, о чём писать. Скорее всего, у тебя уже есть разделы, подразделы, даже абзацы — может, они уже есть в этом плане. И всё, что тебе нужно сделать на шестой день, — это взять эти тезисы и перевести их на нормальный, естественный язык.

Eugene Yan: Exactly.

Eugene Yan: Именно.

Alexey Grigorev: Okay, that makes sense. That’s pretty interesting, because it’s not very similar to what I do. So I actually write prose as you say, and then I have to, okay, like this paragraph, I need to delete it. And this is super ineffective and takes ages and then also deleting things from an article is really difficult.

Alexey Grigorev: Ладно, логично. Это очень интересно, потому что мой подход совсем другой. Я сразу пишу прозу, а потом — ладно, этот абзац нужно удалить. И это суперневффективно и занимает кучу времени, а ещё удалять фрагменты из статьи ужасно сложно.

I spent so much time writing this piece and then I see that it’s 20 minutes. I know that. Nobody’s going to read this, this thing, right, because it takes just too much time to read. And then I have to edit. I have to delete it. And that makes the writing process very difficult. Right. And what you have. I think I should definitely try that.

Я потратил столько времени, написал этот кусок, а потом вижу, что чтение займёт 20 минут. И я знаю, что никто не будет это читать, потому что это слишком долго. И приходится редактировать. Приходится удалять. И это делает процесс написания очень сложным. А твой подход — я думаю, мне определённо стоит его попробовать.

Eugene Yan: I fully understand. Yeah, I recommend it. I have the same problem. Writing a paragraph just takes me 20, 30 minutes, whereas writing bullet points is just so easy, because I don’t care; I’m going to throw it away anyway.

Eugene Yan: Полностью понимаю. Да, рекомендую. У меня та же проблема. Написание одного абзаца занимает у меня 20–30 минут, а тезисы писать элементарно, потому что мне всё равно — я всё равно их выброшу.

Alexey Grigorev: Yeah, I’m also curious; you said that you try to reconstruct an outline from memory. Why do you do that?

Alexey Grigorev: Да, мне ещё любопытно: ты сказал, что пытаешься восстановить план по памяти. Зачем ты это делаешь?

Eugene Yan: Okay, let’s say you read a book and your friend asked you, what is that book about? You tell him the best parts, the most important parts right? That’s what reconstructing an outline from memory does. I remember only the best parts of my argument, the best parts of the story I’m trying to tell. And that’s it.

Eugene Yan: Допустим, ты прочитал книгу, и друг спрашивает: о чём она? Ты рассказываешь ему самое лучшее, самое важное, верно? Восстановление плана по памяти делает то же самое. Я запоминаю только лучшие части моей аргументации, лучшие части истории, которую хочу рассказать. И всё.

And sometimes after I reconstruct it, I would look at it side by side. Hey, you know, did I miss out any key points? If I couldn’t quite remember it maybe it’s not important. So reconstructing from memory is like, you know, putting it through a neural network (auto-encoder to be specific), only the important stuff filters through. And I do that several times.

И иногда, после восстановления, я сравниваю два варианта бок о бок. Не упустил ли я ключевые моменты? Если я не смог что-то вспомнить, возможно, это не так важно. Восстановление по памяти — это как пропустить через нейронную сеть (если точнее — автоэнкодер): проходит только самое важное. И я делаю это несколько раз.

Alexey Grigorev: Yeah, that’s interesting because I also have this problem that I cannot simply rely on my memory and I was going to ask you about that, but you also mentioned that you still look back at the original thinking. How often do you forgot things?

Alexey Grigorev: Да, это интересно, потому что у меня тоже проблема с тем, что я не могу полагаться только на память, и я собирался тебя об этом спросить. Но ты ещё упомянул, что всё-таки сверяешься с оригиналом. Как часто ты забываешь вещи?

Eugene Yan: Quite often. I will always do a regression analysis: Is this new one better than the old one? It gets to a certain point when the difference is very small. That’s when you know you can sort of start converting the outline to prose.

Eugene Yan: Довольно часто. Я всегда провожу регрессионный анализ: лучше ли новый вариант старого? Наступает момент, когда разница становится очень маленькой. Вот тогда можно начинать превращать план в прозу.

Alexey Grigorev: So you do this every day. Every day you tried to start from scratch, basically, from a blank page?

Alexey Grigorev: То есть ты делаешь это каждый день? Каждый день пытаешься начать с нуля, с чистого листа?

Eugene Yan: Not necessarily. It depends. There are some days where I can’t finish the outline, so that will be when I continue. On the days where the previous day I complete an outline and if I’m not satisfied with it yet, I would try to rewrite it. If I’m satisfied with it, I would just start writing my prose earlier, so I get to have a bit of a break on the weekends.

Eugene Yan: Не обязательно. Зависит от ситуации. Бывают дни, когда я не успеваю закончить план, и тогда продолжаю на следующий день. Если накануне я завершил план, но ещё не доволен — пытаюсь переписать. Если доволен — начинаю писать прозу раньше, чтобы на выходных немного отдохнуть.

Alexey Grigorev: Having a break is important, right, especially if you spent that much time on writing.

Alexey Grigorev: Отдых — это важно, особенно если тратишь столько времени на писательство.

Eugene Yan: Yeah, the problem is I’m a very slow writer. I’m a very slow thinker. So that’s why I need to spend a lot of time on it. I hope that if any of you here are trying to write, that you won’t have the same problem, but this is the problem that I have. That’s why iterating through the outline helps me a lot.

Eugene Yan: Да, проблема в том, что я очень медленно пишу. Я очень медленно думаю. Поэтому мне нужно тратить на это много времени. Надеюсь, что если кто-то из вас пытается писать, у вас не будет такой проблемы, но у меня она есть. Вот почему итерации плана мне так помогают.

Alexey Grigorev: Yeah, that’s interesting because sometimes when you read a post and then you know that this person publishes every week, it’s very difficult to, you know, see this process, like all this work that the writer has to do. And then you say you’re a slow writer. And then if I go to your blog and then I see the number of things you publish, that makes it…

Alexey Grigorev: Да, это интересно, потому что когда читаешь пост и знаешь, что этот человек публикует каждую неделю, очень сложно представить себе весь этот процесс, всю работу, которую автору приходится проделывать. А ты говоришь, что медленно пишешь. И когда я захожу на твой блог и вижу, сколько ты публикуешь, это выглядит…

Eugene Yan: I mean, if you think about it, it’s like one to two hours every weekday in the morning. That’s like seven hours and then over the weekends, let’s say it’s like 13 hours plus another five hours for final editing. There’s like 25 hours a week. So it does take a bit of time. Yeah.

Eugene Yan: Ну, если подумать, это один-два часа каждый рабочий день утром. Это около семи часов. А на выходных — допустим, 13 часов плюс ещё пять часов на финальную редактуру. Итого около 25 часов в неделю. Так что да, это занимает прилично времени.

Alexey Grigorev: And you also mentioned, you have a list of topics like a list of ideas, as you mentioned, you have around 50 right? How do you, like even before that, like before you start writing, how do you put things from that backlog and where do you take ideas from?

Alexey Grigorev: Ты ещё упомянул, что у тебя есть список тем — список идей, около 50 штук. Как ты выбираешь из этого бэклога, и откуда вообще берёшь идеи?

Eugene Yan: I see a pattern when I look back at what I write. For example, I write when I see people are uncertain about certain topics. Whenever I share that my team runs on Scrum, we use Agile and Scrum, people always ask, how do you do that? How is it like? And I was like, when enough people ask me about it, I’m going to write about it. People also ask me, how did you get from a psychology degree into data science? So many people ask about it, I just decide to write it. So I get a lot of questions. So I decide write answers to them and they can scale indefinitely.

Eugene Yan: Когда я оглядываюсь на то, что написал, я вижу закономерность. Например, я пишу, когда вижу, что люди в чём-то не уверены. Когда я рассказываю, что моя команда работает по Scrum, мы используем Agile и Scrum, люди всегда спрашивают: как вы это делаете? Как это выглядит? И когда достаточно много людей спрашивают, я решаю написать об этом. Люди также спрашивают: как ты перешёл от психологии к data science? Столько людей спрашивают, что я просто решаю написать об этом. Мне задают много вопросов, и я пишу ответы на них — а они могут масштабироваться бесконечно.

That’s one way. Sometimes I also write about topics I would like to disagree on. For example, I saw this Reddit post which had 10 different roles in data science - data scientists, decision scientist, AI engineer, AI product manager, etc. I disagree. I think data scientists should be more end-to-end, and Alexey feels the same way. He thinks that data scientists should be more full stack. I thought what I was writing was an unpopular opinion—though Netflix and Stitch Fix adopt the same approach—but it turned out to be surprisingly popular.

Это один способ. Иногда я также пишу на темы, с которыми хочу поспорить. Например, я увидел пост на Reddit, где перечислялись 10 разных ролей в data science — data scientist, decision scientist, AI-инженер, AI product manager и т. д. Я не согласен. Я считаю, что дата-сайентисты должны быть более end-to-end, и Alexey думает так же — он считает, что дата-сайентисты должны быть более фулстек. Я думал, что моё мнение будет непопулярным — хотя Netflix и Stitch Fix придерживаются того же подхода, — но оно оказалось удивительно популярным.

Sometimes I also see people focusing on the wrong things. For example, a lot of people reach out to me and ask if writing is important. They say writing documentation takes a long time. I disagree. I think writing becomes more important in your career as you progress. Sometimes people ask me, what’s the point of reading papers? I disagree. You need to read papers to keep up in your field.

Иногда я также вижу, что люди фокусируются не на том. Например, многие обращаются ко мне и спрашивают, важно ли писать. Они говорят, что написание документации занимает много времени. Я не согласен. Я считаю, что письмо становится всё более важным по мере продвижения по карьере. Иногда люди спрашивают: зачем читать статьи? Я не согласен. Нужно читать статьи, чтобы держаться в курсе своей области.

So I write to answer questions that I get from people. And occasionally, if I may, once I build up enough trust with the community, I disagree on something and try to share my differing opinion.

Так что я пишу, чтобы отвечать на вопросы, которые мне задают. А иногда, когда я заслужил достаточно доверия сообщества, я высказываю несогласие и делюсь своим отличающимся мнением.

Vaibhav: Can I ask a question, because it kind of relates to what Alexey was asking. So you said you are kind of thinking about 50 topics. But then, let’s say you have to finish your topic in a week’s time. How do you prioritize these 50 topics or n number of topics that you’re thinking about?

Vaibhav: Можно вопрос? Он связан с тем, о чём спрашивал Alexey. Ты сказал, что думаешь примерно о 50 темах. Но при этом нужно закончить тему за неделю. Как ты расставляешь приоритеты среди этих 50 или N тем?

Eugene Yan: I realized that people who come to my site enjoy reading the machine learning stuff. But to be honest guys, I can’t write about machine learning every week. I’m really interested in it, but not to the extent of writing about it every week. So I will try to make sure that I write about machine learning once or twice a month and then I add in some other stuff, which I think is really important.

Eugene Yan: Я заметил, что людям, которые приходят на мой сайт, нравится читать про машинное обучение. Но, честно говоря, ребята, я не могу писать о машинном обучении каждую неделю. Мне это очень интересно, но не настолько, чтобы писать об этом еженедельно. Поэтому я стараюсь писать о машинном обучении раз или два в месяц, а в остальное время добавляю другие вещи, которые считаю действительно важными.

For example, next week, I want to write something about why you should not be doing online courses in 2021. I know it’s controversial, but I think Alexey and I talk a lot about this as well. And he probably knows the reason why I’m saying this. I want to write that. To just tell people, guys, there’s a better way to learn. Because a lot of people, when they talk to me, they asked me, you know, is this course good, is that course good, should I do this masters.

Например, на следующей неделе я хочу написать о том, почему не стоит проходить онлайн-курсы в 2021 году. Знаю, это спорно, но мы с Alexey много об этом говорили, и он, наверное, догадывается, почему я так считаю. Я хочу написать это. Просто сказать людям: ребята, есть более эффективный способ учиться. Потому что многие люди, когда разговаривают со мной, спрашивают: хороший ли этот курс, стоит ли пройти вот тот, нужно ли мне поступать в магистратуру.

Thus, the only prioritization I have is at least one or two machine learning topics in a month. The rest of the time is messages that I want to try to get across. I imagine writing for my teammates. I imagine writing for my mentees. What is my view that I want to share with them to help them be more effective data scientists and this may not be related to machine learning at all sometimes.

Таким образом, единственный мой принцип приоритизации — хотя бы одна-две темы по машинному обучению в месяц. В остальное время — это сообщения, которые я хочу донести. Я представляю, что пишу для своих коллег по команде. Для своих менти. Какую свою точку зрения я хочу до них донести, чтобы помочь им стать более эффективными дата-сайентистами — и это не всегда связано с машинным обучением.

Alexey Grigorev: So you basically have an image in your head of the target audience right, of the person who is going to read that. And do you use this somehow in your writing like when you prepare this outline how do you use it?

Alexey Grigorev: То есть ты держишь в голове образ целевой аудитории — человека, который будет это читать. И используешь ли ты это как-то в процессе написания — когда готовишь план, как ты это применяешь?

Eugene Yan: That’s a great question. So I write mainly for three groups of people.

Eugene Yan: Отличный вопрос. Я пишу в основном для трёх групп людей.

The first person I write for is myself. When you write, you should write for yourself because let’s be honest, no one’s going to read it. If you write for yourself, at least you’re going to benefit from it, by furthering your learning.

Первый человек, для которого я пишу, — это я сам. Когда пишешь, нужно писать для себя, потому что, будем честны, никто это не прочитает. Если пишешь для себя, то хотя бы сам извлечёшь пользу — углубишь свои знания.

The second person I write for is my wife. I hope to at least help her understand what it is that I do.

Второй человек, для которого я пишу, — моя жена. Я надеюсь хотя бы помочь ей понять, чем я занимаюсь.

The third person I write for is my current team members and my future team members, and likeminded friends in the community. So I’m going to assume that these are people with a bit of a technical background, maybe a bit of machine learning background, people who are driven to learn, to level up.

Третий — мои нынешние и будущие коллеги по команде, а также единомышленники в сообществе. Я предполагаю, что это люди с небольшим техническим бэкграундом, может быть, с некоторым опытом в машинном обучении, люди, которые стремятся учиться и расти.

Sometimes, some of the topics I write about don’t get a lot of traction, are not very popular, like the topic I wrote about the importance of writing versus coding. I think that’s a very important topic, but it didn’t get as much traction as I’d like. But maybe the community is not ready for it yet. So yes, I do have a specific group of people. My future teammates and my current teammates in my industry.

Иногда темы, о которых я пишу, не набирают большую аудиторию, не становятся популярными — например, статья о важности письма по сравнению с кодингом. Я считаю это очень важной темой, но она не получила столько внимания, сколько мне хотелось бы. Может быть, сообщество ещё не готово к ней. Но да, у меня есть конкретная группа людей. Мои будущие и нынешние коллеги в моей отрасли.

Evgeniy: Can I ask a question? First of all, thanks for all the detail and it resonates in a lot of respects and you have a very organized workflow for reviewing the draft, reviewing the concept and I was wondering, does it ever happened, that there is some tipping point that editing it more makes your text worse? Like sometimes like you, you know, that you would have to release it and you know that the extra time spent on editing or drafting would just make things worse or it’s always kind of linear. So do you see any non-linearities in your writing process?

Evgeniy: Можно вопрос? Прежде всего, спасибо за такие подробности — мне многое откликается. У тебя очень организованный процесс работы над черновиком и концепцией. Мне интересно, бывает ли так, что наступает переломный момент, когда дальнейшее редактирование делает текст хуже? То есть иногда ты знаешь, что пора публиковать, и дополнительное время на редактирование только ухудшит результат? Или всё всегда линейно? Замечаешь ли ты нелинейности в своём процессе?

Eugene Yan: That’s a good question. So let me answer—do further iterations make it worse? Yes, further iterations can make it worse. That’s why when I iterate on outlines I always compare them side by side. Which one communicates the story, the message I’m trying to get across better?

Eugene Yan: Хороший вопрос. Делают ли дальнейшие итерации текст хуже? Да, могут сделать хуже. Именно поэтому, когда я итерирую план, я всегда сравниваю варианты бок о бок. Какой из них лучше передаёт историю, послание, которое я хочу донести?

When I’m editing paragraphs, I would just type a new paragraph above the old paragraph and compare the two paragraphs. Usually my metric for success—Is it shorter and conveys all the key ideas? If it is, good. If it’s longer and it gets a bit more messed up, it’s a bit harder to write, that’s when you know it’s worse and you delete it. So it can regress. You should always try to do some sort of regression analysis to just check, is it better.

Когда я редактирую абзацы, я просто набираю новый абзац над старым и сравниваю их. Обычно мой критерий успеха — стало ли короче и передаёт ли все ключевые идеи? Если да — хорошо. Если стало длиннее и запутаннее, сложнее написано — значит, стало хуже, и я удаляю. Так что регресс возможен. Всегда стоит проводить своего рода регрессионный анализ, чтобы проверить — стало ли лучше.

Alexey Grigorev: This is what you mean by regression analysis. I was going to ask that. If it has to do anything with linear regression.

Alexey Grigorev: Так вот что ты имеешь в виду под регрессионным анализом. Я как раз хотел спросить, связано ли это с линейной регрессией.

Evgeniy: Do you also see your result as a product, design, product life, and life, you know versioning?

Evgeniy: А ты воспринимаешь свой результат как продукт — с дизайном, жизненным циклом, версионированием?

Eugene Yan: Yeah, I do. I see my writing as little packages of love (cringe). When I write about stuff, I really want to help people understand about it. If they don’t understand about it, then I fail. So that means my product UX is bad. If I write about a product and the substance is not there, it’s not useful, that means the back end is bad. So it’s very difficult. And I don’t think I will ever get there. But the way for me to get there is to just force myself to write every week. And every year, there’ll be 50 iterations, or rather 50 different products and I would have gotten enough practice, maybe in 5, 10 years I will be good enough.

Eugene Yan: Да, воспринимаю. Я вижу свои тексты как маленькие посылки с заботой (звучит пафосно). Когда я пишу о чём-то, я действительно хочу помочь людям это понять. Если они не понимают — значит, я провалился. Значит, UX моего продукта плохой. Если я написал о продукте, а содержания нет, это бесполезно — значит, бэкенд плохой. Это очень сложно. И я не думаю, что когда-нибудь дойду до идеала. Но путь к этому — заставлять себя писать каждую неделю. И каждый год будет 50 итераций, точнее 50 разных продуктов, и я получу достаточно практики. Может, через 5–10 лет я стану достаточно хорош.

Alexey Grigorev: 5, 10 years… Like now if your articles are that good, like, what will happen in 5, 10 years haha.

Alexey Grigorev: 5–10 лет… Если сейчас твои статьи настолько хороши, что же будет через 5–10 лет, ха-ха.

Eugene Yan: In 5, 10 years I can write the same thing in five hours instead of 20.

Eugene Yan: Через 5–10 лет я смогу написать то же самое за пять часов вместо двадцати.

Alexey Grigorev: Do you somehow try to control the length? Because for me, personally, this is a problem because, like, I have this idea, but to actually elaborate this idea it takes just too much space. I need too many pages. And then I know that people with their attention span we have today, they will not read this. Is this a problem for you? And if it is, how do you overcome it?

Alexey Grigorev: Ты как-то пытаешься контролировать объём? Потому что лично для меня это проблема: у меня есть идея, но чтобы её раскрыть, нужно слишком много места, слишком много страниц. А я знаю, что люди с сегодняшним вниманием не будут это читать. Это для тебя проблема? И если да, как ты с ней справляешься?

Eugene Yan: This is an interesting question. So I’ve read, and a lot of people have told me, that the ideal length for an article is about 1500 words, that’s about 10 minutes. And that’s the average attention span you can get from reading online.

Eugene Yan: Интересный вопрос. Я читал, и многие говорили мне, что идеальная длина статьи — около 1500 слов, это примерно 10 минут. И это средний порог внимания при чтении в интернете.

But honestly, before this, and even now, I don’t really think about it. I want to write just enough to communicate the substance and the content and get the message across. Sometimes this is just 600 words or 1000 and that’s it. Perfect. Sometimes I need to go into 4000 or 5000 words like the recent one about real-time recommendations—I feel that if I cut out anything, if I cut out any paragraph, it loses the big picture.

Но, честно говоря, раньше, да и сейчас, я об этом особо не думаю. Я хочу написать ровно столько, сколько нужно, чтобы передать суть и смысл. Иногда это всего 600 или 1000 слов — и отлично. Иногда нужно написать 4000–5000 слов, как в недавней статье о рекомендациях в реальном времени, — и я чувствую, что если вырезать хоть один абзац, теряется общая картина.

I assume that my audience are people like me, my future team members, my current team members, people who want to learn about real-time recommendations. I assume that they are really interested in it and they will read it. I don’t expect them to read it all at once. They can read it and refer to it anytime. But to be honest, I don’t have a maximum length. I just try to keep it as short as I can because it’s also courteous, courtesy on the readers’ time.

Я предполагаю, что моя аудитория — это люди вроде меня, мои будущие и нынешние коллеги, люди, которые хотят узнать о рекомендациях в реальном времени. Я исхожу из того, что им это действительно интересно и они будут читать. Я не ожидаю, что они прочитают всё за раз — они могут обращаться к тексту в любое время. Но, честно говоря, у меня нет максимального лимита по объёму. Я просто стараюсь быть как можно лаконичнее, потому что это ещё и уважение к времени читателей.

Alexey Grigorev: And I guess having this deadline of one week helps not to, you know not to put too much information there.

Alexey Grigorev: И, наверное, дедлайн в одну неделю помогает не перегружать текст информацией.

Eugene Yan: Yes, definitely.

Eugene Yan: Да, определённо.

Alexey Grigorev: And for me, one of the most difficult parts is like, let’s say I already finished writing something. How do you call this thing? How do you come up with a title or maybe you even do this before you start writing or how does the process look for you when you come up with the title?

Alexey Grigorev: А для меня одна из самых сложных частей — когда ты уже закончил писать. Как ты это называешь? Как ты придумываешь заголовок? Может быть, ты делаешь это до начала написания? Как выглядит твой процесс придумывания заголовка?

Eugene Yan: Hmm, I title my posts like how I name my functions—in the simplest way so that no one would misunderstand. This is a difficult thing which I’m still trying to learn and I just try to come up with the sentence that explains what this is about. It’s just like how you write documentation, like how you write code.

Eugene Yan: Хм, я даю заголовки своим постам так же, как называю функции — максимально просто, чтобы никто не понял неправильно. Это непростая задача, я всё ещё учусь. Я просто пытаюсь составить фразу, которая объясняет, о чём текст. Это как писать документацию, как писать код.

However, I’ve heard that there are other things to consider such as SEO or how to get people to click on your title more. But usually, by the time it’s Sunday night I’m publishing it, I just don’t have the energy to think about the title anymore, honestly speaking. So I don’t put a lot of effort into that.

Впрочем, я слышал, что есть и другие вещи, которые нужно учитывать, — например, SEO или как сделать так, чтобы люди кликали на заголовок чаще. Но обычно к воскресному вечеру, когда я публикую, у меня просто нет сил думать о заголовке, честно говоря. Так что я не вкладываю в это много усилий.

Alexey Grigorev: When we were planning this event. I was talking to you, Eugene. And then I said, I want to call the event “Blogging and Technical Writing”. But then you said, no, no, no. You didn’t say that it’s boring. But you said the title should be “The Importance of Writing in a Tech Career”.

Alexey Grigorev: Когда мы планировали это мероприятие, я разговаривал с тобой, Eugene. И я сказал: хочу назвать мероприятие «Блогинг и техническое писательство». Но ты сказал: нет-нет-нет. Ты не сказал, что это скучно. Но ты предложил назвать «Важность письма в технической карьере».

That sounds much much better than what I suggested. It’s not just the essence, because I think like blogging and technical writing also capture the essence. But you made it sound so much more interesting, right. And we can see that. If we look at the number of people who registered for this event, it’s more than usual. So you really nailed the title.

Звучит намного лучше того, что предложил я. Это не просто суть — потому что «блогинг и техническое писательство» тоже передаёт суть. Но ты сделал это гораздо интереснее. И мы видим результат: если посмотреть на количество зарегистрировавшихся на это мероприятие, их больше, чем обычно. Так что с заголовком ты попал в точку.

Eugene Yan: Thank you. I want to try to explain why I named it that way. So when Alexey first reached out to me for this talk, I was, hey, this is a great opportunity to get people to write more. And how do I get people to write more? I say it’s important. And this is a very specific audience right, in tech, and you know tech people are very focused about their careers.

Eugene Yan: Спасибо. Попробую объяснить, почему я назвал это именно так. Когда Alexey впервые обратился ко мне по поводу этого выступления, я подумал: вот отличная возможность побудить людей больше писать. А как побудить людей больше писать? Сказать, что это важно. И аудитория очень конкретная — люди из технической сферы, а технари очень сфокусированы на своей карьере.

So I’m wanted to talk about why writing is important in a tech career, and hopefully convince people to start writing and practicing. And that how the title came about.

Поэтому я хотел рассказать, почему письмо важно в технической карьере, и, надеюсь, убедить людей начать писать и практиковаться. Так и появился этот заголовок.

Alexey Grigorev: That makes sense. Again, you keep the audience in mind when coming up with a title. Now let’s say you’ve convinced—we have 34 people online now—everybody on this call to start writing. What do they do next?

Alexey Grigorev: Логично. Опять же, ты держишь аудиторию в голове, когда придумываешь заголовок. Допустим, ты убедил всех — у нас сейчас 34 человека онлайн — начать писать. Что им делать дальше?

Eugene Yan: Just start writing. I know it’s not a very good answer. Let me share some questions people ask me. “I’m afraid of writing online. Can I write about this? It’s just a summary of articles, it’s just a book summary. Will it be useful? Will it be worthy of writing online?” I’m going to share with you a pretty brutal truth: For your first article, no one is going to read it. So just like they said “dance like nobody’s watching”, write like nobody’s reading. It doesn’t matter. You’re writing for yourself to practice.

Eugene Yan: Просто начать писать. Знаю, не самый полезный ответ. Давайте расскажу о вопросах, которые мне задают. «Мне страшно писать в интернете. Можно ли писать об этом? Это просто пересказ статей, просто конспект книги. Будет ли это полезно? Достойно ли это публикации?» Скажу вам довольно жёсткую правду: вашу первую статью никто не прочитает. Так что, как говорят, «танцуй, как будто никто не смотрит» — пиши, как будто никто не читает. Это не важно. Вы пишете для себя, чтобы практиковаться.

Then, “what to write about?” A lot of people ask this as well. Write what you’re thinking about now. Write what’s on your mind, what keeps you up at night. It doesn’t have to be related to your career. It could be about gardening. It could be about, I don’t know, recipes. It doesn’t matter. Just, just write.

Дальше — «о чём писать?» Многие тоже об этом спрашивают. Пишите о том, о чём сейчас думаете. О том, что у вас на уме, о чём не спится по ночам. Это не обязательно должно быть связано с карьерой. Это может быть о садоводстве. О рецептах. Не важно. Просто пишите.

Also, some people say, “oh, I need to find my topic, my theme, to write about.” Right. And I’ll share with you about this example of Patrick McKenzie. I don’t know if you know him. He goes by patio11 on Twitter. So for years, he just wrote about what’s on his mind. I think compilers or Ruby or Java, whatever is happening in Japan.

Также некоторые говорят: «Мне нужно найти свою тему, свою нишу, чтобы писать». И я расскажу вам о примере Patrick McKenzie. Не знаю, знаете ли вы его. В Twitter он — patio11. Много лет он просто писал о том, что у него на уме. О компиляторах, Ruby, Java, о том, что происходит в Японии.

But when he looked back after several years he found that, the things he wrote that at the intersection of engineering and marketing really resonated with the audience. And that’s how he found his theme. But it took him several pieces and one or two years to figure that out. It’s just the same way—you cannot connect the dots looking forward. It’s only after you’ve written a lot then you realize… what is your motivation, what are the topics that you sort of write about and then it happens. So it’s going to be a long term process.

Но когда он оглянулся назад через несколько лет, он обнаружил, что тексты на стыке инженерии и маркетинга действительно находили отклик у аудитории. Так он нашёл свою тему. Но ему понадобилось несколько десятков статей и год-два, чтобы это понять. Всё как обычно — нельзя соединить точки, глядя вперёд. Только после того, как ты много написал, ты понимаешь, что тебя мотивирует, какие темы ты пишешь, — и тогда это происходит. Так что это долгосрочный процесс.

Alexey Grigorev: And one recommendation I often see on the internet in blog posts is like, first you need to find your niche. So what you’re saying is, don’t care about finding your niche, just write whatever is on your mind, just go sit on your computer. And, you know, start writing.

Alexey Grigorev: И одна рекомендация, которую я часто вижу в интернете в блог-постах: сначала нужно найти свою нишу. А ты говоришь — не заморачивайтесь с нишей, просто пишите обо всём, что приходит в голову. Садитесь за компьютер и начинайте писать.

Eugene Yan: I would say that it’s useful to find your niche, but you won’t find your niche before you write a lot. Then that’s when you find your niche. So it’s sort of a circular thing. They don’t see that you need to first write a lot to find a niche, which is after you write a lot when you reflect. That’s where you see your niche.

Eugene Yan: Я бы сказал, что найти свою нишу полезно, но вы не найдёте её, пока не напишете много. А вот тогда найдёте. Это своего рода замкнутый круг. Люди не видят, что сначала нужно много писать, чтобы найти нишу, которая обнаруживается после того, как вы много написали и провели рефлексию.

Alexey Grigorev: But then also writing about the same thing over and over again is pretty boring, right?

Alexey Grigorev: Но при этом писать об одном и том же снова и снова тоже довольно скучно, правда?

Eugene Yan: Exactly. I can’t write about machine learning every single week. I’m interested in it, but I have other interests too that are important, like about career, about data science processes. So I try to write about that. So I haven’t found my topic of focus yet and that’s fine because I’m just writing for myself. My topic of focus is whatever Eugene is thinking about. That’s it.

Eugene Yan: Именно. Я не могу писать о машинном обучении каждую неделю. Мне это интересно, но у меня есть и другие важные интересы — карьера, процессы в data science. Поэтому я стараюсь писать и об этом. Так что свою основную тему я пока не нашёл, и это нормально, потому что я пишу для себя. Моя основная тема — это всё, о чём думает Eugene. Вот и всё.

Alexey Grigorev: And what tools specifically, would you recommend to use? Should it be Medium, should it be WordPress, should it be Jekyll? What would you recommend?

Alexey Grigorev: А какие конкретно инструменты ты бы порекомендовал? Medium, WordPress, Jekyll? Что бы ты посоветовал?

Eugene Yan: I recommend whatever is easy for you to use. A lot of people spend too much time on, oh, I need to find the perfect domain, and I need to have the perfect Hugo or Gatsby or Jekyll setup, and it needs to be CI/CD. Come on guys, the time you spend on that, just spend it on writing. Just pick whatever’s the least amount of work. Writing is already really difficult. Remove all the excess work and just focus on writing.

Eugene Yan: Рекомендую то, что вам проще всего использовать. Многие тратят слишком много времени на поиск идеального домена, на идеальную настройку Hugo, Gatsby или Jekyll, чтобы всё было с CI/CD. Да ладно, ребята, время, которое вы на это тратите, лучше потратьте на писательство. Просто выберите то, что требует минимум усилий. Писать и так сложно. Уберите всю лишнюю работу и сосредоточьтесь на писательстве.

When I started I used WordPress. It was really easy to just start writing. It got to a certain point in time when I wanted to customize my theme and WordPress didn’t allow me to do it. That’s why I switched to hosting my own site, but by then I already written like 50, 60 pieces. The tool is the least of your concerns. Just write and push it online. Substack, WordPress, Medium. Whatever reduces your barriers to entry.

Когда я начинал, я использовал WordPress. Было очень легко просто начать писать. В какой-то момент я захотел кастомизировать тему, а WordPress этого не позволял. Поэтому я перешёл на собственный хостинг, но к тому времени я уже написал 50–60 статей. Инструмент — это последнее, о чём стоит переживать. Просто пишите и публикуйте. Substack, WordPress, Medium — всё, что снижает порог входа.

Alexey Grigorev: I think Medium is pretty easy. Like, you don’t need to do much there, just get an account and start writing (Eugene: Exactly). With Wordpress, this might require some setup, right (Eugene: Yup). And we have a question. The question is, I assume you’re busy. How do you schedule and prioritize this writing work into your daily routine?

Alexey Grigorev: Думаю, Medium — это довольно просто. Там не нужно много делать — завёл аккаунт и пишешь (Eugene: Именно). С WordPress, возможно, потребуется больше настройки (Eugene: Угу). И у нас вопрос. Вопрос такой: предполагаю, что вы заняты. Как вы планируете и приоритизируете работу над текстами в своём ежедневном расписании?

Eugene Yan: Yeah, well, I am busy, but, um, I guess let me share a bit. In 2017 to 2019, I was doing an online masters of computer science. At that time, I was spending 20 to 40 hours a week on the online masters while I was working. So after I graduated I suddenly had a lot of time. That’s when I decide, okay, I need to pour this energy somewhere else and I decided to pour it into writing.

Eugene Yan: Да, я занят, но… давайте расскажу немного контекста. С 2017 по 2019 год я проходил онлайн-магистратуру по информатике. В то время я тратил 20–40 часов в неделю на учёбу, параллельно работая. Когда я закончил, у меня внезапно появилась куча свободного времени. Тогда я и решил: нужно направить эту энергию куда-то ещё, — и решил направить её на писательство.

It’s just one to two hours a day, early in the morning. It’s the same as exercise, as meditation. It’s just a daily habit. My Saturday is just hammering out the prose and Sundays are just trying to edit a bit. I do make time to go out and thankfully, I have a very understanding wife. But I think it’s possible. And you don’t have to spend so much time, you can just write short snippets, maybe 500 words. Just start small. Start with whatever you’re comfortable with.

Это всего один-два часа в день, рано утром. Как зарядка, как медитация. Просто ежедневная привычка. Суббота — это когда я вовсю пишу прозу, а воскресенье — немного редактирую. Я нахожу время погулять, и, к счастью, у меня очень понимающая жена. Я думаю, это реально. И не обязательно тратить столько времени — можно писать короткие заметки, может быть, на 500 слов. Просто начните с малого. Начните с того, что вам комфортно.

Alexey Grigorev: Or tweet.

Alexey Grigorev: Или твитить.

Eugene Yan: Yeah, just tweet.

Eugene Yan: Да, просто твитить.

Alexey Grigorev: Haha actually tweets are even more difficult, right, because of the limitation you have. (Eugene: True) By the way, speaking of Twitter, yesterday I posted a tweet saying that you will tell us the secret sauce of writing haha.

Alexey Grigorev: Ха-ха, на самом деле твиты ещё сложнее — из-за ограничения по длине. (Eugene: Это правда.) Кстати, о Twitter: вчера я написал твит, что ты расскажешь нам секретный рецепт писательства, ха-ха.

Eugene Yan: Haha I have no secret sauce. Honestly, when I woke up today and I saw Alexey’s tweet, I thought “crap, I have no secret sauce”. But I have been completely transparent and honest. Maybe the outline iteration approach is my secret sauce. I don’t know. It’s something that I hear is something new. But yeah, I don’t have a secret sauce really.

Eugene Yan: Ха-ха, у меня нет секретного рецепта. Честно, когда я проснулся сегодня и увидел твит Alexey, я подумал: «Чёрт, у меня нет секретного рецепта». Но я был полностью открытым и честным. Может быть, подход с итерацией плана — это и есть мой секретный рецепт. Не знаю. Люди говорят, что это для них ново. Но нет, у меня правда нет секретного рецепта.

Alexey Grigorev: We have a question—how did you make your blog popular? What did you do to attract people so they go and read and then get in touch with you?

Alexey Grigorev: У нас вопрос — как ты сделал свой блог популярным? Что ты делал, чтобы привлечь людей, чтобы они приходили, читали и потом связывались с тобой?

Eugene Yan: I don’t know. I wish I had the answer to that so I could repeat it. I would write and then I would write a tweet about it. And then I would copy that same tweet and post it on LinkedIn. And that’s it. And people who saw it would maybe circulate it. That’s it.

Eugene Yan: Не знаю. Я бы хотел знать ответ, чтобы повторить. Я писал, потом писал об этом твит. Потом копировал тот же твит и публиковал его в LinkedIn. И всё. Люди, которые видели, иногда распространяли. Вот и весь секрет.

That’s my only distribution channel because it’s already so much effort to just compose tweets right. I’m just gonna write 280 characters and just post it there and that’s it. Eventually I sort of find likeminded people who read my stuff. And I didn’t really put a lot of effort into it, honestly, and I don’t think it’s very popular. But I’m at least thankful that I can find people who have the same interests that can engage with me on that.

Это мой единственный канал дистрибуции, потому что составить твит — это уже немало усилий. Я просто напишу 280 символов и опубликую — и всё. Со временем я нашёл единомышленников, которые читали мои тексты. Я не прикладывал к этому особых усилий, честно, и не думаю, что мой блог очень популярен. Но я хотя бы благодарен за то, что нашёл людей с теми же интересами, которые могут со мной это обсуждать.

Alexey Grigorev: Well, you’re saying not popular, but how many times did you end up on the first page of Hacker News.

Alexey Grigorev: Ну, ты говоришь «не популярен», но сколько раз ты попадал на первую страницу Hacker News?

Eugene Yan: Ah, I can’t remember. (Alexey: So that many times haha.) Honestly, but Hacker News is a completely different thing. Hacker News likes disagreements. I think my post was like “Stop taking regular notes, use a Zettelkasten instead” and you know people were debating about it. “Oh this Zettelkasten is a new fad”. And that’s why.

Eugene Yan: А, не помню. (Alexey: Значит, настолько много раз, ха-ха.) Честно, но Hacker News — это совсем другое. Hacker News любит споры. Думаю, мой пост был типа «Хватит делать обычные заметки, используйте Zettelkasten», и люди спорили: «О, этот Zettelkasten — очередная мода». Вот почему.

Alexey Grigorev: Yeah, but I think it wasn’t just one post that ended up there, there’s also your post about this like the data science should be more end-to-end. Right. But at least I think this article, so the secret sauce is disagreement right. So find what people disagree about then.

Alexey Grigorev: Да, но думаю, там был не один пост — ещё твой пост о том, что data science должна быть более end-to-end. Но, по крайней мере, похоже, что секретный рецепт — это несогласие. Найди то, с чем люди не согласны.

Eugene Yan: It could be. And now that I think about it, maybe the real secret sauce is that threw a lot of darts. I think last year I shot 55 arrows (essays) and, you know, three of them hit the mark. So my hit rate is about, I don’t know, 2.5% 5%. So if you shoot a lot, things happen.

Eugene Yan: Возможно. И теперь, когда я об этом думаю, может быть, настоящий секрет в том, что я выпустил очень много стрел. Кажется, в прошлом году я написал 55 эссе, и, ну, три из них попали в цель. Так что мой показатель попаданий — примерно 2,5–5%. Если стреляешь много, что-то да случится.

Alexey Grigorev: Basically consistency right.

Alexey Grigorev: По сути — постоянство.

We also wanted to talk about not just writing for an external audience on the internet but also internal like at work. And this is also an important part right for your career, not just we’re not just writing code for entire day. Right. So we need to communicate with other people and writing is a form of communication. Right. When we write the documentation we all always need to think about the reader. So it’s not just, you know, an afterthought right. So what do you think about writing at work, like, why is it important, and how you should go about doing that?

Мы ещё хотели поговорить не только о письме для внешней аудитории в интернете, но и о внутреннем — на работе. И это тоже важная часть карьеры: мы не только весь день пишем код. Нам нужно общаться с другими людьми, а письмо — это форма коммуникации. Когда мы пишем документацию, нам всегда нужно думать о читателе. Это не просто что-то второстепенное. Так что ты думаешь о писательстве на работе — почему это важно и как к этому подходить?

Eugene Yan: So why is writing at work important? Well that’s a very big question to answer.

Eugene Yan: Почему писательство на работе важно? Это очень большой вопрос.

Alexey Grigorev: Let’s say, why should a project need documentation?

Alexey Grigorev: Скажем так: зачем проекту нужна документация?

Eugene Yan: So let me let me share it this way. Before you start a project you sort of need to socialize your idea and check your idea with other people. Let’s just take a document that Amazon is famous for. It’s called the press release. Before we start a project, we would write a press release and, you know, maybe the press release for Amazon S3 is like, you know, highly scalable storage at a very cheap price and we send it out internally. Are people excited about this? If people are excited about this, hey, maybe this product could work. And this is before we even do any coding. So we first do this to test the audience.

Eugene Yan: Давайте расскажу вот как. Перед тем как начать проект, нужно обсудить свою идею и проверить её с другими людьми. Возьмём документ, которым славится Amazon. Он называется «пресс-релиз». Перед началом проекта мы пишем пресс-релиз. Например, пресс-релиз для Amazon S3 мог бы звучать так: высокомасштабируемое хранилище по очень низкой цене. Мы рассылаем его внутри компании. Людям это интересно? Если да — может быть, этот продукт имеет шансы. И это ещё до начала написания кода. Сначала мы тестируем идею на аудитории.

And after you decide to do it—if the press release document works well—then maybe you write something called the design document. I know software engineers are very familiar with this, but the design doc is essentially… let’s say I’m gonna write the design document for real-time recommendations on how I would train the model, how I would serve the model, what are my business and technical requirements in terms of latency, in terms of throughput, in terms of cost. I write that and again, I will circulate that.

А после того как вы решили реализовывать идею — если пресс-релиз сработал — вы, возможно, пишете так называемый дизайн-документ. Знаю, софтверные инженеры хорошо с ним знакомы. Дизайн-документ — это, по сути… допустим, я напишу дизайн-документ для рекомендаций в реальном времени: как я буду обучать модель, как буду обслуживать модель, каковы мои бизнес- и технические требования по задержке, пропускной способности, стоимости. Я пишу это и снова рассылаю.

So writing at work gives you a way to test your ideas at scale before writing any code. So that’s really powerful. First you test it from the customer perspective: Is the idea exciting? Then you test it from the implementation: Is it useful? Is it possible? You’re going to check with your principal engineers, your fellow engineers, and make sure it works.

Таким образом, письмо на работе даёт вам возможность тестировать свои идеи в масштабе до написания любого кода. И это очень мощный инструмент. Сначала вы проверяете с точки зрения клиента: интересна ли идея? Потом проверяете реализацию: возможно ли это? Полезно ли? Вы сверяетесь со своими ведущими инженерами, коллегами и убеждаетесь, что это работает.

And documentation. Alexey mentioned about documentation. Personally, I’m a very forgetful guy. If I write some code, six months later, I would look at it and definitely forget about it. I will be looking at my code and be thinking: “What is this idiot Eugene writing about? Why did he implemented this way?” So documenting my code is like me—in the past—sending to myself: “Hey, you might think this is really stupid but here’s the reason for this. It’s because the data before this day is like this. Or it’s because I had to optimize the code to meet the latency requirements” and this is what it does, documenting your code does that.

И документация. Alexey упоминал о документации. Лично я очень забывчивый. Если я написал код, через полгода я точно его забуду. Буду смотреть на свой код и думать: «Что этот идиот Eugene тут понаписал? Зачем он это так реализовал?» Так что документирование кода — это как сообщение от меня из прошлого самому себе: «Эй, тебе может показаться, что это глупо, но вот причина. Данные до этой даты выглядят вот так. Или мне пришлось оптимизировать код, чтобы уложиться в требования по задержке». Вот что даёт документирование кода.

Similarly for documenting your projects. Why did we decide to go with dynamoDB instead of Redis? What’s the pros and cons of each? Where’s the decision log? Why did we decide to go with Flink instead of Spark? You know all these answers. Or at least, you would have done the research for them. It would all be in your head. But you want to write it down so that you remember, and you want to write it down to share the knowledge with your team.

То же самое с документированием проектов. Почему мы выбрали DynamoDB, а не Redis? Какие плюсы и минусы у каждого варианта? Где журнал решений? Почему мы выбрали Flink, а не Spark? Вы знаете все ответы. Или, по крайней мере, вы провели исследование. Всё это у вас в голове. Но нужно записать — чтобы самому помнить и чтобы поделиться знаниями с командой.

I hope that answers the question. Writing is important at work to test your ideas through a press release, test your design through the design doc. You document at work, you document your stuff so that the knowledge is not lost. And this helps you scale the knowledge more effectively.

Надеюсь, это отвечает на вопрос. Письмо важно на работе для проверки идей через пресс-релиз, для проверки дизайна через дизайн-документ. Вы документируете на работе, документируете свои решения, чтобы знания не терялись. И это помогает масштабировать знания более эффективно.

Alexey Grigorev: And then also, like you said, you write for your future self, right. Because you can forget things. That resonates with me because I know that if I do this sequence of terminal commands, I know that in a few days, I will forget them. I need to write them down. So next time I need to execute the same, like create do the same thing, I have reference, and I just can copy paste things. I also wanted to ask you, like you mentioned, like this press release and then design document, is it something that I think Amazon is called working backwards. Is it that thing?

Alexey Grigorev: А ещё, как ты сказал, ты пишешь для своего будущего «я». Потому что можно забыть что угодно. Мне это очень знакомо: я знаю, что если выполню эту последовательность команд в терминале, через пару дней я их забуду. Мне нужно записать. Чтобы в следующий раз, когда нужно сделать то же самое, я мог просто скопировать и вставить. Ещё хотел спросить — ты упомянул пресс-релиз и дизайн-документ. Это то, что в Amazon называют «работа от обратного» (working backwards)?

Eugene Yan: The press release is part of the working backwards process. So the working backwards process, it’s not exactly a secret. I mean, it is online. So essentially, working backwards is what it is, we work backwards from the customer. And that’s the right way to work. It means that we try to understand what the customer problem is, what the customer potential demand is and we work backwards from it. The other way of doing this is, we build it and people use it because what we build is so awesome. But, you know, often, that doesn’t work. So that’s the working backwards process.

Eugene Yan: Пресс-релиз — это часть процесса working backwards. Процесс working backwards — это не совсем секрет. Он есть в открытом доступе. По сути, working backwards — это именно то, что следует из названия: мы работаем от обратного — от клиента. И это правильный подход. Мы стараемся понять, в чём проблема клиента, каков потенциальный спрос, и работаем от этого. Альтернативный подход — мы строим, а люди используют, потому что то, что мы строим, настолько крутое. Но, знаете, обычно это не работает. Вот что такое working backwards.

And Alexey, you talked about this a lot. First, do some research. Understand what is the problem the customer has before you even train a model to solve that problem. If that’s not a problem or if the potential cost saved or if the potential revenue is too minor, we shouldn’t put effort into that. Right. So we work backwards.

И Alexey, ты часто об этом говорил. Сначала проведи исследование. Пойми, в чём проблема клиента, прежде чем обучать модель для её решения. Если это не проблема, или потенциальная экономия или выручка незначительны, не стоит тратить на это ресурсы. Мы работаем от обратного.

The press release in the working backwards process helps us to solidify our idea around a single idea. For S3, we want to provide highly scalable, low latency, low cost storage. And so the team is going to build around that.

Пресс-релиз в процессе working backwards помогает нам сфокусировать идею вокруг одной центральной мысли. Для S3 — мы хотим предоставить высокомасштабируемое, быстрое и дешёвое хранилище. И команда строит работу вокруг этого.

I think for Alexa initially the press release was “ You can start music with your voice command”. Initially it was just that. Starting music via voice. But over time, of course, it has been very popular and it has grown and grown such that you can shop for groceries, you can ask questions, you can control lightning, but the press release, the first one is just test the market. Are people interested in it? Are internal stakeholders interested in it? Are your VPs, are your directors interested in it to channel resources into this research?

Думаю, для Alexa первоначальный пресс-релиз был: «Вы можете включить музыку голосовой командой». Изначально — только это. Включение музыки голосом. Но со временем, конечно, продукт стал очень популярным и разросся: можно заказывать продукты, задавать вопросы, управлять освещением. Но пресс-релиз, первый пресс-релиз — это просто проверка рынка. Интересно ли это людям? Интересно ли это внутренним стейкхолдерам? Вашим вице-президентам, директорам — готовы ли они направить ресурсы на это исследование?

Alexey Grigorev: Yeah, makes sense. And the writing is an important part of this process right?

Alexey Grigorev: Да, логично. И письмо — важная часть этого процесса, верно?

Eugene Yan: Yeah. I’m sure everyone knows, or at least most people know that Amazon doesn’t have slides. We don’t use PowerPoint. At least most of the time. So we write documents and that makes it very easy to scale, right? To share something you don’t need to be there to present for half an hour, you can just send them the document and they can just read it. So it really saves a lot of time.

Eugene Yan: Да. Уверен, все знают — или, по крайней мере, большинство — что в Amazon нет слайдов. Мы не используем PowerPoint. По крайней мере, в большинстве случаев. Мы пишем документы, и это позволяет очень легко масштабироваться. Чтобы поделиться чем-то, не нужно быть на месте и презентовать полчаса — можно просто отправить документ, и люди прочитают его. Это экономит массу времени.

Of course, you know, writing the document takes a lot of time. But once you have written it, it’s upfront costs that you almost never have to repeat it again. Unlike a presentation, you always have to be there to present, or you could video yourself, I don’t know. But I can tell you this document writing process is very useful and it will follow me wherever I go, I will adopt the same practice.

Конечно, написание документа занимает много времени. Но однажды написав, вы практически никогда не повторяете эту работу. В отличие от презентации — вам каждый раз нужно быть на месте и выступать, или записать себя на видео, не знаю. Но могу сказать: этот процесс работы с документами очень полезен, и он будет со мной, куда бы я ни пошёл. Я буду применять ту же практику.

Alexey Grigorev: And I think we still have a bit of time and they have another question for you. What I want to ask you is writing for portfolio. So let’s say you did an awesome project, let’s say it was a Kaggle competition you finished in the top 20 top 30 like with a medal and you want to put all your code to Github. What do you do, what do you need to put in the README so people can immediately see the value of this thing?

Alexey Grigorev: Думаю, у нас ещё есть немного времени, и у меня есть ещё один вопрос. Я хочу спросить тебя о писательстве для портфолио. Допустим, вы сделали отличный проект — скажем, соревнование Kaggle, финишировали в топ-20, топ-30, с медалью, и хотите выложить весь код на Github. Что вы делаете, что нужно написать в README, чтобы люди сразу увидели ценность?

Eugene Yan: Let’s think about it. Imagine I’m searching on GitHub for the code for some Kaggle competition. What would I find? I would find hundreds of repos on that Kaggle competition. What would distinguish one repository from another?

Eugene Yan: Давайте подумаем. Представьте: я ищу на GitHub код для какого-то соревнования Kaggle. Что я найду? Сотни репозиториев по этому соревнованию. Что отличит один репозиторий от другого?

I think having a README is useful. A README that says how to start using this code, how to quick start, how to install this code, if it has a requirements, that will be really useful. And maybe explains the big processes. The data prep step is in this folder, the machine learning step is in this folder, the validation steps is in this folder. So I think a basic README that sort of explains it. That would be good enough.

Я думаю, наличие README полезно. README, который рассказывает, как начать использовать этот код, как быстро запустить, как установить, есть ли requirements — это действительно полезно. И, может быть, описание основных этапов: подготовка данных — в этой папке, машинное обучение — в этой, валидация — в этой. Думаю, базовый README, который всё это объясняет, — этого достаточно.

Next, imagine thinking of it from a hiring manager’s point of view. If they’re going to hire you, you definitely need to be able to write code. Then the question is: Are you able to document code and share about it? When they read your code does the documentation make sense? When they read your README, does it make sense? Do you explain it well enough that they feel confident that you can do the same thing at work? So I think that’s something that would be helpful.

Дальше — представьте это с точки зрения нанимающего менеджера. Если они собираются вас нанять, вы, конечно, должны уметь писать код. Но вопрос в другом: умеете ли вы документировать код и рассказывать о нём? Когда они читают ваш код, имеет ли смысл документация? Когда читают ваш README, понятно ли всё? Объясняете ли вы достаточно хорошо, чтобы у них была уверенность, что вы сможете делать то же самое на работе? Думаю, это было бы полезно.

Alexey Grigorev: Okay, we’re running out of time, and you probably need to go. So thanks a lot for coming today for sharing your knowledge with us and for sharing all see your secret sauce. I like what you do differently, and it deserves this name. I’ll try to follow your process and see what happens. And they think it will be a lot better than what I previously wrote.

Alexey Grigorev: Ладно, у нас заканчивается время, и тебе, наверное, пора. Большое спасибо, что пришёл сегодня, поделился своими знаниями и раскрыл свой секретный рецепт. Мне нравится, что ты делаешь по-своему, и это заслуживает такого названия. Я попробую следовать твоему процессу и посмотрю, что получится. Думаю, это будет намного лучше того, что я писал раньше.

Eugene Yan: Thank you. I hope so. Thanks Alexey. Thanks everyone.

Eugene Yan: Спасибо. Надеюсь, что так и будет. Спасибо, Alexey. Спасибо всем.

Had a great chat with @Al_Grigor on the importance of writing in a tech career.

We discussed about:
• Motivations for writing
• My writing process (iterating outlines)
• How to start writing
• Writing culture at Amazon
• And more...👇https://t.co/5GJ8IAxJ29

— Eugene Yan (@eugeneyan) January 19, 2021

Отлично поговорили с @Al_Grigor о важности письма в технической карьере. Мы обсудили:• Мотивацию для писательства• Мой процесс написания (итерации плана)• Как начать писать• Культуру письма в Amazon• И многое другое...👇https://t.co/5GJ8IAxJ29— Eugene Yan (@eugeneyan) 19 января 2021

If you found this useful, please cite this write-up as:

Если это было полезно, пожалуйста, цитируйте этот материал как:

Yan, Ziyou. (Jan 2021). DataTalksClub - The Importance Of Writing In A Tech Career. eugeneyan.com. https://eugeneyan.com/speaking/writing-for-a-tech-career/.

Yan, Ziyou. (Jan 2021). DataTalksClub - The Importance Of Writing In A Tech Career. eugeneyan.com. https://eugeneyan.com/speaking/writing-for-a-tech-career/.

or

или

@article{yan2021datatalk, title = {DataTalksClub - The Importance Of Writing In A Tech Career}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Jan}, url = {https://eugeneyan.com/speaking/writing-for-a-tech-career/} }

@article{yan2021datatalk, title = {DataTalksClub - The Importance Of Writing In A Tech Career}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Jan}, url = {https://eugeneyan.com/speaking/writing-for-a-tech-career/} }



Join 11,800+ readers getting updates on machine learning, RecSys, LLMs, and engineering.

Присоединяйтесь к 11 800+ читателям, получающим обновления о машинном обучении, рекомендательных системах, LLM и инженерии.