Везде есть свои мифы. О программистах тоже можно услышать очень много стереотипных представлений, которые на самом деле далеки от реальности. И главное, что эти предрассудки вовсе не безобидны!
Даже внутри самой ИТ-индустрии часто встречаются заблуждения. Например, есть инженеры, которые считают, что “Scala продуктивнее Java”. Хотя в действительности все зависит от того, какую проблему нужно решить, и с какой стороны посмотреть.
Давайте же обсудим 6 самых распространенных мифов, которые связаны с разработкой ПО.
1. Программист – профессия не творческая.
Это утверждение мне не нравится больше всего. Многие ошибочно считают, что написание кода – это просто перевод решения задачи на понятный машине язык. Но все не так просто!
Да, программирование требует логического мышления и знания многих технологий. Тем не менее, это еще и разновидность искусства. Не каждый способен создать элегантный код и заметить его красоту.
Когда речь идет о сложных конструкциях, разработчику приходится подходить к структурированию данных творчески. Для эффективного объединения разных технологий в единое целое нужна изобретательность и, зачастую, инновационный подход.
Творческий аспект программирования проявляется и в оптимизации. Начинающие айтишники стремятся просто создать рабочий код, который бы выполнял поставленную задачу. Но со временем, когда накапливается определенный объем опыта, разработчик начинает использовать разнообразные хитрости и уловки, позволяющие ускорять программу и экономить ресурсы.
Например, здесь числа Фибоначчи реализованы очень наивно и просто:
А вот уже настоящее произведение искусства:
2. У программистов отсутствуют «гибкие навыки».
Как большинство людей представляет типичного разработчика? Одиночка, проводящий целые сутки у компьютера и пишущий код, ни на минуту не отрываясь от экрана. Но в реальности программисту приходится взаимодействовать с массой самых разных специалистов: начиная менеджерами и заканчивая дизайнерами. Плюс общение с заказчиками и пользователями. Все это требует хороших навыков коммуникации и эмпатии.
А сейчас, когда появилось столько социальных сетей, блогов и онлайн-журналов, айтишники все чаще пишут статьи, записывают видео, создают подкасты и публикуют в Сети много другого интересного и полезного контента. Так что пора сломать этот стереотип!
3. Каждый программист хочет стать менеджером!
Даже если вы хороший программист, это не значит, что у вас получится стать хорошим менеджером. Разработка ПО и управление – разные сферы деятельности, и каждая из них требует своих навыков. Это как в спорте: далеко не каждый спортсмен способен обучать своему ремеслу других людей.
Конечно, в каждой компании свои правила. И сейчас все меняется с огромной скоростью. Так что варианты развития карьеры программиста и менеджера могут быть самыми разными. Но чаще всего разработчики уходят в техруководители, главные инженеры и пр. А менеджеры становятся инженерными или возглавляют отделы.
4. Чем больше команда, тем быстрее разработка.
Не зря принято считать, что лучше всего удается работать командам из 4-8 специалистов: пару программистов, менеджеров и, как вариант, дизайнер. Большинство компаний используют именно такой принцип, а это значит, что он доказал свою эффективность на практике.
Только в механическом процессе возможно ускорение процесса за счет повышения количества сотрудников. Как, например, в случае с вводом данных. Но разработка ПО – более сложный и индивидуальный процесс, в котором главное – это не число участников, а их качество.
5. Релиз состоялся, значит, работа окончена.
Каждая программа – это живой организм, который растет, развивается и непременно изменяется с течением времени. Подвержена переменам и окружающая действительность: новые тенденции на рынке, в сфере технологий и т.д. Пользователям тоже могут потребоваться новые функции и возможности.
Т.е. разработка – это непрерывная борьба, проходящая в условиях жесткой конкуренции. Обратите вниманеи на Apple: компания существует уже больше 45 лет. А все благодаря тому, что старательно сохраняет и подогревает интерес пользователей, успешно адаптируясь к неизбежным изменениям.
Релиз продукта – это не финишная черта, а начало нового интересного путешествия. Ведь программа нуждается в дальнейшей поддержке, да и возникающие в процессе эксплуатации ошибки тоже нужно устранять. Новые нужды возникают с завидной регулярностью, без оптимизации код становится ни на что не годным, безопасность необходимо постоянно обновлять… Как вы уже поняли, на релизе работа ни в коем случае не может считаться оконченной.
6. Машинное обучение – это то же самое, что искусственный интеллект.
Понятие искусственный интеллект намного шире, ведь машинное обучение – это всего лишь одно из его подмножеств. Первое охватывает и другие сферы, в том числе обработку естественной речи и компьютерное зрение. А машинное обучение касается только областей с крупными массивами данных. Однако цель и там, и там одна – создать интеллект, который превзошел бы по своим возможностям человеческий.
Итог
Если бы все мифы, о которых мы упомянули выше, были правдой, программное обеспечение, как и информационные технологии в целом, не было бы таким развитым и совершенным, как сейчас. Надеюсь, что мои пояснения убедили вас в ошибочности этих популярных предрассудков. Спасибо за внимание!