Учиться на собственных ошибках — удел слабых. Конечно, шероховатости будут в карьере любого талантливого программиста, но перенять верные паттерны поведения и не садиться в глубокие и давно исследованные другими людьми лужи довольно легко. Рассказываем о самых распространенных ошибках начинающих программистов.
Говорят, дети проходят комплекс «я сам» в возрасте около трёх лет, но иногда желание свернуть горы в одиночку возвращается к нам в более старшем возрасте. Молодые программисты, которые чувствуют, что имеют достаточно навыков для реализации какого-либо проекта с нуля (чаще всего это ложное чувство), готовы отдать себя целиком, лишь бы прийти к финишу в одиночку. Такой подход годится для школьных и университетских проектов, но во взрослой жизни без командной работы никуда.
Во-первых, команда разработчиков будет банально быстрее работать. Во-вторых, многозадачность — это скорее порок, так как при объединении бэкэнда, фронтэнда и тестирования в руках одного человека на выходе может получиться нечто феноменально забагованное. Если молодой программист знает (или думает, что знает), каким должен быть код и как реализовать всё в кратчайшие сроки, то формулой успеха будет донести идею до команды. Да, можно столкнуться с непониманием или даже критикой — часто бывает, что ход ваших мыслей оказывается не настолько гениальным, как казалось в голове. Однако итоговый продукт получится более целостным. Это одна из причин, почему крупные компании работают именно командами.
Возможно, в небольших компаниях программистам и бывает нечем заняться без коммерческих заказов, либо же у них есть свободное время, которое нужно занять чем-то полезным для ежемесячной отчетности. В таком случае кодить можно и «в никуда», просто от скуки, но продуктивно ли это? Вопрос риторический.
Сфера IT многогранна. Информационные технологии пронизывают весь современный мир, поэтому найти дело по вкусу и получить возможность зваться «айтишником» вполне реально. Не стоит зацикливаться на одном деле, засиживаться на непривлекательным с точки зрения самореализации месте, даже если вам платят неплохую зарплату. Где-то вознаграждение будет еще больше (программисты — ценные кадры!), а сама работа принесет колоссальное удовольствие.
В отличие от фундаментальных наук, спорта или даже торговли, имея знания в программировании на каком-либо языке или хотя бы представление о том, чем занимаются кодеры, можно перебирать десятки вариантов рабочих мест, где эти знания можно будет применить. Программист — одна из тех профессий, в которой часто наступает выгорание, а грамотный подбор рода деятельности – лекарство от одной из самых частых его причин.
Это ошибка не конкретно программиста, а современного человека в целом. Английский — это тот самый эсперанто, который пытался выдумать Заменгоф. Он объединяет людей из разных стран, позволяет общаться как на повседневные, так и научные темы. Если вы хотите быть в потоке актуальной и достоверной информации, изучать язык необходимо.
Сделать работу побыстрее и валять дурака всё остальное время? Звучит нереалистично, так как сценарий работы над кодом в последние часы перед дедлайнам случается куда чаще. Избежать можно и того, и другого варианта, если кодить как мыслитель, а не машинист.
В хороших IT-компаниях практически невозможно услышать фразу: «Посмотри, как много кода я написал». Таким грешат только новички. Отказывайтесь от измерения длины кода раз и навсегда.
Основная цель работы — выполнение поставленной цели, и очень важно, чтобы она соответствовала изначальным планам заказчика или команды. Начинающим программистам может быть трудно работать с техническим заданием, но игнорировать его никак нельзя. Удивительно, но многие пытаются, считая, что достижение результата любым способом нивелирует риски.
В случае, если ТЗ не ясно, стоит обращаться к более опытным напарникам. Не бойтесь задавать уточняющие вопросы даже для самых мелких задач, чтобы не пришлось переделывать работу с нуля.
Pet-проекты — это тот самый «кодинг для души». Ваша тайна (впрочем, ее можно разделить с близкими друзьями), любовь и совсем не обязательно что-то цельное и понятное абсолютному большинству. Вы можете делать мини-игру с шутками, понятными только вам, кодить проект «умного дома» для мамы или бабушки, создавать собственное приложение по уходу за котом… В общем, лучше всего, если pet-проект будет как-то дергать ваши душевные струны, иначе заморачиваться с «работой в свободное от работы время» не стоит.
Рабочий кодинг редко приносит колоссальное удовольствие. Да, в конце пути ваши строчки, весьма вероятно, помогут человечеству, и воодушевление от подобного созидания имеет место быть, но от рутины никуда не уйти. Pet-проекты помогают наслаждаться программированием, развиваться и пробовать что-то новое. К тому же их всегда можно довести до финала и продать, если у идеи есть хороший фундамент.
Все люди ошибаются. Некоторых собственные ошибки приводят в ярость, а других, наоборот, загоняют в депрессию. И хотя многие говорят «не держать в себе, если накипело», на работе лучше воздержаться от рейджа. Даже если одна маленькая ошибка в коде привела к потере прогресса нескольких рабочих смен.
Кодинг можно сравнить с геймингом. На протяжении многих дней ты оттачиваешь личное мастерство, делаешь свой вклад в командную работу, а также обсуждаешь тактическую составляющую. Ошибка может заставить тебя вспылить, но если ты играешь в долгую, стоит начать искать пути решения проблемы, а не кричать в пустоту. Даже упав в сетку лузеров, можно выиграть The International.
«Комплекс бога» — это не одна ошибка, а целый ряд поведенческих отклонений от нормы. Программист, который зациклен на собственной правоте и готов отстаивать мнение даже после того, как ему привели множество аргументов против, вряд ли задержится на серьезной работе надолго. Сфера IT поощряет уверенных в себе людей — это факт. Однако многие вещи и задачи информационных технологий можно решить разными способами, и не всегда с первого раза ясно, какой путь наиболее эффективен.
Причем и эта самая «эффективность» будет разной: стоимость разработки, длительность и затраченные ресурсы одного и того же проекта могут разительно отличаться. Молодые и горячие программисты могут превосходно разбираться в способах достижения цели, но не иметь менеджерских знаний и считать, что руководители настроены против него, специально ставят палки в колеса и обламывают крылья. Научиться принимать видение других людей и их аргументы, а также подстраиваться под обстоятельства, — важнейший навык хорошего программиста.
Многие программисты не умеют отдыхать. Размеренное написание кода подводит к дедлайнам, проекты сдаются и начинаются новые — кодеры плывут по реке рабочих задач и не позволяют себе расслабиться. Многие программисты, официально работающие в крупных компаниях, не реализуют положенный по трудовому законодательству отпуск. И это реальная проблема. Многие крупные корпорации стараются обеспечить сотрудникам смену деятельности даже вне официального отпуска.
IT — это совокупность творческой работы с технической, но среднестатистический человек хоть немного, но все же имеет склонность к какой-то одной из этих двух полярных сфер. Отдых — это приведение себя к точке баланса. Даже если кажется, что еще чуть-чуть нужно поработать, что мысль застряла где-то на подкорке и за время выходных можно растерять крупицы практически собранных воедино идей, нужно избавляться от этого ложного ощущения. Работать на износ нельзя, потому что долго это не продлится. И когда кодинг надоест, вернуться и как следует наотдыхаться не получится.
➕