Не хотят работать программистами

Содержание
  1. Почему так трудно стать программистом?
  2. Почему вам не стоит становиться программистом — эксперты рассказывают о недостатках профессии
  3. Почему вам не стоит становиться программистом — эксперты рассказывают о недостатках профессии
  4. руководитель разработки онлайн и бизнес приложений в Domino’s Pizza
  5. Высокий порог входа и сложность самой профессии
  6. Стоимость ошибки
  7. Отсутствие обратной связи, либо чрезмерно активная обратная связь
  8. Реалии бизнеса/рынка
  9. Специализация
  10. Скорость развития отрасли
  11. архитектор, frontend-разработчик «Инфосистемы Джет»
  12. Senior .NET Developer в «Циан»
  13. Постоянная работа за компьютером
  14. Устаревание знаний
  15. Необходим английский
  16. Много рутины
  17. Нарастающая конкуренция
  18. руководитель направления по разработке на Java в компании MediaSoft
  19. руководитель группы разработки проектов Тверского технологического центра Accenture

Почему так трудно стать программистом?

Вот уже около полугода, в качестве добровольного «лаборанта» участвую в работе клуба начинающих программистов. Хочу поделиться своими итогами этих наблюдений и собственными мыслями насчет того, почему далеко не все желающие способны освоить эту профессию. Как-то читал о том, что заниматься IT-технологиями в состоянии не более 9% людей в любом обществе. Когда создавался наш клуб, у меня появилась реальная возможность опровергнуть или подтвердить этот тезис и понять, почему же «айтишников» так мало.

Среда для исследования

Наш клуб могут посещать все желающие. Основная масса узнает о нем из рекламы курсов для начинающих пользователей ПК. Многие приходят именно оттуда. Это очень разные люди и все они, конечно, слышали о высоких зарплатах в IT-отрасли и полны энтузиазма освоить столь выгодную в финансовом плане профессию. Но действительность быстро охлаждает пыл большинства из них.

Изучить программирование непросто

Программирование включает набор сложнейших дисциплин, для освоения которых необходим обширный объем специфических знаний. Для «айтишника» в этом нет ничего нового но для неофитов это удивительно и неприятно.
Оказывается, что несмотря на энтузиазм и огромное желание зарабатывать в будущем хорошие деньги, для того, чтобы присвоить одну переменную другой, освоить пару операторов и выполнить с ними какие-то действия, многим требуется вовсе не пара часов, а несколько месяцев. Причем, они уходят только на понимание этих самых, на первый взгляд, довольно примитивных действий.
Почему это происходит? Думаю потому, что людям не имевшим прежде дела с логикой, математикой и программированием совсем непросто перестроить собственное мышление. Обычно ведь человек получает опыт, изучая окружающую его внешнюю среду и отталкиваясь от уже имеющихся знаний. Но в этом опыте нет места условиям, циклам, двоичному счислению и многому другому, что требуется для программирования. В быту и обычной жизни всё это никак не используется. Именно поэтому часть «начинающих программистов», сталкиваясь с совершенно непонятными вещами, бросают учёбу уже в первые дни или даже часы.

Необходимо научиться пользоваться инструментами ЯП, вспомнить все свои скудные знания по математике (а многие её, в принципе, не используют, разве что, только для подсчета купюр), расширить их до необходимого уровня. Да и это только на «старте». Дальше придется осваивать технологии, построенные на основе избранного языка программирования. Я уже молчу о том, что нужен ещё и английский язык, хотя бы на техническом уровне. Именно поэтому шансы у соискателя, не имеющего особых способностей, не увлекавшегося в школе информатикой и не сталкивавшегося в вузе с программированием, совсем невелики.

Конечно, есть талантливые люди, которым новые знания даются довольно быстро. Но, как показали мои наблюдения, это — редчайший случай. На моих глазах через клуб прошло множество потенциальных «специалистов». Никто из них до финиша так и не добрался. До подавляющего большинства новоявленных студентов, после месяца-двух интенсивной учебы доходило, что программирование — совершенно не их предмет. А наиболее способные поняли это гораздо быстрее.
Из примерно двух сотен людей прошедших через клуб, до сих пор переквалифицироватьcя в программисты удалось лишь двум талантливым и упорным технарям, которых прижала жизнь. Это всего 1 процент, а не 9, как гласило прочитанное когда-то мной исследование.

Так что же клуб?

Клуб продолжает работать, он оказался великолепным местом для знакомства и общения с людьми, которые хотели бы узнать что-то новое без слишком уж большого напряжения. Приходил, например, немолодой ученый, уже на пенсии, решивший взяться за освоение языков программирования. Были мамы с детьми, супружеские пары — молодые и не очень, лаборанты и преподаватели вузов, действующие офицеры спецслужб, инженеры заводов и даже спортсмены. Кого только не было! Но большинству, повторюсь, программирование давалось трудно или не давалось, вообще. Впрочем, никто и не утруждал себя чрезмерно. Домашнее задание, например, игнорировалось в принципе. Через некоторое время большинство людей занятия бросали.

Почему так получается?

Всё достаточно просто. Многим кажется, что им удастся освоить новую профессию мимоходом, позанимавшись месяц или два в легком комфортном режиме. Работать и учиться всерьез, тратить на это месяцы или даже годы своей жизни на освоение нового дела не может или не хочет почти никто. Вот такая вот получается картинка.

Источник

Почему вам не стоит становиться программистом — эксперты рассказывают о недостатках профессии

Почему вам не стоит становиться программистом — эксперты рассказывают о недостатках профессии

У каждой профессии есть свои недостатки, и профессия программиста не исключение. Спросили у экспертов, к каким недостаткам профессии стоит быть готовым и что с ними делать.

Читайте также:  Как настроить ттк роутер самостоятельно вай фай

руководитель разработки онлайн и бизнес приложений в Domino’s Pizza

У каждой профессии есть свои недостатки, но зачастую об этом узнают лишь спустя какое-то время. Давайте посмотрим, к каким недостаткам профессии программиста стоит быть готовым новичку.

Высокий порог входа и сложность самой профессии

На первый взгляд, кажется, что все просто — научись языку программирования и будешь грести деньги лопатой, по крайней мере так часто думают начинающие разработчики. Однако по мере погружения оказывается, что всё совсем не так. Чем сложнее и запутаннее код, тем непредсказуемее он себя ведёт, компиляторы выдают ошибки, на ровном месте вылетают исключения, нужно держать в голове огромное количество мелких деталей, чтобы ничего не упустить. В какой-то момент начинает казаться, что компилятор/интерпретатор живут каким-то своим разумом и отчаянно сопротивляются. А с точки зрения теории информации не существует хоть сколько-нибудь сложных программ совсем без ошибок. С этим сложно смириться.

С другой стороны, ни с чем не сравнимо чувство удовлетворения, когда проблема всё же побеждена и код начинает отрабатывать так, как и было задумано. Оказывается, компилятор/интерпретатор всё же просто выполняли данные программистом инструкции, сухо и бездумно.

Чтобы облегчить вход в профессию, нужно много читать о лучших практиках, желательно на английском языке, стараться работать в команде с профессионалами и постоянно учиться, учиться и учиться — и в теории, и на практике.

Стоимость ошибки

Мало кто осознаёт, что стоимость ошибки разработчика может исчисляться огромными суммами. Представьте себе потери интернет-магазина, в котором нельзя ничего заказать, или какой убыток принесёт вышедшее из строя программное обеспечение фондовой биржи.

Чувство ответственности давит на разработчиков, хотя они и не несут, как правило, прямого риска наказания. Здесь можно порекомендовать использовать лучшие практики CI/CD (continuous integration / continuous deployment) с автоматизированным тестированием, практики парного программирования и проверки кода (code review), которые позволят минимизировать такие риски и обрести со временем чувство уверенности и покоя.

Отсутствие обратной связи, либо чрезмерно активная обратная связь

Так получается, что в профессию программиста обычно идут ярко выраженные интроверты — люди с максимальным уровнем самопогружения и высокими способностями к анализу. И поначалу жизнь в этом смысле кажется прекрасной — взаимодействовать приходится только с тимлидом или, в крайнем случае, менеджером, а остальных программист не видит и не слышит. Но далее начинают проявляться недостатки этой ситуации. Задачи приходят странными, их приходится переделывать по несколько раз, и программист начинает мечтать получать более детализированные задачи, слышать прямую обратную связь от клиентов и пользователей. Но в жизни всё не так просто.

По мере роста в тимлида или менеджера, на плечи программиста начинают сваливаться излишне активные коммуникации и бывший разработчик постепенно начинает понимать причины той сумбурности, от которой страдал раньше, только теперь мечтает, чтобы его оставили в покое.

Эти недостатки можно только понять и принять, сделать свой выбор, на каком уровне работать с заказчиками/клиентами и работать в таких компаниях, где для разработчиков поддерживается именно такой уровень.

Реалии бизнеса/рынка

Здесь есть две проблемы.

Каждый код рано или поздно требует рефакторинга — переписывания таким образом, чтобы код был красивым и стройным, ошибок было минимум и поддерживать такой код было бы максимально легко. Но есть проблема — чем больше кода, тем дольше времени занимает рефакторинг вплоть до того, что сильно запущенный код быстрее и дешевле полностью переписать, чем пытаться оптимизировать.

И тут всё это вступает в противоречение с реалиями бизнеса, для которого рефакторинг — это просто дополнительные затраты, которые не приносят ничего ценного. Бизнес всячески оттягивает или прямым образом запрещает это делать, одновременно не соглашаясь на то, что ошибки будут возникать чаще и их последствия будут серьёзнее.

Это требует хорошей командной работы, в которой разработчики честно подсвечивают только по-настоящему необходимые оптимизации кода, а менеджер тем или иным образом продаёт их бизнесу.

Вторая проблема заключается в том, что рынок зачастую не терпит отстающих. И это выливается в постоянную гонку, в которую невольно втягивают разработчиков. Кажется правильной практикой не делать выкладок кода в пятницу вечером, но что делать, если саму задачу поставили в четверг, а в выходные всё должно уже работать? При этом задача пришла описанной лишь поверхностно, потому что бизнес тоже в постоянной гонке и не всегда есть время и/или специалисты в штате, чтобы детально продумать все экраны и их взаимодействие.

Решить эту проблему можно только выбирая работу в такой отрасли, где бизнес меняется не слишком динамично и есть возможность делать всё неспешно и по-правильному.

Специализация

Рано или поздно многие разработчики начинают сталкиваться с выбором: быть узкоспециализированным в конкретной технологии или знать много разных технологий, но более поверхностно.

Читайте также:  Amazfit gtr 2 микрофон не работает

Разные люди делают разный выбор: кто-то пытается охватить максимум всего, постепенно становясь «фулстек» разработчиком, кто-то с самого начала отказывается от изучения дополнительных технологий и растёт только в своём стеке. И у того, и у другого подхода есть свои плюсы и минусы.

«Люди-оркестры» могут помочь коллегам со многими задачами, что подсвечивает их в глазах руководителей, им, теоретически, проще найти работу, продавая только те навыки, которые нужно работодателю, они легче и быстрее вырастают в менеджеров. С другой стороны им тяжелее делать по-настоящему качественный код в отдельном стеке и сложнее говорить на одном языке с профессиональными разработчиками по мере роста в менеджеры.

Узкоспециализированные специалисты лучше и профессиональнее выполняют свои непосредственные обязанности, могут устроиться в крутые компании и больше зарабатывать в своём стеке, так как профессионалы высоко ценятся. С другой стороны, гораздо выше риск оказаться на обочине, если технология устареет, что приводит нас к следующему недостатку профессии.

Скорость развития отрасли

Это, на мой взгляд, ключевой недостаток, который люди начинают по-настоящему осознавать и принимать лишь с возрастом, хотя поначалу гонка возбуждает и захватывает дух — постоянно гремят новые интересные технологии, они расширяются и улучшаются, одновременно упрощаются и усложняются.

Поначалу угнаться не так сложно: можно читать многочисленные статьи, выбирать работодателей, которые либо используют передовые технологии, либо не ограничивают их выбор, самому писать статьи и участвовать в продвинутых комьюнити разработках.

С годами же всё больше хочется пользоваться накопленными обширными знаниями, а не продолжать учиться без остановки, но это практически невозможно себе позволить. Рано или поздно любой разработчик встаёт перед выбором: либо расти горизонтально, «закостенеть» в каком-то конкретном наборе технологий и нести риск их постепенного устаревания и исчезновения, либо расти вертикально — в какой-то степени переучиваться и уходить в менеджмент, где навыки гораздо медленнее устаревают с годами, а некоторые не устаревают вообще, такие как управление людьми, переговоры и многие другие.

архитектор, frontend-разработчик «Инфосистемы Джет»

Мне нравится быть программистом, в нашей профессии сплошные преимущества. Недостатки тоже имеются, но незначительные. Самый существенный — сидячий образ жизни, который может привести к проблемам с осанкой. Но это не неизбежно — занимайтесь спортом и делайте перерывы в работе, чтобы пройтись. Это полезно и для зрения — надо отвлекаться от монитора, делать гимнастику для глаз: фокусировать зрение на предметах, расположенных от вас на разном расстоянии.

Есть ещё кое-что: часто знакомые думает, что если ты программист, ты можешь починить всё, что угодно, например чайник. Но это весёлые мелочи. 😉

Senior .NET Developer в «Циан»

Постоянная работа за компьютером

Поначалу это очень нравится. Учишься, отдыхаешь, общаешься — всё за компьютером и в одном месте. Но потом спустя несколько лет глаза начинают уставать, ноги — затекать, спина — болеть. А если работаешь удалённо, так вообще язык начинаешь забывать, т. к. живого общения очень мало.

Совет: делайте перерывы в работе. Сходите за чаем, пройдитесь до соседнего отдела с каким-нибудь вопросом, сходите в более дальнее кафе во время обеда.

Устаревание знаний

Тут надо принять тот факт, что технологии, язык, фреймворк могут устареть через пару лет. Потратив несколько лет на глубокое изучение, через некоторое время вы можете обнаружить, что все эти знания обесценились. Хорошим примером может быть Flash, который ранее был популярен, но потом пришёл HTML5, и платформа Flash ушла с рынка.

Совет: следите за трендами развития технологий. Хотя бы раз в год ходите на профильные конференции, митапы или смотрите их в записи.

Необходим английский

Вообще английский на рабочем уровне необходим во многих профессиях, но в программировании этот вопрос стоит наиболее остро. Английский необходим начиная с чтения документации и заканчивая общением с заказчиком и коллегами.

Совет: учите английский. Банально поставьте английский язык на телефоне и компьютере языком интерфейса по умолчанию.

Много рутины

На первый взгляд программирование может показаться тем, что воплощает мечты, ведь можно сделать свою игру или написать бота, который будет её проходить. Проблема — в том, что большую часть времени придётся отводить под рутину: чтение чужого кода, обновление версий библиотек, написание тестов, поиск причин появления багов и т. п. Всё это занимает львиную долю времени.

Совет: старайтесь автоматизировать рутинные задачи. Поверьте: потраченные сейчас 2 часа окупятся впоследствии.

Нарастающая конкуренция

Сейчас кадровый голод в IT индустрии ещё сохраняется, т. е. компаниям необходимо больше специалистов, чем сейчас есть на рынке, но что будет дальше — сложно сказать, т. к. каждый год на рынок выходит большое количество новых специалистов, при этом предыдущие специалисты ещё не ушли на пенсию, т. к. индустрия достаточно молодая.

Совет: изучайте и используйте разные технологии на старте своей карьеры, т. к. специалист с широким охватом знаний и навыков, умеющий подобрать нужный инструмент к текущей задаче, хорошо ценится.

Читайте также:  Духовка simfer как настроить время

руководитель направления по разработке на Java в компании MediaSoft

«Профессия программиста идеальна, и все её мелкие недостатки незначительны», — думал я, когда старшеклассником шёл на занятие кружка по основам программирования. Рассуждения о её недостатках казались мне надуманными и даже смешными, но, как поёт группа Браво, — «всё теперь не то, и над чем смеялся он — привычная жизнь его». Сейчас я уже приличное время в этой профессии и могу рассуждать о её минусах с позиции жизненного опыта. И, знаете, я всё равно её люблю!

На самом деле, большинство недостатков профессии программиста есть и у других профессий. И водители маршруток могут догонять свои квартальные планы по выходным, и бухгалтеры могут целый день сидеть в неудобном кресле перед монитором, и у поваров бывает дикая загруженность задачами, и у креативных ребят из event-агентств бывают неадекватные заказчики, и пилоты… Хотя нет, пилотов от этих всех недостатков старательно оберегают, и слава Богу! Профессия программиста отличается от всех остальных профессий тем, что она — исключительно интеллектуальная, здесь нужно именно думать, и основную ценность здесь имеют взвешенные и продуманные решения, тщательный анализ и умение абстрактно мыслить. Поэтому главный недостаток, который может быть у такого рода деятельности, это то, что твой труд оказывает влияние на твоё эмоциональное состояние и наоборот. Появились дикие переработки — и ты выгораешь, нет продвижения и амбициозных задач — ты теряешь мотивацию, дёргает заказчик — ты злишься. Во всех этих случаях ты эмоционально нестабилен, а думать и принимать решения в таком состоянии — это всё равно, что водить машину в состоянии опьянения: твои базовые навыки вроде бы работают, но из-за отсутствия концентрации ты обязательно наломаешь дров. Я не знаю другой профессии, где эмоциональное равновесие имеет большее значение. Невозможно как на конвейере штамповать код в любом состоянии (читаемый, корректно работающий, поддерживаемый код!) — программист, в первую очередь, должен решать проблемы, и в каждом конкретном случае ему необходимо принимать грамотные взвешенные решения.

Поэтому одно из главных условий успешной работы в нашей профессии — это поддержание внутреннего эмоционального равновесия. Это довольно сложно и очень индивидуально, но совершенно точно нужно высыпаться, стараться соблюдать режим труда и отдыха, переключаться с умственной деятельности на физическую, заниматься спортом и вообще переключаться на что-то, не связанное с разработкой — потом вы будете возвращаться к своей работе со свежим взглядом. Нужно обязательно подпитываться положительными эмоциями. Важный аспект — это самодисциплина. Профессия у нас, конечно, творческая, но при этом и требующая строгого выполнения всех обязательств. Поэтому очень желательно соблюдать режим дня, грамотно организовывать свой рабочий процесс и вообще быть к себе достаточно требовательным. Как говорил один из основоположников советской военной авиации Яков Алкснис: «От нечищенных ботинок до катастрофы — один шаг». Сюда же, кстати, можно отнести и грамотную организацию своего рабочего места: ничего не должно мешать вам думать, всё должно работать на то, чтобы этот процесс проходил продуктивно и результативно.

руководитель группы разработки проектов Тверского технологического центра Accenture

В работе программиста сложно найти недостатки, которых бы не было в других профессиях. Или которые не нивелировались бы очевидными достоинствами.

Один из минусов заключается в том, что карьера разработчика серьёзного уровня — это образ жизни. При определённой нагрузке могут возникнуть сложности со здоровьем, связанные с малоподвижностью, нагрузкой на зрение и опорно-двигательный аппарат, перманентным стрессом, сбитым режимом дня.

Овертаймы, дедлайны, общая интенсивность работы, нахождение в постоянном режиме обучения могут нарушить work-life баланс и привести к трудностям во взаимоотношениях, бытовых вопросах и в целом негативно сказаться на личностном развитии.

Чтобы этого избежать, нужно с самого начала карьеры завести полезные привычки, найти себе «опору», не связанную с программированием, например проводить больше времени с близкими.

При этом нужно не препятствовать тому, что программирование превращается в life style, ведь именно такой подход задаёт правильную атмосферу для работы.

Хорошего разработчика в равной степени определяют два качества: страсть и терпение. Страсть позволяет быть конкурентноспособным, находить мотивацию для постоянного обучения и развития. Терпение нужно для понимания предметной области, оно позволяет разобраться в деталях и научиться действительно качественно писать код, смотреть на ситуацию объективно.

Страсть и терпение — противоположные по своей сути вещи. Вот почему программирование иногда может быть по-настоящему стрессовым и хардкорным занятием. Тот, кто найдёт правильный баланс для себя, достигнет отличных результатов. Поэтому чтобы снизить уровень стресса и нивелировать минусы, важно понять эту особенность и постоянно планировать, анализировать, пытаться понять свои ощущения, получать обратную связь.

Не так много профессий, в которых одновременно есть и гибкий график, и хороший уровень зарплат, и классный нетворкинг. Когда ты приходишь в комфортный офис, наливаешь кофе, включаешь любимую музыку в наушники и погружаешься в работу, которую любишь. Это то, о чём нужно вспоминать в самые тяжелые моменты на протяжении карьеры.

Источник

Оцените статью