Обучение программированию или преступление «Майкрософт»

топ 100 блогов fritzmorgen01.04.2018

Наглядно о программировании. На видео к посту вы можете наблюдать, как некий программист пишет за четыре минуты вполне работоспособный тетрис. Это не трюк: тетрис и тому подобные игры действительно можно написать очень быстро — за час-два, если делать всё медленно, аккуратно и без подготовки.

Самым настоящим преступлением корпорации «Майкрософт» я считаю создание Visual Basic. Настоящий «Бейсик» был простым, как карандаш. Человеку старше пяти лет не нужно учиться пользоваться карандашом — он просто берёт карандаш и начинает что-нибудь рисовать на бумаге. Ровно так работал и «Бейсик» прошлых лет — неподготовленный человек мог сесть за клавиатуру и немедленно начать программировать.

Простенькая программа типа вывода на экран чисел Фибоначчи или движущегося прямоугольника создавалась за 10 минут, потом начинающий «программист» втягивался в процесс, и уже через несколько часов становился способен на более сложные вещи. Кривая обучения была не просто пологой: она практически отсутствовала, ворота в программирование были распахнуты настежь, оставалось только в них войти.

Корпорация «Майкрософт» взяла тот простой, первозданный «Бейсик» и уничтожила его.

Продемонстрирую весь ужас ситуации на примере. Допустим, я работаю в Word, в который встроен Visual Basic от «Майкрософт», и мне хочется сделать элементарный макрос, программу для обработки текста. Предположим, мне часто приходится заменить в тексте «--» на полноценное тире, и я хочу, чтобы «Ворд» делал это автоматически при нажатии сочетания клавиш «Alt+2».

Если бы в «Майкрософт» работали нормальные специалисты по интерфейсу, они бы сделали кнопку «макросы», нажав на которую я бы мог ввести на чистом экране примерно следующее:

Alt+2: REPLACE «--», «—»


Было бы просто, доступно, и весьма привлекательно для тех, кто хочет самостоятельно обустроить своё рабочее место разнообразными настройками.

В реальной жизни, увы, «Майкрософт» сделал всё на два порядка сложнее. Нужно забраться в какие-то дебри настроек, хитрым способом привязать комбинацию к кнопке на экране, а потом написать примерно так:

Sub Replace_minuses
  Dim oDoc As Object, xText As Object, xTextRange As Object

  oDoc = ThisComponent

  FandR = oDoc.createReplaceDescriptor
  FandR.searchRegularExpression = true
  FandR.SearchCaseSensitive = true

  FandR.setSearchString("--")
  FandR.setReplaceString("—")
  oDoc.ReplaceAll(FandR)

End Sub


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

Вместе с тем абсолютно очевидно, что новичок проследовать таким путём не сможет. Сравните первый кусок кода со вторым. Начать программировать на первом языке можно за несколько минут. Для изучения основ второго языка, реального Visual Basic от «Майкрософт», потребуется несколько часов, сравнимых по мучительности с часами, проведёнными в кресле плохого стоматолога.

Билл Гейтс любит хвастаться тем, что открыл компьютеры для широких народных масс, сделав общение с компьютером простым, как переключение каналов в телевизоре. Отчасти он прав, однако конкретно создание Visual Basic произвело обратный эффект: отвратило от программирования миллионы людей, провалившихся при попытке создать элементарный макрос для облегчения ежедневной работы в «Ворде».

Как можно понять из видео к посту с созданием «Тетриса», некоторые входные барьеры есть и в более продвинутых языках программирования, типа того же C++, код которого мы имеем удовольствие наблюдать на экране. Вы не можете вот так с разгону взять и начать писать код, как это было 30-40 лет назад с «Бейсиком». Вначале вам всё же придётся потратить часок-другой на изучение основ языка, причём не «методом тыка», а при помощи какого-нибудь руководства.

Хорошая новость заключается в том, что после преодоления первого барьера дела пойдут гладко. Как только вы научитесь делать элементарные вещи, вы сможете создавать примитивные программы: простейшие компьютерные игры или, допустим, какие-нибудь нехитрые костыли для учёта и обработки ваших рабочих документов.

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

Вместо завершения поста отмечу три вещи.

1. Никакого обмана в видеоролике нет: опытные люди действительно программируют очень быстро. Вместе с тем, я бы рекомендовал выбрать для опытов не довольно специфичный c++, а более современный html5 (для зануд: JavaScript + HTML5), который не нужно ставить, так как он работает сейчас практически в любом браузере. Вот, например, самоучитель, при помощи которого за час-другой можно научиться делать «арканоид»:

https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it

2. В современном мире карьера программиста не выглядит однозначно хорошим выбором. Хорошим программистом стать сложно, плохих же и средних программистов скоро с большой долей вероятности заменят роботы. Впрочем, с другой стороны, в современном мире вообще не так-то много надёжных профессий — нам повезло жить в эпоху перемен.

3. Кроме серьёзных вебинаров, курсов и тому подобного есть сейчас и игровые способы быстро научиться основам программирования: сайты code.org и codecademy.com, например, интерфейс которых переведён уже на русский язык.

PS. Нет, это не первоапрельская шутка. Не нужно искать тут подвоха, всё вполне серьёзно.

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

Архив записей в блогах:
На редкость ясная и толковая статья -- ничего лучше я не читал по этой теме: https://theologyjournal.spbu.ru/article/view/18651/11815 В целом все больше и больше убеждаюсь, что "православное богословие", основывавшееся так или иначе на античной философии, неизбежно должно было зайти в ...
Решила написать скандальный пост! :) Давайте же порассуждаем и объяснимся! :) Начну, как обычно, с предыстории... Есть у нас в Гоа один хороший знакомый индиец по имени, скажем, Раджу. Лет ему уже за 50, он образован и успешен, живет в Мумбаи, в Гоа у ...
Сеймур Херш: В настоящее время Израиль посредством постоянных бомбардировок превращает город Газа в руины, а также планирует начать наземное вторжение в ближайшем будущем. Руководство Израиля рассматривает возможность затопления обширной системы туннелей ХАМАС, прежде чем вводить туда ...
ПРИТЧА „ УЧАСТЛИВЫЙ СОВЕТ ” Молодая женщина сидела на скамейке в парке и почему-то горько плакала. В это время маленький мальчик ехал мимо на трехколесном велосипеде по аллейке. И так жалко стало ему тетю, что он спросил: – ...
Россия на первом месте по недоверию и нежеланию вакцинироваться. Я сплошь и рядом слышу «отмазки» от друзей, знакомых, умных вроде бы, людей. Одна другой смешнее. Поделитесь, какие у вас были самые нелепые отмазы, чтобы не ставить вакцину. Мои: - я на 99 % верю, что вакцина это ...