На Quora уже несколько лет существует популярный тред, посвященный тому, насколько тяжело работать программистом. Участники обсуждения делятся своим рабочим опытом, сравнивая эту специальность с другими профессиями. Приводим сокращенные комментарии из этой дискуссии.
Дэниэл Берри, программист: «ОК, давайте я подготовлю вас к реальному миру. Вы смотрели видео на YouTube, знаете, те самые «обычный день программиста»? Как программисту, вам будут давать проекты, ради которых вы будете выпрыгивать из кровати по утрам и добираться до офиса перед рассветом, пропускать обед и оставаться допоздна! К вам будут относиться как к ответственному взрослому, а это значит, что вам дадут работать из дому, вместо того, чтобы заставлять вас ездить на далекие расстояния, жертвуя продуктивностью. Как программист, вы не будете постоянно мечтать о пенсии. Но конечно, это все неправда.
Горькая правда в том, что, работая программистом, вы скорее всего получите все ту же унылую офисную работу в корпорации, которая будет то скучной, то раздражающей, с небольшими проблесками надежды. Сорри за неприглядную картину, но я работал в четырех разных компаниях и это — мой опыт. Страстное увлечение программированием, которое я испытывал 5 или 10 лет тому, быстро испаряется. Единственное преимущество этой работы перед другими — за нее лучше платят. Поэтому я ее и не бросаю».
Майк Черч, занимается программированием с 1975 года: «Я работал программистом два года в огромной международной компании, и мне работа казалась нудной и рутинной. Было довольно просто отлынивать и никто этого не замечал. Потом я перешел в маленькую компанию, чтобы работать в команде из пятерых разработчиков софта. С самого начала это было вызовом. Но насколько же это было увлекательней!
Сейчас я опять работаю в крупной международной компании, но занимаюсь разработкой софтверных продуктов в полуавтономной команде, которая функционирует как отдельная студия разработки. И я обожаю свою работу. За последние пару лет я выучил 8 новых языков программирования».
Самир Сиругуру, СTO в Canopy Analytics: «Работа программистом предполагает большую гибкость, чем, скажем, управление магазином или региональные продажи. Все же большинство работ подразумевают личное присутствие время от времени. Также, это — сидячая работа, так что придется приготовиться к долгим часам за столом. Много времени нужно будет потратить на самообучение.
Говоря о профпригодности, у программирования есть два аспекта, которые могут быть камнем преткновения для большинства. Первое —это аналитические или математические навыки. Программирование в основном связано с числовым оперированием данными, и вы будете лучшим программистом, если сможете правильно визуализировать его. Все программисты делают ошибки в своих программах, но аналитически подкованные программисты фиксят их быстрее.
Другой навык, который редко упоминается, — это абстрактные определения. Программирование требует формулировки специфического набора инструкций с помощью не читаемого человеком кода. Подкованный программист должен уметь быстро взглянуть на код и сразу понять, как этот код должен себя вести».
Анонимный комментарий: «Как минимум 95% профессиональных программистов — это дилетанты, едва умеющие собрать рабочий код из сниппетов, которые они находят на Stack Owerflow или подобных ресурсах. Это ощущение разделяет множество по-настоящему хороших программистов, с которыми мне приходилось работать.
Не хотелось бы звучать едко, но когда именно тебе приходится чинить все, что они умудрились наломать из-за собственной глупости, ты неизбежно в общении превращаешься в сволочь».
Карим, Senior Software Engineer в Danske Bank: «Работать программистом сложно и так, скорее всего, будет всегда. Особенно в начале вашей карьеры. Вам придется начинать с нуля. В общем, это очень зависит от ваших амбиций и того, чего вы хотите достичь.
Я видел программистов, которым все давалось просто, потому что они работали в одной и той же компании 10-20 лет и им не было нужды обновлять свои навыки. Но так получается редко. Вам все время нужно будет учиться, чтобы идти в ногу со всеми.
Мне кажется, большинство разработчиков сказали бы, что это — нелегкая работа. Если вам не повезет, вы будете работать в отделе, который не заморачивается балансом работы и личной жизни. А это может привести к болезням из-за стресса. Это — один из страшнейших врагов любого программиста, и, кажется, стресс становится большой проблемой в IT. Так что, если вы — в этой отрасли, вам нужно по-настоящему заботиться о себе».
Стив Джонс, 35+ лет в компьютерном программировании: «Я работаю еще с шестью разработчиками с базой кода примерно в 500 000 строк, около 750 разных скриптов в 10 подсистемах. Скрипты используют разные стили, фреймворки и не менее семи различных языков программирования. Нашим сайтом пользуются миллионы людей, он работает круглосуточно на 12 серверах. Как full-stack-разработчика, меня регулярно просят поработать с разными частями этой системы.
Могу привести сравнение. Представьте, что вы — писатель, и вам нужно обновить десять романов, каждый по 200+ страниц, написанных разными людьми на протяжении 10 лет. Части разных романов написаны на английском, испанском, немецком, итальянском, португальском и даже на клингонском.
Все истории связаны общим миром, но в каждой книге содержатся замысловатые детали о сотнях различных персонажей, которые живут и взаимодействуют в этом мире. Каждый день вам приходится улучшать части этих романов, при этом избегая несоответствий в историях. Ваша грамматика, орфография и пунктуация должны быть безупречными на всех языках.
При этом вам необходимо координироваться с шестью соавторами, которые продолжают писать романы каждый день. И не вызывайте проблем в официальном каноне, ведь миллионы фанатов побегут жаловаться. Удачи!»
Линден Мелвин, синиор-разработчик в Carbon Five: «Программирование — это тяжелая работа. Множество людей в буткемпах заявляют о том, что программировать сумеет каждый. Что, конечно, абсолютная правда: в теории любой человек сможет программировать. Но мне кажется, это утверждения из разряда “каждый сумеет провести операцию на открытом сердце!”. Если есть подходящее образование, терпение, рабочая этика и правильное отношение, а также огромный объем практики, конечно, каждый может стать хирургом и провести такую операцию. То же касается и программирования.
Множество людей считает, что программирование — очень простое занятие, за которое платят гору денег. И хотя эти вакансии часто высокооплачиваемые, чтобы стать хорошим программистом, нужно потратить годы и обучиться всем тем разным инструментам, которыми мы пользуемся каждый день. Плюс, программистам нужно оставаться всегда в курсе по поводу новых технологий, которые появляются буквально каждый день.
Если вы решили стать программистом, это не означает, что вам нужно узнать, как сложить два числа в JavaScript. Это означает, что вы готовы изучить все о том, как заставить компьютер решать сложные проблемы, огромное число инструментов, которые в этом помогут, сервисов для совместной работы программистов, бесчисленные модели подходов к решениям проблем, как минимум два языка программирования и т.д.».