Блин, да как же всё таки обучить программистов?


А как научится танцевать балет? А как выучить английский? А как научится писать романы?
Берёшь, и делаешь, делаешь, делаешь. Только практика. Но просто практика помогает только по началу.
Дальше нужно чтобы тебя кто-то скорректировал. Поначалу ты привыкнешь делать неправильно, и твой наставник должен тебя отучить от этого.
Дальше нужно постигнуть несколько базовых принципов чтобы понять как делать работу лучше.
Например в программировании базовый принцип прост:
Ты пишешь для других: давай правильные названия, не усложняй, пиши комментарии.
Осознание этого просто принципа рано или поздно тебя приведёт к правильным книгам или менторам которые просто расскажут пару трюков как этого достичь.
Ты всё равно будешь краснеть за свой код написанный месяц назад, но при этом ты всегда будешь знать к чему стремиться.

Поэтому когда кто-то говорит «давайте сделаем реформу образования, и начнём программистов обучать современным технологиям, и всяким там компьютер сайенсам» то это пустой звон.
Даже какой нибудь МИТ или Стендфорд это тупое просырание времени, денег, сил и талантов, несмотря на их потрясающие учебные программы.

Человеческий мозг — это компьютер, сложный и тем не менее прямолинейный.
Мы запоминаем только то, что повторяем. И если не повторяем — забываем. Очень просто, правда?
А теперь мы берём студента, пичкаем его знаниями: структуры данных, дискретная математика, исследование операций, ТАУ, схемотехника, ООП, сети.
По идее должен выйти отличный инженер, правда? Истина в том что знания почти никак не влияют на профессионализм. Ты либо программист. либо нет, всё тут. И ты был таким всегда, с рождения!
Это нейрологическое свойство твоего мозга которая просто нашло максимальное своё проявление в случайно оказавшейся полезной специальности.
Знание микросхемотехники мне никак вообще не пригодилось. Когда мне было интересно как устроен компьютер я прочёл и изучил схему полусумматора и понял. Мне этого хватило. То что есть JK и T триггеры для меня бессмысленный багаж знаний. Вообще всё что рассказывали оказалось бессмысленным — я просто этим больше не занимался. И почти всё забыл, то что написано в моём дипломе магистра теперь полная ложь.
И это правильно, это механизм выработанный миллионами лет эволюции!

Я даже забыл как в столбик делить, а недавно объяснял тестировщице основы программирования, хотел написать решение квадратного уравнения и… вот вам сейчас слабо вспомнить формулу x1? Мне пришлось глянуть в Википедию, вспомнить.
Глянуть в интернете у меня заняло 30 секунд. Зачем было меня напрягать 11 лет в школе?
Вся стоимость полученных мною знаний в школе это те 50 центов стоимости микрочипа памяти.
И всё всегда реально выучить и сделать как только попадается задача. Да да, как в том анекдоте «Завтра экзамен по китайскому, а мы не учили. Учебник есть? Да. Тогда сдадим!».
При этом, я уже самостоятельно выучил столько технологий, идей и концепций, что хватило бы на десять высших образований.

Теперь вопрос: зачем вообще обучать чему нибудь если оно забудется? Да ещё и пять лет!?
Пять, пять сука лет! Пять лет молодости, самого эффективного возраста.
Вместо того чтобы зарабатывать деньги, любить, завести семью мы тратим нашу жизнь на «заучил, сдал, забыл».

Люмпен пролы хоть год в бурсе, ещё один в армии и на завод, и уже живут. И уже рожают строителей идиотократии.
Вам, уже даже фильм сняли в Голливуде, с Тимберлейком и грудастой актрисой, как ещё вам, идиотам, объяснить чтобы вы поняли насколько время ценно?

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

Доучится и перейти — не большая проблема. Я выучил Яву и перешёл на неё с Делфи за две недели. Ходил на собеседования и получил за это время два офера! Да у меня был опыт двух-трёх хелоуворлдов на Яве до этого, как впрочем и на Плюсах и на Си Шарпе. Всё равно, за две недели вникнуть в тонкости которые как раз и спрашивают на собеседовании это было сложно, но возможно.
Скажите я гений? Тогда как объяснить похожий успех у Игоря Цинько?

Да, я сейчас учусь: хожу на тренинги, конференции, читаю книги, блоги. Но только когда мне что-то либо интересно либо нужно по работе. Потому что иначе просто бессмысленно.
Когда на Coursea начали выкладывать курсы, я был в восторге и записался на курс криптографии. После двух занятий бросил.
Зачем оно мне? Основы мне отлично объяснил один из крутейших криптографистов Евгений Василенко, который вообще-то по образованию (сюрпайз!) геолог.
Я уже знаю что такое (а)симметричное шифрование, что за алгоритм Диффи Хелмана, что такое хеш, сеть доверия, что такое цифровая подпись. А больше я на практике и не использую. Зачем мне знать про эллиптические кривые?

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

Зачем вообще ходить на лекции в университет, если их можно записать? Зачем проводить экзамены?
У экзаменов есть два смысла: метрика чтобы студенту помочь следить за своими успехами и сертификация — когда государство поручается за твои знания.
Сертификацию можно делать вообще добровольно и только один раз. Зачем каждый семестр поддавать студентов стрессу?
Прочти все проверки заданий можно делать на компьютере в виде тестов.
Для программного кода в виде юнит тестов которые заранее выдать.
Проверки преподавателем можно свести до минимума.
Зачем вообще ходит в институт каждый день?
Зачем вообще держать огромные здания университетов? А ведь они занимают обычно огромные территории да ещё и в лакомых землях центра города.
Давайте их снесём лучше и на из месте построим дом элитный, или супермаркет или общественный туалет.
Да, общественные туалеты для нас важней университетов. Я серьёзно.

Этой зимой я помог Виктору Кучину провести тренинг Java интенсива. За три неделе мы вместе с джунами вместе разрабатывали сайт. Только нужные технологии для выполнения работы в 80% компаний. Только нужные навыки. Практика, парное программирование.
У всех на выходе из курсов было составлено резюме, и в нём был указан реальный опыт на реальном проекте.
Все уже почти готовы к устройству на работу, только ещё самостоятельно заучить ответы на стандартные вопросы.
Сами того не зная, мы с Виктором действительно нашли правильный и наверное единственно верный формат обучения.
Я действительно глубоко переосмыслил что мы сделали и окончательно в этом убедился.
Вам даже сложно представить сколько всего перемолол мой мозг чтобы удивится поняв что мы интуитивно всё сделали правильно!
Может этот текст вас не убедит — это всего лишь заметка перед сном, вершинка айсберга, но я знаю что говорю, мне можно верить и я буду ещё много об этом говорить и писать.

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

Читайте продолжение: Здания университетов нужно превратить в туалеты! Без шуток

UPD
Эта заметка не смотря на неполноту и желтушность вызвала обсуждение. На меня посыпались кучи аргументов которые к сожалению в основном являются просто закостенелыми мифами и стереотипами. Градус неадеквата в таких дискуссиях быстро нарастал и мои оппоненты то и дело подтверждали закон Годвина да ещё не обошлось без Сталина.
Сегодня многоуважаемый мной тренер по программированию Николай Алименков написал отличную статью где выступил в защиту ВУЗов.
Николай мой кумир и один из основателей тренингового центра XP Injection, организатор многих конференций и киевского клуба программистов, и каждое его слово — золото, и к нему стоит прислушаться. Но к сожалению ничего нового в его статье нет, зато старые утверждения описаны очень хорошо.
Забавно что как раз все эти аргументы легко переводятся в обратную сторону против ВУЗов. Кстати сам тренинговый центр XP Injection я как раз и ставлю пример замены ВУЗов 🙂
А вот и мой ответ: Всё таки есть хоть какая нибудь польза от вузов?.

И ещё один: Единственная польза оффлайн вузов – это теоретически эффективный нетворкинг

Реклама

6 comments

  1. vkuchyn

    Видно, що накипіло 🙂 Приблизно ті самі думки виникли в мене — навіщо ходити на роботу, коли для того, щоб працювати мені необхідні ноут і інтернет?? Для цього офіс не обов’язково відвідувати. Вуаля )) Іде нова ера, епоха інформації. Хто зрозумів — той на коні, хто ні — його проблеми. Нехай сидить в офісі і на нудних парах університету.

  2. Anna

    Так никто же никого не заставляет идти в универы и тратить там 5-6 лет жизни. Если диплом нужен для социального статуса, его можно купить, или заочно как-нибудь в «очереди за дипломами» отстоять. По крайней мере я так и делала.

  3. Уведомление: Здания университетов нужно превратить в туалеты! Без шуток | Серёжа Пономарёв aka stokito
  4. Уведомление: Высшее образование не нужно? Да вы шутите?
  5. Maxim Shvedov

    Насчет «лишних» знаний верно, но очень зависит от целей человека. Можно выучить минимальный набор знаний, который используется на практике и со временем стать крепким середнячком.
    Но если есть желание создавать что-то принципиально новое, то такой подход уже не годится. Почитай, например, как Сегалович делал и допиливал Яндекс. Эти лишние знания — то, что делает из «Классификатора услуг», (который продавался в разные НИИ) ярдовую историю, которая вышла на IPO и занимает большую часть рынка в стране.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s