Как курсы программирования губят IT-индустрию в России

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Мнение | Оффтопик

Я занимаюсь программированием уже больше десяти лет. За это время я успел поработать в разных проектах: от стартапов, где ты пишешь все с нуля, до крупных корпораций, где важна работа с масштабом и поддержкой старого кода. И, честно говоря, за последние годы меня все больше беспокоит то, что происходит с обучением в нашей IT-индустрии. Курсы программирования, которые сейчас продаются на каждом углу, не готовят специалистов. Они создают людей, которые умеют жонглировать фреймворками, но при этом не понимают, как работает фундамент.

Курсы дают инструменты, а не знания

В большинстве случаев курсы по программированию — это набор уроков, которые учат, как пользоваться конкретным инструментом. Возьмем популярные примеры: JavaScript и React. На курсах студентов сразу учат, как строить интерфейсы с React, как подключать библиотеки, работать с роутингом. Звучит здорово, правда? Вот только одно «но»: такие специалисты зачастую даже не понимают, как работает сам JavaScript. Что такое замыкания? Как работает event loop? Почему у вас иногда всплывают странные баги с this? Без ответа на эти вопросы вы не программист, вы оператор React.

Или другой пример: Python. На курсах сразу начинают учить Django или Flask, а базовые концепции вроде объектно-ориентированного программирования или внутреннего устройства языка остаются за бортом. А потом такие «специалисты» получают задачи на оптимизацию и теряются. Потому что когда вы не понимаете, как устроен язык, вы не можете эффективно его использовать.

Фреймворки — не зло, но не для новичков

Поймите меня правильно: я не против фреймворков. Они — мощные инструменты. React, Django, Spring — все это упрощает жизнь и позволяет быстрее решать задачи. Но чтобы эффективно пользоваться фреймворком, нужно понимать, как он устроен. А это возможно только тогда, когда вы знаете нативный язык и основные принципы программирования.

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

Проблема массового подхода

Массовость — вот главный враг качества в образовании. Курсы продаются тысячам людей, обещая «быстрый вход в IT» за три месяца. Программа обучения строится так, чтобы ученик сразу мог «показать результат». А что такое результат? Это готовое приложение на React, Telegram-бот на Python или страничка с подключенным Firebase. Но никто не объясняет, как это работает изнутри. Ведь если ученик начнет вникать в детали, он потратит месяцы, а не недели, чтобы разобраться. А значит, курсы не смогут «поставить» на рынок очередную партию «специалистов».

Кто в итоге страдает?

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

Как исправить ситуацию?

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

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

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

Изображение в превью:
Автор: GPT
Источник: GPT
Автор не входит в состав редакции iXBT.com (подробнее »)

22 комментария

a
Страшно другое. Мне как-то на предложение прочитать первую главу документации, чтобы узнать возможности и ограничения, заявили: «зачем нам читать документацию, у нас есть свое сложившееся мнение о данной технологии». То, что в документации было написано, что желаемое на реализовано — неважно. Главное — свое мнение. И еще ведь прихлопывают официальную документацию замечательным «в езде говорят, что можно». Мнение на основе вот этой самой «езды» перевешивает и мнение профессионалов, и документацию.
M
Я считаю, неправильно сразу учить людей писать на скриптах. Как говорится, не учите детей плохому. Конечно идея о том, что раз условный Питон является самым популярным языком, то надо учить писать сразу на нем, является заманчивой. Но в итоге получатся программисты уровня тайских пилотов самолетов, которые только кнопочки на автопилоте тыкать умеют. Все нужно делать по порядку. Сначала обычный язык на базовом уровне. Потом ООП. И только потом скриптовые языки. Почему именно так? Во первых прежде, чем переходить к концепции «Тут все ООП», это ООП для начала надо бы прочувствовать. Во вторых программист должен прочувствовать, что любые операции не бесплатны, а имеют некоторую стоимость. Например самый яркий пример — что работа со строками медленнее, чем с числами, а потому алгоритмы в стиле «Преобразуем число в строку и найдем ее длину вместо 100 <= X <= 999» — это быдлокод. Еще хуже, когда в скриптовых языках такие проблемы могут возникать неявным образом. Например из за нестрогости типизации. Это можно прочувствовать только в том случае, если тебя поставили такие условия, где ты должен сначала написать все сам. Только тогда ты поймешь, что сколько стоит.
Carrot_Joe
Сегодня программирование перестало быть наукой, профессией «красноглазиков», а стало ремеслом, где за 3-4 месяца можно научиться работать на конвеере по кодированию, где руководитель даёт входное задание, требуемый результат и инструмент, которым это нужно сделать. Не нужно придумывать и разрабатывать алгоритмы, что-то уникальное и быстрое, нужно дать предсказуемый результат в установленый срок (бюджет). Это будет медленнее? — вычислительные мощности стоят копейки. Вылезут типичные баги? — есть средства отладки, тестирования, систематизированный опыт решения типичных задач и проблем. Использование стандартных инструментов, алгоритмов и процедур позволяет изучать чужой код без проблем, модифицировать его, даже перепистаь с нуля без особых проблем и расходов. Создание программ превратилось в обычный конвеер стандартных решений. Такова плата за прогресс и массовое использование.
Я не буду спорить, существуют люди, которые имеют базу профильного образования, вроде прикладной математики, дополнительное образование, связаное с спецификой разработки, например, крипрографию, экономику, глубокие познания в сетевых технологиях и т.д., но это уже штучный товар, который и пишет уникальную часть программы, которую потом обвешивают стандартными решениями ремесленники, под управлением и надзором функционеров от программирования.
Как ни странно, программирование сегодня работает по тем же стандартнам и принципам, что и любое производство, и это кодеры за 3 месяца, это токари и фрезеровщики 1-2-3 разряда, которые точат из болванок типовые массовые детали.
a
Это будет медленнее? — вычислительные мощности стоят копейки.

А потом начинаются вопли насчет медленных запросов к базе данных, не отвечающих серверов приложений…
Carrot_Joe
Да, это следствие, а причина — бюджет разработки и внедрения. То что автор описал в статье это и есть тот самый «индусский код» — быстро, дёшево и массово.
116117399838709429549@google
Джуну не нужны ваши замыкания, event loop и проблемы this (не знаю, о каких проблемах идёт речь).
Мидлу/сеньору они нужны, только для того, что на собесе какойнить душнила будет это спрашивать.
+ не забываем прототипное наследование.
А по факту мы все будем json'ки перекладывать в 90% компаний. Можно конечно устроится в какие нить гис-сервисы или сложные редакторы чего угодно, где толстый фронт, но туда точно джуна не возмут.
Я абсолютно не спорю по поводу курсов(любые курсы без исключения — скам на лоха). Но с другой стороны вы, как то сильно переоциниваете джунов. Джуну вероятно прикольно знать базу js, основы фреймворка, гит(4 команды) и наверное поверхностно докер. Всё равно уровень задач там «кнопку перекрасить» и с проблемами он побежит к ментору очевидно.
Но опять же, джуна всё равно никуда не возмут. На моей практике брали только тех, за кого мог поручится кто то внутри компании :D
100491544640767782196@google
Часто у вас проблемы с this? У меня самые большие проблемы с this случались только на собеседованиях. Выпускник курсов в принципе пару лет на работе только вредит проекту а потом, если много бить по рукам, начинает приносить пользу.
1
Правильно ли я понимаю, что автор хотел сказать, что входящий поток кандидатов слишком тяжел своим некачеством и объемом для наймодателея? Создаёт чрезмерную нагрузку для него?
1
[удаленный комментарий]
1
[удаленный комментарий]
1
(удаленный комментарий)
1
...
Правильно ли я понимаю, что автор хотел сказать, что входящий поток кандидатов слишком тяжел своей неподготовленностью и объемом для нанимателя? Создаёт чрезмерную нагрузку для него?
1
Если бы в основе был интерес к профессии, основанный на любознательности, а не деньги были основой интереса а первую очередь, то и основы программирования вышли бы на первое место. Студент постоянно должен спрашивать: «почему? Почему? Почему этот инструмент такой неудобный? А что я могу сделать, что бы изменить это?»Что бы подогреть собственный интерес, стоит обратить внимание на интересующие конкретно вас прикладные задачи; далее, исходя из прикладной задачи выбрать инструмент… изучать его по мере решения задачи; люди редко изучают инструмент в проактивном режиме, не имея прикладной задачи; имеет ли смысл обзаводиться знаниями как говорят про запас? Если бы коллеги начали не с высокоуровнего языка, а, например с asm, то картина была бы иной.
105541404663996881166@google
Все программисты это давно операторы Google, которые без него ничего не могут сделать
101309067656425331691@google
А минусы будут?
105541404663996881166@google
Ну для программистов минус в том, что их легко может gpt заменить, так как он сам гуглить может
113062040425271292820@google
То что ШП во многом применяют IT сфере это правда. Невозможно за пол года, год и даже за 3 года нормально обучиться базе. Слишком много всего нужно знать. Конечно, если мы говорим, про формошлёпов/крудошлёпов на js/python фреймворках, то и года хватит, чтобы обучить любого человека. Однако если мы говорим о чём-то более серьезном, то без базы компьютер сайнс и минимального матана будет тяжело. И да, я даже не алгоритмы под этим подразумеваю, за счёт которых любят самоутверждаться душнилы на собесах, причём зачастую так же не понимая темы.
Так что же делать новичкам? Тоже, что и всегда. Если молодые, идите учитесь в вуз или колледж, только узнайте о программе обучения. Если старые, то во-первых, а оно вам надо? В IT давно обычные работники получают выше среднего по рынку. Во-вторых, готовьтесь, что обучение займёт много свободного времени и сил. Никакой годик курсов объективно из вас спецов не сделает.
При этом не слушайте гейткиперов (чаще всего ничего не знающие сеньоры в конторах с насыщенным местечком, где кроме них и джунов никого в команде нет), которые несут бред, что программирование это не работа, а призвание. Всё это фигня. Так же программисты нужны разные и условный формошлёп на реакте, может быть часто востребованней и более высокооплачиваемыми, чем теже программисты микроконтроллеров или ML программисты. Таков рынок. Поэтому ищите более комфортную точку входа для себя и поменьше слушайте «знатоков».
1
Пусть работодатели принимают на работу не выпускников курсов, а выпускников универа. И стонать тогда не придется.
1
Выпускников универа очень мало, слишком много говнокода уже написали чтобы его везде поддерживать. Для этого достаточно крудошлепов, а не линуксоидов с 1 диоптрией. И лучше иметь медленно работающие программы чем вообще их не иметь, ожидая пока выпускник универа что то там соизволит написать))
1
Как учился я? У меня была идея интересного проекта и я сходу начал его делать с нулевыми знаниями в программировании. Получался велосипед на костылях, в какой-то момент пришло осознание какие именно инструменты и языки мне нужно изучить. Сел, изучил, переделал. Причем времени это заняло на порядок меньше.
Вдохновил своего друга. Он дотошно начал изучать сразу два языка. Вроде бы освоил, но в голове не было никаких идей куда применить свои знания, так они и лежат у него в памяти мертвым грузом
1
Что за кликбейтный заголовок? Звучит как шаблон по типу: Как вы убиваете свой мотор в автомобиле…
1
Основная часть курсов сводится к тому, что автор открывает документацию, и просто её читает. Будьте добры, заплатите за это 50 тысяч

Добавить комментарий

Сейчас на главной

Новости

Публикации

Недостроенный детектор на дне моря поймал нейтрино, которое не смог поймать IceCube. Новая физика или случайность?

В феврале 2023 года детектор ARCA — часть строящегося на дне Средиземного моря нейтринного телескопа KM3NeT — зарегистрировал частицу экстремальной энергии. Мюон прошил...

Обзор увлажнителя воздуха РЕДМОНД HF2213S: Создай свой климат со смартфона

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

Почему кухонная вытяжка начинает шуметь сильнее обычного, и как решить эту проблему

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

Беспроводная мышка Acer OMR225 Pro: Мультипоинт и два колеса прокрутки

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