пятница, 11 февраля 2011 г.

Профессия программиста – это удача или ловушка?

Публикую интересную статью, найденную в ЖЖ профессора из УдГУ.

Авторы:   Непейвода Н. Н., УдГУ, профессор, Рыков В. В., МФТИ, доцент.

Программирование и вообще информатика сейчас являются мощными аттракторами – такими же, как атомный проект и физика  полвека назад. Я устроился работать в банке программистом – хорошо это или плохо? Денег платят больше чем за измерения мезонов, но, по большому счету (а мы будем рассуждать в этом режиме), я учу там банкиров кликать мышкой. Тогда стоит подумать над такими вопросами  всем, кто занимается информатикой и не только:
1.       Что я хочу – программировать или решать задачи?
2.       Хочу я быть в подчинении у других или быть независимым?
3.       Что я буду делать через 10 лет, когда уже не смогу так быстро кодировать, придут ребята помоложе и пошустрее, а жизнь еще вся впереди?
Ребята, которых учат по стандартным программам, радуются, что могут быстро кодировать. Особенно это развито у их элиты: олимпиадников ACM. Само по себе такое умение очень хорошо. Но любое умение может вести либо к развитию в жизни, либо в жизненный тупик. Авторы встречали немало умных парней, которые примерно в 30 лет понимали вдруг, что как кодеры они уступают молодому поколению, которое и пишет быстрее, и новыми инструментальными средствами владеет. И многие из них, те, кто заранее не позаботился о широте своего образования и своей квалификации, начинали просто опускаться и спиваться.
Конечно, есть кодеры высочайшего класса, которые востребованы даже в 63 года. Например, Михаил Фурман, будучи уволен из Yahoo, немедленно был взят в Майкрософт.
Но он умеет писать системы на голой машине, у него за спиной легендарная школа команды Кронрода и Арлазарова.
А вот смогут ли стать такими нынешние великие олимпиадники? Какая у них школа за спиной, кроме собственных практических находок и методов решения спортивных задач по программированию? Так что это не путь для многих.
Давайте рассмотрим типичные развилки в жизни, которые могут стоять перед информатиками, какие психологические особенности и знания в каком случае нужны, и какие компетенции необходимы в преподавании для их развития.
Итак, начинаем с первой развилки.

Вы хотите программировать

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

Вы хотите решать задачи

Уже не раз указывалось, что решение задач в информатике совсем не то, что решение задач в математике. Вы получаете от начальника задачу, поставленную неполно либо неточно либо неправильно. А от заказчика почти всегда такую, которая обладает всеми тремя недостатками вместе и вдобавок изложена на каком-то диком жаргоне. Впрочем, экологическая ниша для тех, кто любит решать столь же точно поставленные вопросы, как в олимпиадах, есть. Математик-прикладник. Но их нужно очень мало, зато исключительно высокого класса. Здесь можно прожить всю жизнь на олимпиадном багаже. Но здесь трудны первые шаги. Нужно зацепиться за место в фирме, где решают содержательные и точные задачи. Таких немного.
Ну ладно, Вы готовы решать неточные и неправильные задачи. Тогда Вы на самом деле выбрали дорогу, исключительно трудную поначалу, но зато весьма удачную для дальнейшей жизни. Только Вам придется полностью сменить стиль интеллектуального поведения по сравнению с обычным поведением специалиста. Теперь Вы уже не программист. Вы информатик или аналитик. Вас очень скоро станут заставлять не хвататься за клавиатуру и писать код, а писать спецификации для других и контролировать их работу.
Но для аналитика необходимо четыре базовых умения.

Первое.

Уметь читать. Если Вы читаете на русском языке менее 200 страниц в час, Вы не умеете читать. Этому можно и нужно научиться. А английский нужно довести не менее чем до 100 страниц в час (лучше до уровня русского!).

Второе.

Интересоваться всем вокруг, даже тем, что кажется пока что ненужным. Лишь бы это было интересным и будило мысль. Никто не знает, откуда Вам прилетит следующая проблема.

Третье.

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

Четвертое.

Помнить, что здесь остановиться значит деградировать. Чтобы стоять на месте, придется всю жизнь бежать, а чтобы попасть в другое место --- бежать вдвое быстрее. Зато жизнь будет жизнью, а не существованием.

Наступает черед второго выбора.

Вы хотите, чтобы вами руководили.

В этом ничего плохого нет. 95% людей на самом деле теряются, когда вынуждены руководить сами собой, сами принимать решения. Тогда идите в фирму. Но выбор фирмы согласуйте со своими ответами на два других вопроса.

Вы хотите сами принимать решения.

Идите в свободный софт. Для чистого программиста это практически единственный шанс набрать такую квалификацию, которая позволит ему оставаться полезным до конца жизни. На фирме вы очень быстро деградируете, если вы просто программист, даже старший. Или же опять-таки становитесь аналитиками, а потом будьте независимыми консультантами. Или создавайте собственную команду (все равно, фирму или объединение фрилансеров).

И, наконец, как ни парадоксально, третий вопрос является следствием выборов, сделанных при ответах на первые два.

А теперь применим все предыдущие рассмотрения к тому, как же учить для того, чтобы выпускник мог реализовать все перечисленные траектории? Все нынешние «стандарты» и учебные планы направлены на удовлетворение ближайших нужд работодателей, то есть на самую примитивную из возможных траекторий: задачи ставите не Вы, и руководить будут Вами. Посмотрим, какие из компетенций, необходимые для реализации профессиональных траекторий более высокого уровня, здесь забыты.
1.       Общая культура. Она здесь жизненно важна на всех траекториях выше самой примитивной. Именно ее отсутствие приводит многих талантливых ребят к профессиональному и жизненному краху в среднем возрасте. И на самом деле она важна и для работодателей. Подавляющее большинство информатиков не знают, из какой области к ним прилетит новая задача. Таким образом, общекультурная составляющая учебных планов должна быть резко повышена. Беда здесь в том, что, если подходить к этому вопросу действительно системно, эту общекультурную составляющую невозможно стандартизовать. Культуре учат не курсы, а конкретные люди. Любая попытка стандартизовать содержание курсов здесь неизбежно приводит либо к их вырождению, либо к игнорированию стандарта.
2.       Скорочтение. Когда один из авторов впервые сделал доклад на данную тему, его буквально атаковали преподаватели вузов: а как учить этому действительно необходимому профессиональному навыку?
3.       Абстрактная математика: алгебра, топология, алгоритмика. Здесь чуть-чуть сломаны за последние годы предрассудки о монополии анализа в математическом образовании, но они все еще висят страшным грузом. И самым главным препятствием здесь является демонстративное невежество многих образованных по традиционным программам математиков в области нечисленной математики. Они «учат» на 1 курсе  логике, не умея правильно написать простейших логических формул, теории множеств, не представляя ее отношений с информатикой. Они имеют полностью извращенное представление о том, чему надо научить студентов, натаскивая их на решение стандартных задач. И этих преподавателей поощряет вся система министерских контрольных или тестов, которые разрабатываются точно такими же людьми. Но, впрочем, эта система безнадежно больна сама по себе. Она исходит из представления о высшей школе, как о батальоне, где все должны идти в ногу.
4.       Системный и логический анализ.
5.       Профессиональный иностранный язык.

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

Критику статьи можно почитать здесь:
http://mishafurman.livejournal.com/2010/10/20/
http://mishafurman.livejournal.com/2010/10/21/

2 комментария: