На YouTube-канале Сергея Немчинского, основателя школы программирования FoxmindEd, появилось видео, где он рассказал, какие знания и умения обязательны для каждого разработчика.
Highload публикует этот перечень.
Может, вы думали, что список начнется с чего-то другого? Но база есть база. Каждый разработчик должен обладать базовыми техническими знаниями не только по своей, но и по всем смежным профессиям. Если вы этим не обладаете, то с чего вы вообще взяли, что вы разработчик?
Без этого никуда в любой области, но именно в разработке все меняется особенно быстро. Даже в таких консервативных языках, как Java, много чего происходит. В результате, попадая на новый проект, вы всегда обнаруживаете что-то, чего не знаете. Так что доучивать — это часть профессии разработчика.
Фактически, вся зарплата программиста сводится к тому, чтобы он никогда не говорил: «я не знаю, как это решить», а работал и находил решение. В некоторых случаях заказчик может отказаться от этого решения, потому что оно займет слишком много времени, но это не ваша, как программиста, проблема. В большинстве случаев заказчику выгодно, чтобы вы исправили проблему в коде, даже если это займет год.
Поэтому умение упереться в одну точку рогом и пытаться исправить код — это необходимо. И, конечно, умение пользоваться инструментами, которые помогают это сделать.
Многие говорят: «надо быть готовым к переработкам». Но ирония в том, что к переработкам программисты, которые пришли в профессию из любви к ней, и так готовы. Их надо за уши оттаскивать от кода.
Но если у вас и работа — это разработка, и хобби — это разработка, вы очень скоро выгорите. Научитесь получать удовольствие от чего-то еще. В идеале это должно быть что-то, где не надо смотреть в монитор. Спорт — да. Компьютерные игры — нет.
Когда вы что-то кодите, вы должны понимать, какую роль это исполняет в проекте. Потому что часто бывает так, что то, над чем заморачивается программист, для проекта вообще не важно. А важна, даже критична, какая-то примитивная вещь, которой никто не занимается.
Проблема еще и в том, что большинство менеджеров не имеют технического бэкграунда и не в состоянии оценить, нужно ли то, что вы делаете. А тимлид может за вами просто не уследить. А бывает, что и сам тимлид направляет разработчиков в сторону, которая им интересна, вместо того, чтобы делать то, что важно для проекта.
Довольно часто в разработке встречается такая ситуация, когда вы долго работали, а в итоге поняли, что пошли не туда. Имейте храбрость, чтобы удалить весь результат работы нескольких дней и пойти другой дорогой. Это часто очень больно, но вложить еще тонну времени и тонну сил в явно неработающий вариант — гораздо хуже. И оставлять такой код в комментариях тоже не вариант — он будет захламлять проект.
Другая крайность — хвататься за другое решение при первой же ошибке. Но мы должны пройти по каждому пути, упереться, побиться об него головой и только тогда увидеть, что это не работает. Вот тогда уже лошадь сдохла и нужно слезть с нее.
Прошло то время, когда можно было сидеть в гараже, быть гиперспециалистом и это было бы нужно всему миру. Даже если вы мобильный разработчик, у вас будет команда из дизайнера, тестировщика и, возможно, менеджера. И от вашего умения работать с этими людьми, доносить свои мысли и слушать чужие, зависит гораздо больше, чем от вашего умения декомпозировать задачу.
Прокачивайте свои софт-скиллы, это реально важно.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…