Это один из распространённых вопросов о судьбе программирования: мне не раз приходилось его слышать от журналистов, блогеров и родителей, чьи дети выбирают будущий вуз. Для меня этот вопрос звучит довольно удивительно: во-первых, 10 лет для программирования это не такой уж большой период, чтобы выпасть из обоймы, во-вторых, я пока не вижу никаких прорывных движений в этом направлении, в-третьих, мне не кажется что за 10 лет полностью исчезнут компьютеры или люди — а это два единственных условия для уничтожения программирования на планете. Между тем вопрос есть, он в топах поисковых запросов по теме, а значит, это жжжж неспроста. Давайте разбираться.
Disclaimer
Мы открываем в блоге RUVDS на Хабре новую рубрику — вопросы с поиска. Принцип прост: выбираем самые интересные и популярные поисковые запросы о программировании, технологиях, программистах и карьере в ИТ и отвечаем на них с помощью наших постоянных экспертов. Будет интересно.
Если обратиться к российским и зарубежным источникам, форумам, социальным сетям, этот вопрос можно встретить. И действительно, даже у самих программистов есть опасения, пригодятся ли они через 10 лет или пора переучиваться на другую специальность и искать новые места для наработки практики. Разномастные эксперты, футурологи и аналитики предсказывают разные формы кончины программирования: от возврата в экологичный мир без технологий до глобальной победы искусственного интеллекта, который будет воспроизводить сам себя и писать программы по устному указанию любого пользователя. Как всегда, обе крайности напрочь несостоятельны, но среди вероятных причин отмирания профессии программиста есть несколько замысловатых и небезынтересных концепций.
Есть версия, что программирование будет более абстрактным, оно станет заметно отличаться от того, с чем мы имеем дело сегодня. Многие аналитики и визионеры полагают, что serverless-технологии и контейнеризация ощутимо изменят облик программирования, а разработчики откажутся от низкоуровневого программирования. Они будут пользоваться «кубиками» разделов программы и собирать некие «модульные» решения, как в конструкторе или, если ближе к миру ИТ, в готовых шаблонах проектирования сайтов (типа Tilda или WordPress).
Сразу скажу: эти рассуждения довольно далеки от глубинных сущностей программирования. Ни одно подобное решение не сможет существовать без поддержки разработчиков и опять же минимальная кастомизация такой модульной программы «на всём готовеньком» требует знаний программирования, понимания работы алгоритмов и даже владения необходимым языком программирования и специфическими инструментами. Думаю, это не нужно объяснять никому из тех, кто работал с готовыми шаблонами сайтов и конструкторами — если нужна чуть более серьёзная функция, сразу к вашим услугам раздел для создания и редактирования кастомного кода. Сделай сам, если хочешь круто. С абстракциями в будущем программирования та же история: каждое чуть более глубокое требование будет нуждаться в реализации силами программиста.
Каждый пользователь сможет справиться с кодом самостоятельно, — самоуверенно заявляют эксперты, которые верят в low-code платформы. Это уже даже не лукавство, а огромная ложь, сформулированная устами кабинетных маркетологов. Те из вас, кто внедрял ПО для бизнеса, обучал пользователей или хотя бы смотрел, как бухгалтер отчаянно ломает 1С, знает, что low-code это обычная рекламная замануха и никак уж не убийца классического программирования. Чтобы задеплоить на платформе low-code самый обычный рабочий процесс и связать его с 2-3 сущностями из оперативной работы компании, нужно уже что-то знать про реляционные базы данных, ключи, алгоритмы, оптимизацию. Иначе получится школьная контрольная по Access — что-то вроде соединил и красиво, а таблицы и окна не работают.
Помните главный посыл «Электроника»? Робот, стань человеком. Евгений Велтистов знал, о чём он пишет: преодоление порога между искусственным и естественным интеллектом — обычная научная фантастика и научить робота понимать человеческие требования затруднительно. Однако сторонники теории исчезновения профессии программиста полагают, что искусственный интеллект станет самым продвинутым разработчиком, а главным инструментом оставшихся программистов станут обученные модели и нейросети, которые выдадут нужный код по паре ключевиков. Останется сделать копипаст (правда, ничего нового? ;-)), скомпилировать, немного изменить дизайн и вуаля, программа готова. Однако это слишком оптимистичный прогноз: искусственный интеллект может быстро искать по массивам кода и выбирать нужный, но он никогда не сможет учесть все требования пользователей и запрограммировать всё именно так, как того требует заказчик. Тут у людей-то через раз получается… И потом, а кто будет разрабатывать искусственный интеллект и нейросети?
А вот этот прогноз кажется разумным и логичным: есть предпосылки того, что появится какой-то один суперуниверсальный язык программирования, максимально близкий к нативному английскому, который избавит мир от сложностей совместимости, стандартов, миграций, интеграции и т.д. Кто-то видит такой язык наследником Python, кто-то предполагает, что появится язык блоков и готовых функций, из которых можно будет собрать программу. Эксперты считают, что этот новый язык станет доступным для спикеров с любым родным языком, а также легко портируется в сенсорные формы для незрячих программистов.
Однако пока это выглядит тоже научной фантастикой: миру программистов многие годы предстоит поддерживать старые проекты и огромный пласт легаси-кода на всех тех языках, которые мы привыкли использовать в работе. К тому же, универсальный язык может в своём развитии пройти путь в десятки лет, пока станет доступным и приемлемым как для простого учебного проекта, так и для сложной системы безопасности или инжинирингового продукта. Так что пока — только призрачная иллюзия конца вавилонского столпотворения в разработке.
Кстати, есть и обратный прогноз — так, портал TechRepublic уверен, что языками программирования будущего являются Go, Kotlin, Python, TypeScript, R, Scala, Swift, Rust, Ruby и Haskell. Однозначно интересный и почти на 100% справедливый список (за исключением дискуссий в рамках вкусовщины), но, очевидно, что не хватает как минимум С/С++, которые играют огромную роль в машинном обучении, алгоритмах, нейросетях и т.д. Опять же, несмотря на присутствие в перечне будущего «детей Java», самой Java также не хватает — а она гарантированно будет продолжать играть огромную роль спустя 10 лет. И, если честно, при всей привлекательности концепции, я тоже не верю в новый универсальный язык, а вот в более простые и изящные высокоуровневые языки в будущем верю. Но, кто знает теорию и практику возникновения новых крутых языков программирования, тот сразу скажет, что с появлением новых публичных и популярных языков количество программистов будет только расти.
Как видите, большинство прогнозов с позиций айтишника выглядят несостоятельно, хотя некоторые моменты хотелось бы реализовать в нашей повседневной работе.
Начнём с того, что не через 10 лет, а за эти 10 лет. Эволюция идёт непрерывно и изменения нарастают с каждым днём. Поэтому человеку, погружённому в мир современного ИТ, никакого труда не составит наметить реалистичный прогноз.
Сложно точно предсказать, что именно будет востребовано в течение 10 лет и через 10 лет (вспомните 2020, который породил новые требования и тренды совершенно внезапно, на фоне форс-мажора). Я выделю пять интересных технологий, которые могут дать значительное конкурентное преимущество профессионалу.
Мы углубились в свои прогнозы, но ответ на вопрос выглядит гораздо проще. Все сферы нашей жизни завязаны на программировании и, если мы предположим, что через 10 лет все программисты исчезли, значит, произошёл один из сценариев. Вариант первый: компьютеры научились создавать ПО в строгом соответствии с требованиями пользователя. Но ведь кто-то объясняет компьютеру задачу на понятном ему языке, а это и есть формат программирования — далеко не каждый с этим справится. Вариант второй: компьютеры реально научились писать ПО сами, с любым техническим заданием, всё вокруг автоматизировано. Тогда остаётся вопрос: а что будет с людьми, если все задачи выполняют машины? Это только в песенке вкалывают роботы, счастлив человек, а наяву — безработица, социальная напряжённость, конфликты внутри стран и городов. Так себе будущее, правда?
Но есть и более простой ответ на поставленный вопрос, раскрывающий причины его появления)
Ржу не могу. Да-да, всё так. Многие говорят, что программистов заменит ИИ. Позвольте мне вам прояснить кое-что.
Программисты станут последними, кого заменит ИИ. Не думаете ли вы, что другие рабочие места будут заменены ИИ гораздо раньше программистов?
Менеджеры, хех. Руководители, хех. Правительство, хех. Любая другая работа белых воротничков, хех.
Я бы сказал, что если этот чёртов день настанет, облажаемся мы все, и это будут лучшие годы для человечества.
Так почему же люди говорят только о замене программистов? Просто эти люди глупы, им не терпится увидеть, как более умные люди потеряют работу.
В общем, друзья, опасения напрасны. Работы у программистов через 10 лет будет много, но работа будет другой. Смело идите в программирование, развивайтесь в программировании — эволюция технологий окажется в ваших руках.
P.S. Для тех, кто ищет альтернативные точки зрения, есть довольно спорное интервью.
Disclaimer
Мы открываем в блоге RUVDS на Хабре новую рубрику — вопросы с поиска. Принцип прост: выбираем самые интересные и популярные поисковые запросы о программировании, технологиях, программистах и карьере в ИТ и отвечаем на них с помощью наших постоянных экспертов. Будет интересно.
Итак, а откуда родом вопрос?
Если обратиться к российским и зарубежным источникам, форумам, социальным сетям, этот вопрос можно встретить. И действительно, даже у самих программистов есть опасения, пригодятся ли они через 10 лет или пора переучиваться на другую специальность и искать новые места для наработки практики. Разномастные эксперты, футурологи и аналитики предсказывают разные формы кончины программирования: от возврата в экологичный мир без технологий до глобальной победы искусственного интеллекта, который будет воспроизводить сам себя и писать программы по устному указанию любого пользователя. Как всегда, обе крайности напрочь несостоятельны, но среди вероятных причин отмирания профессии программиста есть несколько замысловатых и небезынтересных концепций.
▍ Абстракция и контейнеры
Есть версия, что программирование будет более абстрактным, оно станет заметно отличаться от того, с чем мы имеем дело сегодня. Многие аналитики и визионеры полагают, что serverless-технологии и контейнеризация ощутимо изменят облик программирования, а разработчики откажутся от низкоуровневого программирования. Они будут пользоваться «кубиками» разделов программы и собирать некие «модульные» решения, как в конструкторе или, если ближе к миру ИТ, в готовых шаблонах проектирования сайтов (типа Tilda или WordPress).
Сразу скажу: эти рассуждения довольно далеки от глубинных сущностей программирования. Ни одно подобное решение не сможет существовать без поддержки разработчиков и опять же минимальная кастомизация такой модульной программы «на всём готовеньком» требует знаний программирования, понимания работы алгоритмов и даже владения необходимым языком программирования и специфическими инструментами. Думаю, это не нужно объяснять никому из тех, кто работал с готовыми шаблонами сайтов и конструкторами — если нужна чуть более серьёзная функция, сразу к вашим услугам раздел для создания и редактирования кастомного кода. Сделай сам, если хочешь круто. С абстракциями в будущем программирования та же история: каждое чуть более глубокое требование будет нуждаться в реализации силами программиста.
▍ Всех спасёт Low-code
Каждый пользователь сможет справиться с кодом самостоятельно, — самоуверенно заявляют эксперты, которые верят в low-code платформы. Это уже даже не лукавство, а огромная ложь, сформулированная устами кабинетных маркетологов. Те из вас, кто внедрял ПО для бизнеса, обучал пользователей или хотя бы смотрел, как бухгалтер отчаянно ломает 1С, знает, что low-code это обычная рекламная замануха и никак уж не убийца классического программирования. Чтобы задеплоить на платформе low-code самый обычный рабочий процесс и связать его с 2-3 сущностями из оперативной работы компании, нужно уже что-то знать про реляционные базы данных, ключи, алгоритмы, оптимизацию. Иначе получится школьная контрольная по Access — что-то вроде соединил и красиво, а таблицы и окна не работают.
▍ Электроник напишет программу за Сыроежкина
Помните главный посыл «Электроника»? Робот, стань человеком. Евгений Велтистов знал, о чём он пишет: преодоление порога между искусственным и естественным интеллектом — обычная научная фантастика и научить робота понимать человеческие требования затруднительно. Однако сторонники теории исчезновения профессии программиста полагают, что искусственный интеллект станет самым продвинутым разработчиком, а главным инструментом оставшихся программистов станут обученные модели и нейросети, которые выдадут нужный код по паре ключевиков. Останется сделать копипаст (правда, ничего нового? ;-)), скомпилировать, немного изменить дизайн и вуаля, программа готова. Однако это слишком оптимистичный прогноз: искусственный интеллект может быстро искать по массивам кода и выбирать нужный, но он никогда не сможет учесть все требования пользователей и запрограммировать всё именно так, как того требует заказчик. Тут у людей-то через раз получается… И потом, а кто будет разрабатывать искусственный интеллект и нейросети?
▍ Вавилон наоборот
А вот этот прогноз кажется разумным и логичным: есть предпосылки того, что появится какой-то один суперуниверсальный язык программирования, максимально близкий к нативному английскому, который избавит мир от сложностей совместимости, стандартов, миграций, интеграции и т.д. Кто-то видит такой язык наследником Python, кто-то предполагает, что появится язык блоков и готовых функций, из которых можно будет собрать программу. Эксперты считают, что этот новый язык станет доступным для спикеров с любым родным языком, а также легко портируется в сенсорные формы для незрячих программистов.
Однако пока это выглядит тоже научной фантастикой: миру программистов многие годы предстоит поддерживать старые проекты и огромный пласт легаси-кода на всех тех языках, которые мы привыкли использовать в работе. К тому же, универсальный язык может в своём развитии пройти путь в десятки лет, пока станет доступным и приемлемым как для простого учебного проекта, так и для сложной системы безопасности или инжинирингового продукта. Так что пока — только призрачная иллюзия конца вавилонского столпотворения в разработке.
Кстати, есть и обратный прогноз — так, портал TechRepublic уверен, что языками программирования будущего являются Go, Kotlin, Python, TypeScript, R, Scala, Swift, Rust, Ruby и Haskell. Однозначно интересный и почти на 100% справедливый список (за исключением дискуссий в рамках вкусовщины), но, очевидно, что не хватает как минимум С/С++, которые играют огромную роль в машинном обучении, алгоритмах, нейросетях и т.д. Опять же, несмотря на присутствие в перечне будущего «детей Java», самой Java также не хватает — а она гарантированно будет продолжать играть огромную роль спустя 10 лет. И, если честно, при всей привлекательности концепции, я тоже не верю в новый универсальный язык, а вот в более простые и изящные высокоуровневые языки в будущем верю. Но, кто знает теорию и практику возникновения новых крутых языков программирования, тот сразу скажет, что с появлением новых публичных и популярных языков количество программистов будет только расти.
Как видите, большинство прогнозов с позиций айтишника выглядят несостоятельно, хотя некоторые моменты хотелось бы реализовать в нашей повседневной работе.
А что случится с программистами через 10 лет на самом деле?
Начнём с того, что не через 10 лет, а за эти 10 лет. Эволюция идёт непрерывно и изменения нарастают с каждым днём. Поэтому человеку, погружённому в мир современного ИТ, никакого труда не составит наметить реалистичный прогноз.
- Прежде всего спадёт бум программирования и компании начнут диктовать свои условия: слабые программисты, формоклёпы и сайтоделы на шаблонах станут никому не нужны, для них будет гораздо меньше гарантий занятости. И если как раз лет 5-10 назад в программирование можно было попасть с весьма скромными скилами, то сейчас и в дальнейшем будет расти тренд интереса к разработчикам, которые владеют несколькими стеками, способным включаться в DevSecOps и гибкие команды разработки, быть не только кодером, но и архитектором, менеджером, сисадмином. На рынок выходят ребята, которые учились программированию на факультетах высшей школы и они на старте сильнее некоторых фрилансеров и кодеров, которые как сели в 2000-х на одного конька (PHP, например), так и скачут на нём по одним и тем же дорожкам. Это, конечно, деградация. Поэтому через 10 лет программист, почти как врач, будет просто обязан учиться всю свою трудовую жизнь.
- Автоматизация проникнет на каждое рабочее место и с этим ничего не поделаешь. Задача программиста — работать с автоматизированными системами в полноценном партнёрстве, а не перекладывать на машину ответственность за свои косяки и промахи.
- Кроссплатформенная разработка выйдет на новый уровень. Пользователь (частный, корпоративный, учёный) хочет работать сразу на всех устройствах, не теряя данные, авторизацию, результаты работы, силы и время, поэтому кроссплатформенные решения будут всё более популярны. К тому же, в пул устройств ворвутся средства IoT, различные датчики, универсальные электронные помощники и прочие интеллектуальные и не очень системы. Включение в кроссплатформенную разработку не только сделает программиста состоятельным, но и позволит сохранить должность в экстренной ситуации (кто же захочет терять уникального специалиста, который «шарит», как раскатать и улучшить экосистему на всех железяках и облаках пользователей).
- Low-code на какое-то время станет важной частью разработки — даже уже в 2021 году это выглядит как свершившийся факт. Корпорации предлагают бизнес-пользователям low-code решения как средство дичайшей экономии и быстрого построения уникального и оптимизированного строго под конкретный бизнес ПО. Но оставьте эти сказки руководителям и директорам по развитию — многие из нас, читающих эту статью, пробовали методы визуального кодирования, но, как известно, они ограничиваются простыми формами и несложными операциями. Хорошую корпоративную систему hi-level на такой платформе можно построить и поддерживать только с помощью профессиональных программистов. И, поскольку этот тренд проживёт как раз лет 10-12, можно присмотреться к low-code и заработать на этих «потенциальных убийцах» профессии программиста.
- Кибербезопасность была, есть и всегда будет огромной проблемой и той сферой, которая всегда требует профессионалов высочайшего класса. Их вечно не хватает, киберпреступники гораздо лучше подкованы и оставляют шансы только на реактивные действия служб безопасности крупных корпораций и вообще любых компаний. В этом направлении каждого разработчика ждёт много интересного, поэтому стоит постараться, чтобы стать значимым специалистом в этой сфере. Окупится с головой. Пока я не вижу горизонта снижения этого тренда, можно спокойно жить в нём и 10, и 15 лет. (Кстати, ещё одной такой отраслью являются телеком и связь — они технологически сильно меняются, но без них человечество не обойдётся). Более того, кибербезопасность будет и дальше сращиваться с DevOps: она потребует включение тестирования безопасности любых систем на самых ранних этапах разработки, формирование устойчивых практик обеспечения безопасности кода, снижения накладных затрат и дорогих рисков.
- Наука будет требовать всё больше и больше программистов. Роботы, автоматизированные системы, алгоритмы будут продолжать заменять человека на сложных и опасных участках, работать с данными и т.д. Поэтому через 10 лет будут востребованы не просто программисты, а программисты с ещё одним базовым образованием (биологи, врачи, инженеры, лингвисты и т.д.).
▍ Какие технологии будут в тренде?
Сложно точно предсказать, что именно будет востребовано в течение 10 лет и через 10 лет (вспомните 2020, который породил новые требования и тренды совершенно внезапно, на фоне форс-мажора). Я выделю пять интересных технологий, которые могут дать значительное конкурентное преимущество профессионалу.
- Моделирование поведения человека — глубокое понимание человека, паттернов действий, его психологии и даже физиологии позволит создавать уникальные модели тестирования программного обеспечения и инженерных решений. И это должны быть не интуитивные предположения, а научные знания.
- Медицинская кибернетика — супернаправление будущего, которое будет востребовано во всех сферах медицины и жизни общества. Чрезвычайно сложная отрасль, которая потребует сразу двух образований и постоянного развития.
- API — важная часть будущего программистов, которая позволит не плодить зоопарк программного обеспечения, а бесшовно интегрировать различные сервисы в единую рабочую инфраструктуру. Продуманный API станет стандартом и хорошим тоном в разработке.
- Математика будет всё больше входить в программирование: распознавание изображений, нейросети, алгоритмы, безопасность, искусственный интеллект и т.д. Хорошее знание математики значительно повысит ценность программиста и позволит ему выбрать самые высокооплачиваемые вакансии. Так что пришли те времена, когда на вопрос «должен ли программист знать математику?» остался один правильный ответ «да».
- Графический дизайн попал в этот список не просто так. GUI программ, интерфейсы, наглядная инфографика, юзабилити становятся востребованными не только в наших мобильниках, но и в системах всех уровней. Дизайн может определять не только коммерческий успех продукта на рынке, удобство его использования, но и безопасность ПО и целых систем. Одновременно с этим дизайн, разработка и программирование будут всё больше терять границы и формировать в некую новую технологию. Это тренд только-только начал намечаться и у него очевидно большое будущее.
Мы углубились в свои прогнозы, но ответ на вопрос выглядит гораздо проще. Все сферы нашей жизни завязаны на программировании и, если мы предположим, что через 10 лет все программисты исчезли, значит, произошёл один из сценариев. Вариант первый: компьютеры научились создавать ПО в строгом соответствии с требованиями пользователя. Но ведь кто-то объясняет компьютеру задачу на понятном ему языке, а это и есть формат программирования — далеко не каждый с этим справится. Вариант второй: компьютеры реально научились писать ПО сами, с любым техническим заданием, всё вокруг автоматизировано. Тогда остаётся вопрос: а что будет с людьми, если все задачи выполняют машины? Это только в песенке вкалывают роботы, счастлив человек, а наяву — безработица, социальная напряжённость, конфликты внутри стран и городов. Так себе будущее, правда?
Но есть и более простой ответ на поставленный вопрос, раскрывающий причины его появления)
Ржу не могу. Да-да, всё так. Многие говорят, что программистов заменит ИИ. Позвольте мне вам прояснить кое-что.
Программисты станут последними, кого заменит ИИ. Не думаете ли вы, что другие рабочие места будут заменены ИИ гораздо раньше программистов?
Менеджеры, хех. Руководители, хех. Правительство, хех. Любая другая работа белых воротничков, хех.
Я бы сказал, что если этот чёртов день настанет, облажаемся мы все, и это будут лучшие годы для человечества.
Так почему же люди говорят только о замене программистов? Просто эти люди глупы, им не терпится увидеть, как более умные люди потеряют работу.
В общем, друзья, опасения напрасны. Работы у программистов через 10 лет будет много, но работа будет другой. Смело идите в программирование, развивайтесь в программировании — эволюция технологий окажется в ваших руках.
P.S. Для тех, кто ищет альтернативные точки зрения, есть довольно спорное интервью.
Почему программисты через 10 лет будут не нужны?
Это один из распространённых вопросов о судьбе программирования: мне не раз приходилось его слышать от журналистов, блогеров и родителей, чьи дети выбирают будущий вуз. Для меня этот вопрос звучит...
habr.com