Показаны сообщения с ярлыком языки программирования. Показать все сообщения
Показаны сообщения с ярлыком языки программирования. Показать все сообщения

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). Главное не упустить эти возможности и не распылять свои ресурсы на неважные вещи. 

31 марта 2011 г.

О судьбах Delphi

В связи с выходом новой версии Lazaurus я хотел бы порассуждать о судьбе такого языка программирования (хотя на самом деле это среда разработки) под названием Delphi. Название это было на слуху на рубеже столетий и Delphi был очень популярен в России. У некоторых программистов он популярен до сих пор и они умудряются выпускать качественные и популярные программы. Для Delphi своеобразным знаменем является Total Commander, а вернее сам автор Кристиан Гислер, который умудрился сделать программу, успех которой не удается повторить никому (файловый менеджер Frigate и ставший культовым у некоторых администраторов и программистов FAR не то и погоды не делают). Не уверен что Кристиан Гислер смог бы написать такую же программу, если бы взялся писать её не в Delphi, а например на C++.
Лично у меня Delphi вызывает до сих пор по большей части негативные эмоции: Total Commander, который я помню еще "маленьким" когда он назывался windows commander - единственное светлое пятно. Связаны мои не очень приятные воспоминания с творениями начинающих и не очень талантливых программистов на Delphi, творения которые напоминали монстров, изобиловали использованием чужих компонентов (в Delphi это очень поощрялось) и пугали нестандартным внешним видом.
Тем не менее уважать и любить Delphi есть за что: он подарил свободу самовыражения многим программистам. Свободу установить простую IDE и начать программировать сложные программы с интерфейсом и даже игры. TurboPascal, которым с самого школьного возраста пичкали этих начинающих программистов нашел свое достойное продолжение в среде программирования Delphi. Мне также повезло соприкоснуться с великим и ужасным языком C, но на меня он не произвел такого впечатления, все на что он был способен это делать вычисления и выдавать данные на экран, там мне казалось в то время. Затем я познакомился с одной из реализаций Basic (это было задолго до QBasic), и в этой версии Basic можно было перейти в графический режим. Вот это было для меня круто.
Но я увлекся своими воспоминаниями. Вернусь к языку программированию Delphi (согласно Wikipedia так его надо было величать). Не знаю кому и зачем может понадобиться в современном мире использовать этот так называемый язык программирования для своих будущих проектов. Я вижу несколько причин для этого и все они дурно пахнут:
  • программист слишком глупый (или старый) и не хочет учить никаких ЯП кроме Delphi
  • необходима поддержка и развитие ПО, которое было написано в 2000-х гг
  • никто не хочет связываться с .NET или Java, а приложение, которое использует браузер для работы с сервером вызывает непонимание
  • в незапамятные времена была куплена лицензионная версия Delphi и никто не хочет раскошеливаться на что-то другое (даже такое бывает в России, где в 90-2000-х повально использовалось пиратское ПО)
То что, я вижу со своего места просто пользователя, когда ко мне по долгу службы приходит очередное ПО написанное неизвестно кем на Delphi, вызывает у меня ужас.
Базы данных? Киньте этот файл в папку с программой - там содержатся последние нужные вам данные.

Программа тормозит? Нет, она просто так работает. Оставьте компьютер включенным на 2 суток и она выдаст нужный вам результат (последнее не шутка и не преувеличение! Такие программы бывают и работают они, оказывается, не в ядерных центрах на суперкомпьютерах).
Программа закрывается с ошибкой? И даже без всякой ошибки? Вы просто неправильно с ней работаете и не читаете инструкций. Мы скажем об этом вашему начальству и оно примет в отношение вас и вашей компьютерной безграмотности меры.
Но не языки программирования пишут программы, а люди. Вряд ли сам Delphi виноват в качестве программ и судьбе большинства программ, написанных в нем. Хотя вина в плачевном положении, которое сложилось сейчас у разработчиков есть. Появилось множество разных языков программирования. Многие из них не требуют покупки дорогой среды разработки, для того чтобы начать писать и продавать программы. Владельцы Delphi сделали ответный ход и выпустили облегченную, начальную среду разработки Delphi XE Starter Edition по цене обычного сотового телефона.
Если бы я начинал писать пользовательские приложения сейчас, то ни за что не взял бы в качестве среды разработки Delphi. Да и не стал бы осваивать её. C#, Visual Basic.NET выглядят более предпочтительнее для этого, а также во много раз перспективнее. Даже Java, под которую Oracle копает яму, лучше. Есть множество других способов писать приложения, причем без необходимости что-либо покупать и быть от кого-то зависимым.