23 декабря 2017 г.

Обучение программированию в современных реалиях

Этот пост будет больше ностальгическим, чем обзором современных языков программирования и многочисленных курсов обучения программированию, которым забит интернет.
Учиться программированию я начинал в школе на старых советских машинах (что-то там "Электроника"), которые естественно были скопированы с иностранных образцов и на которых были установлены адаптированные версии примитивных операционных систем и язык программирования Basic в версии от рижских разработчиков. Удивительно, но нам так же преподавали язык С, который мне сразу понравился своей простотой и лаконичностью больше Basic.
На дворе были голодные лихие 90-е, но наша школа получила возможность закупить компьютеры "двойки" и "четвёрки" с цветными экранами (до этого мы довольствовались монохромными экранами) на которых красовался Volkov Commander. Так мы вступили в эпоху Borland Turbo Pascal, который остаётся в наших школах и Вузах до сих пор одним из лидирующих языков для обучения основам программирования. Pacal был сложнее в освоении по сравнению с Basic, зато предоставлял массу новых возможностей типа чтения и записи в файл, и даже позволял писать программы для работы в графическом режиме.
Развитие ИТ-отрасли в стране шло, но с массой нюансов, которые были схожи с тем, что происходило в странах с развивающейся экономикой типа Индии или Китая. Основные особенности нашего ИТ:

  • "Ворованные" дистрибутивы программ. Вся страна сидела на нелицензионном Delphi, что, кстати, и помогло ему стать чрезвычайно популярным. Про Windows и говорить нечего. 
  • Устаревший парк компьютеров, потому что запчасти для компьютеров в те времена стоили весьма дорого и еще в 2010 году я встречал "пузатые" ЭЛТ-мониторы и программы, работающие в DOS-режиме. 
  • Повсеместного Интернета не было, как и официальной тех.поддержки со стороны иностранных разработчиков. 

Только к 2008 году я наконец получил безлимитный доступ к интернету и обратил внимание на развивающуюся отрасль web-дизайна и web-программирования. Это сейчас мы рассуждаем про фронтенд и бэкенд, а тогда было круто писать на PHP вперемешку с HTML и даже использовать технологию Flash для "мультимедийности", что сейчас выглядит как безумие. А Javascript тогда использовали для проверки полей ввода и эффекта "падающих снежинок" на новый год. В мире браузеров творилось непотребство: балом правил неубиваемый Internet Explorer и работали скрипты (да и сайты) через пень колоду в разных браузерах. Это сейчас у нас победил Google Chrome и разработчики договорились о кроссплатформенности.
Раньше книги этого издательства были самыми желанными
Вернёмся к программированию. Обучение программирование тогда происходило достаточно просто, выбора особого не было - ты качал из интернета книжку по интересующему тебя языку программирования в формате PDF и начинал её читать. Книг на русском языке было очень мало и они появлялись с опозданием в годы. О профильных курсах можно было только мечтать. Продвинутые программисты, которые знали английский язык, искали информацию в иностранном интернете и это всегда было лучше (да и сейчас это отличный "скилл" для начинающего программиста). Ну а дальше мы шли по тяжёлой кривой обучения: изучение, практика, отработка ошибок, гугление проблем в интернете и на профильных форумах, где собирались программисты. К сожалению, любой навык бесполезен, если вы его просто изучили и никак не стали использовать в реальной жизни. То есть недостаточно выучить язык программирования, если вы не будете в нём совершенствоваться каждый день, а для этого надо работать по специальности и применять полученные знания. В России с работой в ИТ-отрасли всегда были проблемы и это только относительно недавно у программистов появилась возможность работать удалённо, в качестве фрилансера, да и сам информационный бизнес переживает подъём, несмотря на то, что государство пытается вставлять палки в колёса и регулировать его.
Специальные курсы по Ruby on Rails для девушек
В 2017 году, конечно же, ситуация с обучением программированию совершенно отличается от того времени, когда в школе учился я. Появилось такое огромное количество новых языков программирования, технологий и средств разработки, что глаза просто разбегаются. Более того, подавляющая часть этих инструментов и технологий абсолютно бесплатна. У корпораций считается хорошим тоном предоставлять новичкам свои инструменты для обучения бесплатно. Так корпорация Microsoft отдаёт свою флагманскую IDE Visual Studio безвозмездно, а простых и бесплатных редакторов кода для самых различных языков программирования просто трудно пересчитать. Скачивание и установка редактора кода для обучения какому-нибудь Python занимает минут 15 в относительно неопытных руках.
Кроме текстовой информации по обучению программированию, в интернете имеется огромное количество видеозаписей и целых видеокурсов с лекциями. Я был удивлён, но по аналогии с игровыми стримерами (на Twitch), в интернете имеются стримеры-программисты, которые транслируют и комментируют свою работу.
Дорогой ноутбук от Apple для обучения программированию покупать не обязательно
Сейчас у нас имеется огромное количество онлайн-курсов разного уровня продвинутости и качества. Есть бесплатные видеогайды на Ютубе от таких же начинающих программистов, но я бы не советовал обращаться к ним, потому что неправильные знания это ещё хуже чем просто незнание. Например обучиться Python у профессиональных преподавателей вообще не проблема  и это даже не потребует от вас денежных вложений - только времени на регистрацию на сайте, просмотр лекций и выполнение тестовых упражнений. Удивляет, что на фоне такого разнообразия технологий и возможностей, в наших школах и Вузах до сих пор пытаются обучать на "Паскале" по старым учебным планам, утверждённых наверное ещё в прошлом веке. Кстати, сам "Паскаль" давно шагнул вперёд и отечественные программисты разработали специальную современную версию с поддержкой .NET.
Я по хорошему завидую современному поколению, которые получают доступ к такому интересному занятию как программирование и имеют возможность работать на современных компьютерах и не только на них (смартфоны, VR, программирование под Linux). Главное не упустить эти возможности и не распылять свои ресурсы на неважные вещи. 

Комментариев нет :

Отправить комментарий