Чем занимается программист на работе
Картинка из кино — и почему она врёт
В фильмах программист сидит в тёмной комнате, стучит по клавиатуре, на экране бегут зелёные строчки, и через тридцать секунд он произносит: «Я взломал Пентагон».
Если бы работа программиста правда выглядела так, половина индустрии ушла бы в первый же день от скуки. Потому что в реальности всё иначе — и, на мой взгляд, гораздо интереснее.
Давайте посмотрим, чем занимается Java-программист в обычной компании. Без прикрас.
Один день — как он есть
Сразу оговорюсь: «день» здесь условный, очередность - тоже. Задачи пересекаются, прерываются, переносятся на завтра, а иногда одна фича растягивается на месяц. Но если разложить типичный день по полочкам, получится примерно следующее.
Фича (от англ. feature — «особенность», «характеристика» или «функция») — это полезная возможность, уникальная деталь или специальная функция продукта. Но чаще так называют новую функциональность программы
Время | Чем занимается | Почему это важно |
|---|---|---|
10:00 | **Созвон с командой** | Обсуждают, какую задачу делать дальше. Менеджер говорит: «Пользователи хотят менять пароль». |
10:30 | **Читает чужой код** | Прежде чем менять систему паролей, нужно понять, как она устроена сейчас. Чужой код — как чертёж чужого механизма. |
11:30 | **Пишет код** | Да, немного. Но не весь день. Пишет новую функцию «смена пароля». |
13:00 | **Пишет тесты** | Проверяет, что его код работает. Без тестов коллега легко сломает вашу работу, не заметив. |
14:30 | **Код-ревью** | Читает код коллеги и ищет ошибки. Это как редактировать статью друга: «Тут опечатка, а тут логика не сходится». |
16:00 | **Ищет баг** | Жалоба: «При входе ошибка!» Программист читает логи, находит проблему в одной-единственной запятой. |
17:30 | **Учит новое** | Вышла новая версия Java. Нужно понять, что изменилось и стоит ли обновляться. |
Видите, сколько здесь «не кода»? И это норма.
Три правды, о которых молчат курсы
Правда 1. 80% работы — это чтение, а не написание
Представьте: вы пришли на новую работу. Перед вами — сотни тысяч строк чужого кода, написанного людьми, которых вы никогда не видели. Часть из них уже уволилась. И вам нужно изменить одну функцию, не сломав ничего вокруг.
Чтение кода занимает больше времени, чем его написание. Гораздо больше. Отсюда одно из главных правил профессии: код должен быть понятным. И речь идет не о компьютере, а о человеке. Код может жить десятки лет. И его постоянно будет кто-то перечитывать.
Если логику вашего кода будете понимать только вы - это будет плохим кодом.
Правда 2. Вы решаете проблемы людей, а не пишете код
Когда менеджер говорит: «Нам нужна кнопка "Забыли пароль"», — он не просит кнопку. Кнопку он мог бы нарисовать и сам. Он просит: «Пользователь забыл пароль и не может войти. Помоги ему вернуться без звонка в поддержку».
Код — это инструмент. Проблема — это цель.
Многие новички теряются, когда впервые сталкиваются с этим на работе: они ждали «пиши код», а получили «разберись, чего вообще хочет пользователь и почему он злится». Но именно это и есть работа. Код — лишь способ её решить.
Правда 3. Баги — это не стыдно
Каждый программист ежедневно пишет код, который не работает с первого раза. Даже самые опытные. Даже те, кому платят сотни тысяч.
Разница между новичком и профи не в том, что профи не ошибается. А в том, как он к этому относится. Новичок, как правило впадает в уныние и самобичевание, а профи - даже не обращает внимание, а просто идет чинить.
Баг — это не ошибка. Это подсказка от компьютера. Он говорит: «Ты хотел одного, а получилось другое. Давай разберёмся».
Кстати, помните фразу из первого урока про «самого добросовестного идиота»? Баги — это просто моменты, когда выясняется, что вы недостаточно точно объяснили этому идиоту задачу. Ничего личного.
Почему об этом важно знать сейчас
Многие приходят в профессию с картинкой «буду весь день писать код». А на деле оказывается: коммуникация, чтение, обсуждения, тестирование, поиск багов в чужих логах, бесконечные новые стандарты и правила. Код — лишь часть.
Если вы этого не ожидаете — вы разочаруетесь. А разочарование на втором месяце обучения стоит дороже, чем любая ошибка в синтаксисе.
Если же ожидаете — работа становится понятной и предсказуемой. Вы знаете, что «писать код» — это финальный, самый короткий этап. До него — понять, что вообще делать. После — убедиться, что оно работает и не сломало соседей.
Короткое резюме
Программист не «печатает код весь день». Он думает, читает, обсуждает и проверяет.
Большая часть времени уходит на чтение чужого кода и поиск багов.
Вы решаете проблемы людей, а код — лишь инструмент.
Ошибаться — нормально. Главное — уметь разобраться, почему.
А теперь — следующий логичный вопрос. Вы поняли, чем занимается программист каждый день. Но как вообще рождается новая фича? От идеи до работающего кода — есть ли у этого процесса какой-то порядок? Есть. И об этом — дальше.
Что такое программирование
8 мин
Чем занимается программист на работе
6 мин
Как устроен процесс разработки
8 мин
Зачем учиться программированию
9 мин
Почему Java?
6 мин
Что будет в курсе
6 мин