Что я узнала за 15 лет работы программистом
Пятнадцать лет в программировании – это как 100 лет в обычной жизни. Ты видел, как умирают и рождаются языки программирования, пережил сотню дедлайнов, тысячи багов и бесчисленные моменты, когда твой код отказывался работать просто потому, что ему так захотелось.
Вот мои главные выводы:
Программирование – это ремесло.
Его нельзя освоить, просто прочитав книгу или посмотрев курс. Это навык, который развивается только через практику, ошибки и исправление этих ошибок. Как столяр с каждым новым изделием лучше чувствует дерево, так и программист со временем начинает понимать код не только логически, но и интуитивно.
Ошибка может быть в одном символе, но исправить её с первого раза не всегда получается.
Где-то не тот знак в условии, где-то лишний пробел в конфиге, где-то «i++» вместо «++i» – всё, программа ломается. Исправить такую ошибку может быть сложнее, чем её найти. А если она проявляется только раз в месяц на сервере у клиента – можно смело заводить отдельную ветку седых волос.
Программист программирует в голове.
Писать код – это только заключительная часть работы. Всё самое сложное происходит в голове: придумать архитектуру, разобрать проблему, придумать, как её красиво решить. Именно поэтому программист, который просто смотрит в экран и ничего не делает – не бездельничает, а работает.
Математика нужна программистам, но нечасто, зато самые разные её разделы.
Обычно хватает знания логики и арифметики. Но если занимаешься графикой – нужно знать линейную алгебру. Если работаешь с машинным обучением – статистику. Если пишешь игру с физикой – матан. Иногда приходится вспоминать школьную геометрию, чтобы понять, как правильно вращать объект в 3D.
Программирование – это скучно. Иногда – невыносимо скучно.
В фильмах программисты хакерским кодом ломают системы за 10 секунд, но реальность – это три дня копания в документации, чтобы заставить API возвращать нужный формат даты. Иногда работа – это бесконечное исправление мелочей, которые никто не заметит, но без которых всё сломается.
Самодисциплина – ключ к профессионализму.
Можно быть умным, талантливым и знать 10 языков программирования, но если не умеешь организовать свою работу – результат будет посредственным. Нужно заставлять себя писать документацию, разбираться в новых технологиях, тестировать код, даже если очень хочется просто «написать и забыть».
Программа может работать отлично, но никому не быть нужной.
Ты можешь написать идеальный, быстрый, красивый и удобный сервис, но если никто не понимает, зачем им его использовать – он умрёт в тишине. Хорошая идея и понимание потребностей пользователей важнее, чем сам код.
Бывает, что программа работает ужасно, но все её используют.
Примеров полно: старые банковские системы, корпоративный софт, государственные сервисы. Глючит, тормозит, интерфейс как из 90-х, но заменить нечем, поэтому все мучаются и продолжают пользоваться.
Отзывы пользователей о программах часто не объективны.
Кто оставляет отзывы? Либо те, кому всё жутко не нравится, либо те, кто в восторге. Молчаливое большинство просто пользуется и не пишет ничего. Поэтому по отзывам создаётся ощущение, что приложение либо идеальное, либо худшее в мире.