Математика и секс
Июнь 28th, 2014

Кто хочет стать программистом?

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

Обычный карьерный путь человека в IT выглядит так: он поступает в технический ВУЗ на любую специальность, ему пять лет капают в мозг всякой чушью, но среди этой чуши он начинает понимать как писать циклы while и условия if. Если ВУЗ топовый, то он узнает что такое классы и объекты. В качестве очень редких исключений можно попасть к хорошему преподавателю на какой-нибудь спецкурс, где тебе расскажут нормально про что-то ещё, например про XML или про то же теситрование или про современный веб, но это редко. В МИФИ, например, когда говорят про HTML, до сих пор рассказывают про тег FONT.

Потом человек как правило читает одну-две книжки, которая уже учит его какому-то взрослому языку, а институт его по распределению пихает в какую-нибудь контору на позицию джуниор-разработчика или тестировщика. Именно на работе человек получает свои первые реальные навыки, после чего он может искать уже новое место работы, изучать ещё что-то новое, расти профессионально и карьерно. Профессионал, можно считать, получился.

Альтернативный подход — это самообразование. К сожалению, это почти никогда не работает. В редких случаях, когда это работает, человек вырастает в куда более хорошего специалиста, нежели он мог бы вырасти окончив институт. Другое дело, что у 99% заниматься самообразованием не получается. Получается, что институт оказывается в общем-то на порядок предпочтительнее самостоятельной учёбы. Полезно понять как именно выглядит неудачный сценарий самообразования.

Начинается всё с того, что у человека возникает желание освоить какую-то профессию и научиться что-то делать. В случае с моей девушкой это желание стать тестировщиком. В случае меня это было желание стать хакером (мне было тогда очень мало лет и я думал, что уж хакерам-то точно бабы дают). Первый шаг такого человека — начать задавать доступным ему людям вопросы в духе «как научиться».  Тут случается первая засада. Ему начинают давать советы все кому ни лень, в итоге по одному только какому-нибудь языку программирования у него оказывается список из 20-ти книг и он не знает что выбрать. Из этих 20-ти книг легко может не оказаться ни одной, которая действительно заслуживает прочтения. Часть из них окажется просто плохими книгами, часть будет ориентирована на сложивщихся профессионалов, часть на людей просто интересующихся, без прицела на освоение именно профессии.

Человек выбирает одну какую-то книгу и начинает её читать. Например, это может быть какая-нибудь книга «Java для начинающих» на 500 страниц текста. После прочтения книги человек узнаёт про все возможные операторы, типы данных, несколько паттернов, но зачастую не может написать ничего сложнее каких-то консольных программ, которые считают числа Фибоначчи. Учитывая, какого труда это ему стоило, человек утверждается в мысли, что программирование это не для него. Конец.

Чем институт оказывается в выигрышном положении? Главным образом он выигрывает в том, что на лекциях дают лишь необходимую выжимку. Вместо чтения 500 страниц по Яве достаточно прослушать несколько которотких лекций (обычно всего навсего 3-4), чтобы уметь делать ровно то же самое и даже больше, чем ты сможешь делать после прочтения книги. Конечно, знания будут обзорными и неглубокими, но начинающему знать что-то глубоко и не нужно. Углубиться можно уже в процессе работы и заробатывания денег.

Институт так же поддерживает темп. Если на лекции были while, if и алгоритмы сортировки, то через неделю надо сдать домашнее задание на эту тему. Конечно, кто-то может скопировать программу из Интернета, кто-то может получить хвост, про который потом все забудут, но само присутствие на лекцией и в лабораторном помещении откладывается в мозгах. По крайней мере даже если студент не делает никаких заданий, он примерно себе представляет как выглядит процесс программирования, как программа компилируется, дебажется и запускается. А это уже половина успеха, даже если программируют на отсталом языке типа Pascal и программируют чушь. Это всё равно навыки программирования, пусть и пассивные.

Следующее важное свойство института, это то что он даёт кругозор. Вопрос новичка обычно выглядит так: «А как мне научиться программировать на Яве?» Человеку после такого вопроса вполне справедливо начинают давать рекомендации по изучанию именно Явы. Мало кому придёт в голову сказать человеку, что чтобы стать программистом, помимо Явы надо знать какие-то алгоритмы, процесс тестирования, системы контроля версий, форматы XML и JSON, HTML, какие-нибудь скриптовые языки, основы криптографии, базы данных, устройства сетей и операционной системы, принципы многопоточного программирования и так далее. Даже не смотря на то, что половина перечисленного легко изучается за неделю, об этом просто никто не скажет, не даст тестового задания или домашнего упражнения. В итоге даже освоив на каком-то уровне Яву человек всё равно не способен писать что-то сложнее совсем тривиальных окошечек.

Российские институты из необходимых навыков дают программисту лишь малую часть и дают её некачественно. Но опять же это полезно — это расширяет кругозор. Даже если в институте рассказали про тег FONT, если вдруг человеку придётся становиться разработчиком под веб, он сможет довольно легко переключиться на новые стандарты. Важно однако что он уже имеет представление в какую сторону хотя бы смотреть. Самоучка в Яве зачастую даже примерно не знает что из себя представляет страничка в Интернете.

Так же очень важным преимуществом института является то, что он создаёт внутри себя некоторое комьюнити. Если студент не понимает почему у него не компилируется «Hello World!», он может всегда спросить об этом у соседа. Если вы учитесь сами по книжкам, то спросить вам как правило неукого. Есть, конечно, форумы, но в большинстве мест, если вы будете задавать много «глупых» вопросов, местные эксперты вам вначале будут кивать на Гугл, потом заминусуют, потом назовут «ламером» и потом забанят. На этом ваше самообучение скорее всего прекратится из-за полной вашей демотивации.

В последнее время появились различные онлайн-курсы, вот эти самые MOOC, которые в самообучении помогают очень здорово. Во-первых, они дают кругозор (не идеальный, но сравнимый с университетским, если вы беретё несколько курсов), во-вторых, они не заставляют читать книжку, а дают вам быструю необходимую выжимку материала, а так же устанавливают дедлайны, что не позволяет вам лениться. В-третьих, они формируют так же как и институт комьюнити, где вас никто не забанит за глупые вопросы. В отличие от института такие курсы так же объясняют что-то современное и реально прикладное, а не доисторичскую чушь типа Pascal или HTML4. Почти идеально.

Однако, MOOC имеет и недостатки. Главный недостаток заключается в том, что у ученика нет куратора, который мог бы направлять процесс обучения. Всё что вы видите — это набор курсов, но вы не знаете какой из них вам надо выбрать и нет человека, который сказал бы вам, что «Курс по „Hadoop” тебе рановато пока брать, научись для начала хотя бы массив сортировать».

Второй недостаток заключается в том, что подход MOOC не индивидуален. Вы можете написать программу, но её никто не проверит и никто вам не скажет: «Да, молодец, всё круто, но вот эта функция берёт на себя слишком много ответственности, лучше бы разбить её на несколько подпроцедур», — а такие комментарии между тем крайне важны, без них стать профессионалом куда сложнее, нежели с ними. Отсюда же следует, что в MOOC вам не дадут на выполнение какие-то большие и сложные проекты, требующие коллективной разработки, понимания архитектуры и должного тестирования. В институтах этого тоже нет, но это решается тем, что на четвёртом курсе вас обычно пихают в какую-нибудь конторку, где вы это всё начинаете потихоньку осваивать.

Помимо MOOC существуют ещё и оффлайновые курсы, но они как правило совершенно неэффективны и максимум могут подготовить вас к сдаче экзамена на какой-нибудь сертификат.

Я сейчас задался целью научить свою девушку профессиональному тестированию ПО, и получается, что я в каком-то смысле должен решать все проблемы, которые имеют MOOC, институты и оффлайн-курсы. При том, что я сам не являюсь тестировщиком. Задача сложная и не факт, что у меня что-то получится, но рассуждения о том, как построить процесс её скорейшего и простейшего обучения профессии, натолкнул меня на мысль, что эксперимент можно провести и более масштабный.

По суди единственное, что я могу дать своей девушке — это отвечать на её вопросы, напрявлять на какие-то конкретные учебные материалы, делать код-ревью и давать проекты для самостоятельного выполнения. По идее это не должно отнимать у меня много времени и с тем же успехом я могу учить ни одного человека, а, скажем, десять. И вот у меня родилась мысль начать такой «курс».

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

Во-первых, сам курс будет представлять собой закрытый форум (по крайней мере на первое время), на котором будут общаться ученики и учителя. Иногда будут созвоны в скайпе. Еженедельно учителями будут поститься ссылки на учебные материалы и даваться какие-то разъяснения и рекомендации, а так же самостоятельные задания. Решенные задания ученики будут выкладывать для обсуждения другими учителями и учениками. Так будет продолжаться до тех пор, пока из ученика не получится профессионал.

Требования для того, чтобы стать учеником, такие:

1. Вы не должны быть программистом и не должны быть студентом топового технического ВУЗа. Студенты МГТУ, ВШЭ, МИФИ, МФТИ, МГУ не принимаются (хотя если вы сейчас не студент этих вузов, а потом вдруг станете, выгонять мы вас не будем). Речь конечно только о технических специальностях. Этот курс — эксперимент, целью которого является вырастить профессионала с нуля, а не объяснить какую-то одну технологию человеку, который уже что-то знает.

2. Вы должны быть готовы уделять на курс до 14-ти часов в неделю (чаще всего меньше), плюс дополнительно к обязательным заданиям и статьям уделять время на рекомендуемые книги. Про чтение художественной литературы, компьютерные игры и прочую трату времени придётся забыть на какой-то период.

3. Вам потребуется безлимитный Интернет. Регулярно потребуется скачивать различные среды разработки, библиотеки и подобное. Это файлы размером зачастую в несколько сотен мегабайт.

4. Обязательным является изучение английского языка. Иногда вам придётся либо печатать учебники из Интернета, либо покупать их в бумажном виде (не всё что я потребую купить может быть найдено в Сети). Как альтернатива — вы должны будете пойти на курсы английского. Максимум через пол-года курс целиком перейдёт на английский язык, включая общение на форуме. Учебные материалы с первой же недели будут на английском языке (необходимые комментарии будут даны на русском).

5. Вы должны хотеть получить профессию программиста или тестировщика, это является целью курса. Мне хотелось бы, чтобы через год ученик мог зарабатывать фрилансом, а через два года устраиваться на работу в большие компании.

Так же интересно, если ко мне захотят присоединиться другие учителя. Очень интересны люди, которые:

1. Являются профессионалами Java-разработки.

2. Являются профессионалами веб-разработки.

3. Профессионально занимаются тестированием.

4. Занимаются хантингом программистов и тестировщиков.

5. Веб-дизайнеры и верстальщики.

6. Системные архитекторы.

7. Фрилансеры, которые реально этим зарабатывают и знают как начать фрилансить, найти заказчиков и не боятся научить этому других.

8. Менеджеры в IT, которые знают, как построен процесс разработки приложений с точки зрения бизнеса.

9. Люди, занимающиеся маркетингом в IT.

10. Все прочие люди, профессиональные знания которых, как они считают, могут пригодиться человеку, занятому в IT-сфере.

Учитель должен будет делать всё то что я написал: отвечать каждый день на глупые вопросы на форуме, направлять учащихся на конкретные статьи, давать задания, проверять их. Подход «держите парни 20 книг, как прочитаете, отчитаетесь» не интересен. Каких-то лекций читать не надо, специальных учебных материалов готовить не надо, надо лишь направлять сообучение, указывать конкретные статьи в блогах и на сайтах, конкретные параграфы в книгах. Должна быть постоянная обратная связь, причём проект должен быть длительным. Конечно, если вы хотите рассказать только об одной какой-то теме и на этом закончить, длительным он быть не обязан, но в силу того, что мы не можем давать высокой нагрузки учащимся, даже краткий курс скорее всего окажется более длительным, чем вы ожидаете. Вероятно, кто-то из учителей сможет утолить и корыстный интерес: предложить в качестве домашнего задания реальную задачу для своего бизнеса или найти себе сотрудников, удалённых или настоящих. Учитывая, что на этом курсе скорее всего будут учиться высокомотивированные люди, я думаю, это будут хорошие сотрудники и в итоге специалисты. Ну и учитель, если проект вдруг станет успешным, всегда сможет с гордостью говорить, что это он его таким успешным сделал.

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

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

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

И ещё несколько комментариев о том, что будет в курсе по составу.

1. Не будет жести. Не будет Хаскеля и Лиспа, не будет сложных параллельных алгоритмов, не будет ассемблера и так далее. Для изучения этого куратор нужен куда в меньшей степени и при желании это ученик освоит потом сам. Основная задача — дать основное и вывести человека на уровень успешного прохождения собеседований.

2. Зато будет много надрочки на собеседования. Проходить собеседования — отдельный навык, причём для успешной карьеры чуть ли не самый важный, так что этого будет много.

3. Не будет математики. Ну вернее будет, но только самая тривиальная, чтобы человек хотя бы примерно понимал что такое O-нотация и мог решать задачки на собеседованиях на решето Эратосфена и числа Фибоначчи. Это всё совершенно не нужно IT-специалисту, но бизнес любит такие вопросы при отсеве соискателей. Глупо со стороны бизнеса, но с этим надо считаться.

4. Основная направленность будет в Java-программирование, поскольку пока это наиболее востребованный язык. (По этой причине профессионал Java нужен ну очень-очень сильно; я сам смогу дать лишь основы). Обзорно и неподробно будет рассказано и о других профессиональных областях, если найдутся желающие профессионалы, чтобы стать учителями. Было бы здорово при заинтересованности учеников подготовить так же тестировщиков/дизайнеров/верстальщиков. Но в целом никакой конкретной программы нет, никаких жестких временных рамок нет.

5. Проект полностью некоммерческий и будет оставаться таким. Никаких дипломов по окончании, никаких сертификатов не будет. Однако, в процессе обучения ученик будет выполнять нетривиальные проекты, которые смогут пойти в его портфолио работ. Для многих компаний это куда более весомо, нежели диплом или сертификат.

Когда наберётся какое-то количество желающих учиться, курс начнётся. Я ожидаю, что можно начать с 15-ю учащимися, впоследствии добирать учеников не планируется. Если 15 не будет набираться, но можно начинать и с меньшим числом учащихся, но только если их будет не меньше пяти. Но в этом случае мы всё же будем ждать, пока набирётся более крупный класс, посольку какая-то часть в процессе наверняка отсеится (выгонять никого не будем, подход будет индивидуальным, но кому-то наверняка курс просто не подойдёт и он решит уйти сам). Если ученики не будут набираться совсем никак, то проект отменяется и можно рассматривать эту заметку просто как философские рассуждения.

Учителя получат доступ до форума сразу же, хотя в какой именно момент они начнут доносить свою тему, будет решено совместно по ходу курса.

Желающим стать учениками или учителями, писать мне на почту heller@heller.ru или heller@riseup.net. Если мало ли я не буду вам отвечать в течение двух дней, напишите об этом в комментарии, оба почтовых ящика иногда бывает глючат и не принимают письма.

UPD. Класс уже сформировался, так что новых учеников набирать не будем.

24 комментария »

  1. Очень похоже на то, что ты описываешь: thinkful.com.
    Среднее между институтом и МООС.

    Comment by Денис — 28.06.2014 @ 17:30
  2. Зато ты точно стал графоманом :)

    Comment by Alinaki — 28.06.2014 @ 18:38
  3. Я могу выглядеть ненавистником с форума, но я просто хочу пересказать свой опыт.
    Проект провалиться со всех сторон.
    Со стороны учеников — обычный дистанционный некоммерческий курс заканчивавет в 100 раз меньше народу, чем начинает. Со стороны преподавателей — допустим я возьмусь, начну подсказывать людям, потом начнется на работе завал, девушка начнет дурить. Приоритеты перераспределяться и я или буду отписываться ученикам, либо вообще пропускать вопросы.
    Со стороны организатора — сейчас он только переехал, еще никого не знает и много скучает и сидит в инете. Через полгода он лучше познакомиться со старожилами и теми, кто только приехал, у него появиться досуг и общение, которое будет более интересно тратить на людей, чем на поддержку проекта.
    Все пунткы относятся и ко мне и немалому количеству моих знакомых. Так что идея с обучением кажется плохо реализуемой на практике.

    Однако, начало про обучение программистов — очень здравое.

    Comment by Антон — 28.06.2014 @ 21:29
  4. @ Антон:
    Я не строю больших иллюзий и надежд, это эксперимент. Если учитель не будет отвечать каджый день или будет отвечать не всем, то это скорее всего будет не большая проблема, учитывая что учителей будет несколько и что ученики могут отвечать друг друга. Учитель, в случае каких-то его проблем или очень сильной занятости, может появляться иногда и выступать в качестве регулярного эксперта, а не на постоянной основе. Основная масса вопросов скорее всего будет не сложная.

    Comment by Хеллер — 28.06.2014 @ 21:49
  5. Добрый вечер, Роман! Моjешь что-нибудь посоветовать по теории формальных языков? И почему в некоторых книгах автомат описывают не как трехосновную алгебру, а называют абстрактной машиной или вообще говорят что это пятерка вида (A, B, S, f, g)? Заранее благодарю.

    Comment by ЗулДжин — 28.06.2014 @ 22:27
  6. >>Так будет продолжаться до тех пор, пока из ученика не получится профессионал.

    Как-то оно расплывчато по срокам…

    Comment by t500s — 28.06.2014 @ 22:30
  7. @ ЗулДжин:
    Про автоматы как алгебры читать точно не стоит. Из конкретных книг могу назвать пожалуй только Уллмана «Automata theory». (Ну разве что если книга объясняет, что автомат — это моноид, но это пока рано о таком).

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

    Comment by Хеллер — 28.06.2014 @ 22:33
  8. @ t500s:
    Да, но конкретнее сложно пока сказать. Это совершенно точно не больше двух лет, скорее всего меньше. Будет зависеть от того насколько быстро будет продвигаться дело.

    Comment by Хеллер — 28.06.2014 @ 22:37
  9. Роман, а Вам удалось стать хакером? Если да, то было сделано для этого? Что можно почитать по веб-хакерству, ведь это несколько иное нежели реверс-инженеринг программный?

    Comment by Arthur — 29.06.2014 @ 07:42
  10. @ Arthur:
    Насколько я понимаю хакер это расплывчатое понятие, как и программист.

    Comment by ЗулДжин — 29.06.2014 @ 08:42
  11. @ ЗулДжин:
    Наверное Вы правы. Хотя мне кажется, люди в теме воспринимают хакера и программиста как спеца по информ.безопасности и девелопера, соответственно.
    Однако уточню, что Романа спрашивал именно про взлом программ и сайтов, ну и про мифические(??) угнать почту или аккаунт ВК

    Comment by Arthur — 29.06.2014 @ 11:56
  12. А я верю, что из идеи может что-то получиться. Сам недавно думал о необходимости чего-то такого, помогая девушке с онлайн-курсами. Главное, чтобы набралась критическая масса с обеих сторон.

    Советую изучить опыт этих ребят:
    http://pgbovine.net/hacker-school-residency.htm

    О возможности своего участия напишу позже на почту.

    Comment by roman — 29.06.2014 @ 14:21
  13. «Если мало ли я не буду вам отвечать в течение двух дней, напишите об этом в комментарии, оба почтовых ящика иногда бывает глючат и не принимают письма.»
    Немножко оффтопа, я понимаю почему ты не хочешь пользоваться Google Apps или почтой яндекса для доменов, но почему не попробовать бесплатный американский Zoho или немного платный австралийский Fastmail? По крайней мере будешь уверен в том что письма доходят и твой ящик не просматривают чуваки из отдела Э

    Comment by Антон — 29.06.2014 @ 21:25
  14. Вообще не понял начало статьи про ВУЗы и самообразование: подавляющее число знакомых IT’шников всех мастей начали программировать еще в школе, а ВУЗы, как правило, бросали, не вынеся того ада, что преподают. Буквально один или два человека знаю только из тех, кто начал учиться программированию именно в ВУЗе.

    Comment by непутин — 30.06.2014 @ 16:25
  15. @ непутин:
    Многие да, начали сами, но как правило рядом был кто-то, кто помогал и направлял. Ну а так если смотреть, например, на статистику с моей прошлой работы — самостоятельно программировать начал только я один, остальные в институтах. Если смотреть на знакомых из МИФИ, то там так же — многие конечно начали сами ещё в школе, но больше половины тех, кто стали программистами, начали в институте.

    Comment by Хеллер — 30.06.2014 @ 16:49
  16. @ Антон:
    На самом деле просто лень заморачиваться.

    Comment by Хеллер — 30.06.2014 @ 23:23
  17. На Сoursera недавно курс начался The Hardware/Software Interface. Полезная штука для начинающих программистов.

    Comment by Pavel — 01.07.2014 @ 21:15
  18. >>а институт его по распределению пихает в какую-нибудь контору
    >>на позицию джуниор-разработчика или тестировщика.
    lol wut?

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

    идея хорошая, но имхо, концепция недоработанная.
    в чем именно — сходу не скажу, но такое ощущение есть.
    на вскидку — отсутствие тебе (и учителям) материальных выгод с данного предприятия, отсутствие мотивации у учеников.

    Comment by greg — 03.07.2014 @ 02:08
  19. хотелось бы добавить, что возможно, отдельные видеоуроки окажутся полезнее (больше соотношение польза/труд).

    Comment by greg — 03.07.2014 @ 02:11
  20. Очепятка: «теситрование».
    Вроде очепятка: «отсеится». Отсеется?

    непутин написал:

    Вообще не понял начало статьи про ВУЗы и самообразование: подавляющее число знакомых IT’шников всех мастей начали программировать еще в школе, а ВУЗы, как правило, бросали, не вынеся того ада, что преподают. Буквально один или два человека знаю только из тех, кто начал учиться программированию именно в ВУЗе.

    Две трети моих знакомых математиков пошли в программисты. Упрощенная схема: «склад ума подходящий -> кодинг вроде интересный -> еще и полезный для расчетов -> еще и платят». Опять-таки, в ВУЗе может попасться заинтересованный преподаватель (не факт, что надолго, но все же), который утянет студента за собой.

    Comment by Anon — 08.07.2014 @ 22:13
  21. Хеллер, ваша проблема в том, что вы понятия не имеете, зачем люди приходят в ВУЗ. (И это не ваша вина.) Поэтому вы мечетесь между двух огней. С одной стороны МИФИ — говно. С другой стороны, когда вы начинаете кропать что-то свое, то сталкиваетесь с теми же проблемами.

    А корни — они в детстве. Когда вы пришли в свой первый ВУЗ, вы, наверное, думали что-нибудь в духе «ну вот я сейчас дурак-дураком, поэтому надо учиться! А меня сейчас научат уму-разуму, т.е. ВСЕМУ. Ну или хотя бы тому, чего я на самом деле хочу (стать хакером)». Ну то есть вы не знали, с чем столкнетесь.

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

    Так вот, основное заблуждение заключается в том, что в ВУЗе НЕ учат думать. Это может показаться странным, но вспомните хотя бы, в чем заключались вступительные экзамены: нужно было на скорость решить несколько типовых задач, чем больше, тем лучше. Ясно, что это можно сделать, только если УЖЕ знать, как они решаются. Если начать думать во время экзамена, то совсем ничего не успеешь.

    Но это и означает, что именно это в дальнейшем и будет требоваться от человека: уметь быстро решать типовые (тривиальные) задачи рассказанным методом. В этом и заключается определение профессионала. Многие считают, профессионал — это тот, кто за деньги, а любитель — это тот, кто бесплатно. И в этом есть часть правды, во всяком случае, такое определение дается в словаре. («Профессионал — человек, занимающийся чем-либо как ремеслом, а не по призванию.»)

    Но есть и подводная часть айсберга: профессионал — это тот, кто может решить поставленную задачу в срок (на приемлемом уровне качества). Любитель — он, может быть, решит ее гораздо лучше, оригинально, новым методом, красиво. Но сначала ему придется придумать этот метод. А ведь совсем не это требуется от профессионала: в конвейерной экономике основное значение приобретает время.

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

    Конечно, из всего этого не следует, что человек может быть либо профессионалом, либо любителем. Бывают профессионалы, которые растут в своем деле, потому что оно им нравится, это их призвание. Но вот это уже как раз и есть их личная инициатива. И это бывает редко. Мне, например, трудно себе представить сантехника или мусорщика по призванию. Это было бы очень грустно.

    Возвращаясь к ВУЗу, так в чем все-таки заключается цель студента? Ответ прост: получить диплом. Всему остальному он научится уже на месте своей работы. Вот там он действительно может научиться думать, когда столкнется с реальностью, с реальными задачами. Пусть даже они тривиальны, но все равно есть свои нюансы. И по-хорошему, специалисты с опытом как раз и должны этот опыт передавать на месте. Причем, так было всегда, не последние 100 (или 300) лет, а именно всегда. Я хочу процитировать человека, который в этом разбирается: «При любом отделе Предприятия (с большой буквы) должен быть отдел Школы, который дотачивает и доводит до совершенства понимание работников отдела.
    Следовательно, в этих отделах Школы должны работать лучшие специалисты Предприятия. Иначе как они объяснят работникам, как делать дело?! Но это ловушка! Вывести из Производства лучших специалистов, чтобы они обучали новичков — труднопозволимая роскошь. Как быть?
    Да просто не выводить их, оставить на своих местах и одновременно числить преподавателями Школы и доплачивать за обучение молодежи. Они ведь все равно обучают менее опытных. Любой из вас учился у такого более опытного товарища и обучал сам новичков. Это обязательная составная часть любого дела. Только обычные предприятия делают вид, что не замечают этого и не оплачивают этот труд.»

    Еще раз говорю, так было всегда. Это уже потом с приходом прогресса (и эпохи Просвещения) люди вдруг решили, что мы не будем ценить старое, мы будем пробиваться вперед, к светлому будущему, новое всегда лучше старого, стариковская мудрость не ценна. IT-сфера в этом отношении занимает особое положение, но об этом дальше.

    Итак, цель студента — всеми правдами и неправдами получить диплом, поскольку без него его просто не возьмут на работу. Поэтому нужно стряхивать всю эту интеллигентскую лапшу с ушей, которую вешают преподы студентам о том, что они вроде как делают Людей с большой буквы, начитанных, образованных и т.д., и что это и есть вроде как цель их работы — Личность! И которые теперь ноют об упадке образования. Это типичная дилемма советской интеллигенции: с одной стороны они вроде как за народ, за просвещение, но с другой они хотят быть привилегированным классом. А если все будут просвещенными, то откуда тогда возьмутся привилегии?

    Мир, возможно, и катится в варварство специалистов, но когда у интеллигентов была другая цель? Да и заебать человека не интересной ему литературой — это не очень-то и духовно. А попробуй не выучи/не посещай занятия, и ты уже американский шпион. Но ладно, это сложный вопрос.

    Что касается IT-сферы — на мой взгляд, более гнилой сферы человеческой деятельности и придумать сложно. Хуже только шоубизнес и наркоторговля (да и то на счет наркоторговли я не уверен). Мне встречалось много 18-летних юношей со взором горящим, которые почему-то решили, что сейчас они уведут все миллиарды у Билла Гейтса. Вот только сейчас, только выучу Яву, освою Линукс и что там еще, и вы поймете (предки), какие вы тупые (не знаете компьютера), а я — умный. Типичный конфликт отцов и детей. И никто из молодых программистов часто не понимает, что программист — это самая мелкая рыбешка на айтишном рынке. Во-первых, это давно уже не наука, где люди пытались изобрести искусственный интеллект, а именно, что рынок. А, во-вторых, деньги здесь зарабатывают те, кто задает общий тон: выдумывает новый формат, операционную систему, и т.д. То есть в основном американцы и японцы. Как говорится, больше всего денег зарабатывает не тот, кто покупает акции, а тот, кто их выпускает. Так же и здесь: если программисты всего мира пишут под твою ОС, то все деньги у тебя. Главное — это занять рынок.

    Что же остается программистам? Осваивать всё это множество новых форматов за свою зарплату, да надеяться выйти на пенсию раньше, чем их предметная область окончательно устареет. Очевидно, что в области, где всё постоянно меняется, невозможен никакой рост над собой. И самое интересное, что от программиста как раз не требуется умение думать. Требуются индусы, которые будут писать на C++ за еду. Те, кто умеет думать, они как раз и создают новые форматы, пытаясь оттяпать свою долю рынка.

    Comment by noname — 22.08.2014 @ 12:20
  22. @ noname:
    Половина того, что вы написали — это чуть ли ни слово в слово то, о чём я пишу уже несколько лет. Вы мне просто пересказали содержание моего блога. Зачем?

    В чём гниль IT — не понял абсолютно. Разве эти юноши со взором горящим, так уж плохи? Те, что в 25 лет уже потухли на работе бухгалтера или ещё кого типа лучше?

    Comment by Хеллер — 22.08.2014 @ 14:24
  23. Идеально описал мои неудачные попытки знакомства с современным программированием. Жаль, что я год не читал ваш блог и прозевал набор на экспериментальный курс. Надеюсь что-то из этого выйдет путное.

    Comment by Антон — 19.02.2015 @ 23:05
  24. Хеллер, твой обучательный форум еще жив? Материалы там еще остались?
    Как можно снова получить туда доступ? Я потерял ссылку и пароль/логин

    Comment by rustam — 13.09.2015 @ 19:29

RSS feed for comments on this post. TrackBack URI

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

This work is licensed under GPL - 2009 | Powered by Wordpress using the theme aav1
SEO Powered by Platinum SEO from Techblissonline