Чего-то не хватает, и нам нужно срочно это выяснить!

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

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

Как вы объясните слова, которые требуют небольшого собственного курса, всего в одном-двух предложениях?!?

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

Нам нужно перестать полагаться на техническое образование при обучении разработке программного обеспечения.

Позвольте предложить эксперимент. Найдите наименее технически подкованного человека в вашей группе друзей, семьи, группы поддержки, анонимных придурков, черт возьми, это может быть даже ваш терапевт, мне все равно, и объясните им эти три термина: внешняя разработка, внешняя разработка, полная стек разработки и как все это связано с каждым веб-сайтом, который они используют, и делать это таким образом, чтобы у них не осталось дополнительных вопросов. Удачи тебе… 😆

Пять часов спустя…

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

Ну, навыки не приходят в одночасье, и уж точно не на онлайн-курсах Udemy или FreeCodeCamp. Не поймите меня неправильно, все это отличные ресурсы, но заявления о том, что нет необходимы предварительные знания, в лучшем случае наивен, если не полная ерунда. Отсутствие фундаментальных знаний означает, что вы можете отправить ссылку своей бабушке, и через два месяца она будет кодировать приложения React. Этого не произойдет по той же причине, по которой любой, кто никогда не занимался разработкой программного обеспечения, вряд ли поймет половину этой статьи. Сам по себе технический жаргон является достаточным барьером, чтобы удержать кого-то от изучения программирования. Добавьте к этому синтаксис языка, и вы получите кого-то, кто бежит куда подальше.

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

Онлайн-курсы пропускают так много важных деталей, что это почти чудо, что в отрасли есть программисты-самоучки.

Преподавание программирования и разработки программного обеспечения с замалчиванием деталей, которые, как предполагается, учащийся либо поймет самостоятельно, либо уже знает, сродни преподаванию математики и пропуску пары страниц в каждой главе. Я думаю, что очень часто "момент лампочки", когда все "щелкнуло", на самом деле является печальным побочным эффектом плохой практики преподавания. Вещи должны быть объяснены достаточно хорошо, чтобы учащийся понял концепцию здесь и сейчас, а не через часы, дни или годы — да, поверьте мне, такое случается!

Откуда я знаю, что это так? Просто взгляните на онлайн-документацию по API, библиотекам, платформам, языкам программирования и т. д. Подавляющая часть этой документации — провал. Вы когда-нибудь задавались вопросом, почему jQuery стал таким популярным? Одна из причин в том, что по сей день он имеет одну из самых читаемых и надежных документов в дополнение к уже упрощенному синтаксису. Я большой сторонник ванильного JavaScript, но даже я признаю, что его синтаксис, особенно когда дело доходило до манипулирования DOM, был пугающим для многих новичков.

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

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

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

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

Я пришел к выводу, что практически все, что предназначено для того, чтобы дать толчок чьей-то карьере в области разработки программного обеспечения, в корне ошибочно. Учебные курсы на самом деле не учат, а вбивают информацию в студентов, большинство онлайн-курсов предполагают слишком много технической подготовки, а официальная документация в основном написана инженерами, которые не знают, как опуститься до абсолютного нубского уровня. Взгляните на этот простой вопрос, связанный с HTML. Это справедливый вопрос. Почему это спрашивают? Потому что плохо учат. И это тоже частый вопрос. Просто должен был объяснить то же самое неделю назад кому-то, кого я наставник.

Половина StackOverflow — это прямой результат плохого обучения разработке программного обеспечения. Заставляет задуматься, не так ли? Начнем учить лучше, без предположений…



Аттила Ваго — инженер-программист, улучшающий мир по одной строке кода за раз. Крутой ботаник навсегда, автор кодов и блогов. Сторонник доступности Интернета, поклонник LEGO, коллекционер виниловых пластинок. Любит крафтовое пиво! Прочитайте мою историю Hello здесь!