Десять ошибок начинающих программистов — рейдж, деньги и комплекс бога
Учиться на собственных ошибках — удел слабых. Конечно, шероховатости будут в карьере любого талантливого программиста, но перенять верные паттерны поведения и не садиться в глубокие и давно исследованные другими людьми лужи довольно легко. Рассказываем о самых распространенных ошибках начинающих программистов.
1. Комплекс «я сам»
Говорят, дети проходят комплекс «я сам» в возрасте около трёх лет, но иногда желание свернуть горы в одиночку возвращается к нам в более старшем возрасте. Молодые программисты, которые чувствуют, что имеют достаточно навыков для реализации какого-либо проекта с нуля (чаще всего это ложное чувство), готовы отдать себя целиком, лишь бы прийти к финишу в одиночку. Такой подход годится для школьных и университетских проектов, но во взрослой жизни без командной работы никуда.
Фото: «Росатом»
Во-первых, команда разработчиков будет банально быстрее работать. Во-вторых, многозадачность — это скорее порок, так как при объединении бэкенда, фронтенда и тестирования в руках одного человека на выходе может получиться нечто феноменально забагованное. Если молодой программист знает (или думает, что знает), каким должен быть код и как реализовать всё в кратчайшие сроки, то формулой успеха будет донести идею до команды. Да, можно столкнуться с непониманием или даже критикой — часто бывает, что ход ваших мыслей оказывается не настолько гениальным, как казалось в голове. Однако итоговый продукт получится более целостным. Это одна из причин, почему крупные компании работают именно командами.
2. Программирование без планирования
Возможно, в небольших компаниях программистам и бывает нечем заняться без коммерческих заказов, либо же у них есть свободное время, которое нужно занять чем-то полезным для ежемесячной отчетности. В таком случае кодить можно и «в никуда», просто от скуки, но продуктивно ли это? Вопрос риторический.
В крупных фирмах, в качестве примера возьмем «Росатом» (о работе в котором в сфере IT можно прочитать на Cybersport.ru), так не будет — в госкорпорации умеют ставить четкие задачи. Хотя «Росатом» включает в себя множество компаний (более 300), все они имеют конкретную цель или целостный проект в реализации, над которым работают на результат, а не ради написания кода.
3. Туннельное развитие в неподходящей сфере
Сфера IT многогранна. Информационные технологии пронизывают весь современный мир, поэтому найти дело по вкусу и получить возможность зваться «айтишником» вполне реально. Не стоит зацикливаться на одном деле, засиживаться на непривлекательным с точки зрения самореализации месте, даже если вам платят неплохую зарплату. Где-то вознаграждение будет еще больше (программисты — ценные кадры!), а сама работа принесет колоссальное удовольствие.
Алексей Тонкошкуров, сотрудник госкорпорации «Росатом»:
«Я всем советую определиться с тем, чего вы хотите. Это будет сложно — ошибетесь, и бог с ним, потом измените. У меня есть друг, который за три месяца прошел длинный путь: сначала стал делать игры, потом понял, что там одна математика, и передумал — пошел делать приложения под Android. А в итоге вообще занимается 1C. Пока не попробуешь — не узнаешь, что тебе подходит больше».
В отличие от фундаментальных наук, спорта или даже торговли, имея знания в программировании на каком-либо языке или хотя бы представление о том, чем занимаются кодеры, можно перебирать десятки вариантов рабочих мест, где эти знания можно будет применить. Программист — одна из тех профессий, в которой часто наступает выгорание, а грамотный подбор рода деятельности — лекарство от одной из самых частых его причин.
4. Игнорирование иностранных языков
Это ошибка не конкретно программиста, а современного человека в целом. Английский — это тот самый эсперанто, который пытался выдумать Заменгоф. Он объединяет людей из разных стран, позволяет общаться как на повседневные, так и на научные темы. Если вы хотите быть в потоке актуальной и достоверной информации, изучать язык необходимо.
Фото: «Росатом» Алексей Тонкошкуров, сотрудник госкорпорации «Росатом»:
«Когда вы уже станете профессионалом, то поймете, что все передовые технологии все еще генерируются на Западе. Некоторые генерируются русскими людьми, но выкладываются на зарубежных источниках. Поэтому если вы хотите получать самую свежую информацию, а в IT она генерируется ежедневно, то английский очень сильно поможет».
5. Написание кода на количество, а не качество
Сделать работу побыстрее и валять дурака всё остальное время? Звучит нереалистично, так как сценарий работы над кодом в последние часы перед дедлайном случается куда чаще. Избежать можно и того, и другого варианта, если кодить как мыслитель, а не машинист.
Андрей Злобин, сотрудник госкорпорации «Росатом»:
«Бывает, что проходит рабочий день и ты написал очень мало кода, потому что большую часть времени необходимо было больше думать. Многие считают, что программист — котик на видео, который постоянно по клавиатуре бьет [смеется]. Нет, программист — это больше, чем человек, который просто набирает код. Это продумывание некой архитектуры приложения: как будет удобнее, как лучше сделать, потому что от этого зависит дальнейшая жизнь программного продукта».
В хороших IT-компаниях практически невозможно услышать фразу: «Посмотри, как много кода я написал». Таким грешат только новички. Отказывайтесь от измерения длины кода раз и навсегда.
6. Невнимательное изучение технического задания
Основная цель работы — выполнение поставленной цели, и очень важно, чтобы она соответствовала изначальным планам заказчика или команды. Начинающим программистам может быть трудно работать с техническим заданием, но игнорировать его никак нельзя. Удивительно, но многие пытаются, считая, что достижение результата любым способом нивелирует риски.
Фото: «Росатом»
В случае если ТЗ не ясно, стоит обращаться к более опытным напарникам. Не бойтесь задавать уточняющие вопросы даже для самых мелких задач, чтобы не пришлось переделывать работу с нуля.
7. Отсутствие pet-проектов
Pet-проекты — это тот самый «кодинг для души». Ваша тайна (впрочем, ее можно разделить с близкими друзьями), любовь и совсем необязательно что-то цельное и понятное абсолютному большинству. Вы можете делать мини-игру с шутками, понятными только вам, кодить проект «умного дома» для мамы или бабушки, создавать собственное приложение по уходу за котом… В общем, лучше всего, если pet-проект будет как-то дергать ваши душевные струны, иначе заморачиваться с «работой в свободное от работы время» не стоит.
Рабочий кодинг редко приносит колоссальное удовольствие. Да, в конце пути ваши строчки, весьма вероятно, помогут человечеству, и воодушевление от подобного созидания имеет место, но от рутины никуда не уйти. Pet-проекты помогают наслаждаться программированием, развиваться и пробовать что-то новое. К тому же их всегда можно довести до финала и продать, если у идеи есть хороший фундамент.
8. Неправильное отношение к ошибкам
Все люди ошибаются. Некоторых собственные ошибки приводят в ярость, а других, наоборот, загоняют в депрессию. И хотя многие говорят «не держать в себе, если накипело», на работе лучше воздержаться от рейджа. Даже если одна маленькая ошибка в коде привела к потере прогресса нескольких рабочих смен.
Фото: «Росатом»
Кодинг можно сравнить с геймингом. На протяжении многих дней ты оттачиваешь личное мастерство, делаешь свой вклад в командную работу, а также обсуждаешь тактическую составляющую. Ошибка может заставить тебя вспылить, но если ты играешь вдолгую, стоит начать искать пути решения проблемы, а не кричать в пустоту. Даже упав в сетку лузеров, можно выиграть The International.
9. «Комплекс бога»
«Комплекс бога» — это не одна ошибка, а целый ряд поведенческих отклонений от нормы. Программист, который зациклен на собственной правоте и готов отстаивать мнение даже после того, как ему привели множество аргументов против, вряд ли задержится на серьезной работе надолго. Сфера IT поощряет уверенных в себе людей — это факт. Однако многие вещи и задачи информационных технологий можно решить разными способами, и не всегда с первого раза ясно, какой путь наиболее эффективен.
Причем и эта самая «эффективность» будет разной: стоимость разработки, длительность и затраченные ресурсы одного и того же проекта могут разительно отличаться. Молодые и горячие программисты могут превосходно разбираться в способах достижения цели, но не иметь менеджерских знаний и считать, что руководители настроены против них, специально ставят палки в колеса и обламывают крылья. Научиться принимать видение других людей и их аргументы, а также подстраиваться под обстоятельства — важнейшие навыки хорошего программиста.
10. Зацикленность на работе
Многие программисты не умеют отдыхать. Размеренное написание кода подводит к дедлайнам, проекты сдаются, и начинаются новые — кодеры плывут по реке рабочих задач и не позволяют себе расслабиться. Многие программисты, официально работающие в крупных компаниях, не реализуют положенный по трудовому законодательству отпуск. И это реальная проблема. Многие крупные корпорации, в том числе «Яндекс», Google и «Росатом», стараются обеспечить сотрудникам смену деятельности даже вне официального отпуска.
Алексей Тонкошкуров, сотрудник госкорпорации «Росатом»:
«Все думают: “Госкорпорация, уныние”. Но у меня тут есть возможность ходить в беговой клуб, заниматься в центре Москвы в открытом бассейне “Чайка”, заниматься парусным спортом, ходить на единоборства. Я могу написать список конференций и курсов, которые я хочу пройти в 2022 году, и все это мне предоставится бесплатно! Вот такие плюшки у нас имеются».
IT — это совокупность творческой работы с технической, но среднестатистический человек хоть немного, но все же имеет склонность к какой-то одной из этих двух полярных сфер. Отдых — это приведение себя к точке баланса. Даже если кажется, что еще чуть-чуть нужно поработать, что мысль застряла где-то на подкорке и за время выходных можно растерять крупицы практически собранных воедино идей, нужно избавляться от этого ложного ощущения. Работать на износ нельзя, потому что долго это не продлится. И когда кодинг осточертеет, вернуться и как следует наотдыхаться не получится.