К материалам курса

Чем занимается программист на работе

Картинка из кино — и почему она врёт

В фильмах программист сидит в тёмной комнате, стучит по клавиатуре, на экране бегут зелёные строчки, и через тридцать секунд он произносит: «Я взломал Пентагон».

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

Давайте посмотрим, чем занимается Java-программист в обычной компании. Без прикрас.

Один день — как он есть

Сразу оговорюсь: «день» здесь условный, очередность - тоже. Задачи пересекаются, прерываются, переносятся на завтра, а иногда одна фича растягивается на месяц. Но если разложить типичный день по полочкам, получится примерно следующее.

Фича (от англ. feature — «особенность», «характеристика» или «функция») — это полезная возможность, уникальная деталь или специальная функция продукта. Но чаще так называют новую функциональность программы

Время

Чем занимается

Почему это важно

10:00

**Созвон с командой**

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

10:30

**Читает чужой код**

Прежде чем менять систему паролей, нужно понять, как она устроена сейчас. Чужой код — как чертёж чужого механизма.

11:30

**Пишет код**

Да, немного. Но не весь день. Пишет новую функцию «смена пароля».

13:00

**Пишет тесты**

Проверяет, что его код работает. Без тестов коллега легко сломает вашу работу, не заметив.

14:30

**Код-ревью**

Читает код коллеги и ищет ошибки. Это как редактировать статью друга: «Тут опечатка, а тут логика не сходится».

16:00

**Ищет баг**

Жалоба: «При входе ошибка!» Программист читает логи, находит проблему в одной-единственной запятой.

17:30

**Учит новое**

Вышла новая версия Java. Нужно понять, что изменилось и стоит ли обновляться.

Видите, сколько здесь «не кода»? И это норма.

Три правды, о которых молчат курсы

Правда 1. 80% работы — это чтение, а не написание

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

Чтение кода занимает больше времени, чем его написание. Гораздо больше. Отсюда одно из главных правил профессии: код должен быть понятным. И речь идет не о компьютере, а о человеке. Код может жить десятки лет. И его постоянно будет кто-то перечитывать.

Если логику вашего кода будете понимать только вы - это будет плохим кодом.

Правда 2. Вы решаете проблемы людей, а не пишете код

Когда менеджер говорит: «Нам нужна кнопка "Забыли пароль"», — он не просит кнопку. Кнопку он мог бы нарисовать и сам. Он просит: «Пользователь забыл пароль и не может войти. Помоги ему вернуться без звонка в поддержку».

Код — это инструмент. Проблема — это цель.

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

Правда 3. Баги — это не стыдно

Каждый программист ежедневно пишет код, который не работает с первого раза. Даже самые опытные. Даже те, кому платят сотни тысяч.

Разница между новичком и профи не в том, что профи не ошибается. А в том, как он к этому относится. Новичок, как правило впадает в уныние и самобичевание, а профи - даже не обращает внимание, а просто идет чинить.

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

Кстати, помните фразу из первого урока про «самого добросовестного идиота»? Баги — это просто моменты, когда выясняется, что вы недостаточно точно объяснили этому идиоту задачу. Ничего личного.

Почему об этом важно знать сейчас

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

Если вы этого не ожидаете — вы разочаруетесь. А разочарование на втором месяце обучения стоит дороже, чем любая ошибка в синтаксисе.

Если же ожидаете — работа становится понятной и предсказуемой. Вы знаете, что «писать код» — это финальный, самый короткий этап. До него — понять, что вообще делать. После — убедиться, что оно работает и не сломало соседей.

Короткое резюме

  • Программист не «печатает код весь день». Он думает, читает, обсуждает и проверяет.

  • Большая часть времени уходит на чтение чужого кода и поиск багов.

  • Вы решаете проблемы людей, а код — лишь инструмент.

  • Ошибаться — нормально. Главное — уметь разобраться, почему.

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

  • theory icon

    Что такое программирование

    8 мин

  • theory icon

    Чем занимается программист на работе

    6 мин

  • theory icon

    Как устроен процесс разработки

    8 мин

  • theory icon

    Зачем учиться программированию

    9 мин

  • theory icon

    Почему Java?

    6 мин

  • theory icon

    Что будет в курсе

    6 мин