Наш комментарий
Сергей Бобровский
Программистов обычно принято делить на две категории - прикладные и системные. Если прикладников устраивает знание своей любимой среды MS VC++ или Delphi, то системщики любят ассемблер, обожают копаться в недрах ОС, настраивать утилиты, оптимизировать код. Прикладное программирование ближе к ремеслу, системное - к искусству. Илья - типичный системный программист (он так и подписался).
Помнится, в конце 80-х годов первая волна наших программистов, эмигрировавших в США, почти полностью состояла из системщиков. Спрос на их знания и сегодня очень высок. Где взять готового разработчика драйверов для NT или специалиста по мэйнфреймам, MVS, OS/390? Но PC Week/RE - издание, работающее на российском рынке корпоративных систем. Естественно, мои советы обращены к тем программистам, кому придется трудиться в отечественных компаниях, занимающихся созданием ПО автоматизации экономической, управленческой, организационной деятельности. Таких программистов в России сегодня абсолютное большинство. И работу легче всего найти именно по этому профилю.
Список профессиональных требований в своем “мини-опусе” я привел, конечно, очень урезанный. Это своего рода кандидатский минимум на звание программиста. Но так ли уж много времени надо на его освоение? Вот Windows API однозначно познается только на практике - со всеми его ошибками, неточностями, недоговоренностями и нюансами реализации.
MS Office, как признает сам Илья, “для юзеров”. Но с помощью MS Excel/MS Access легко и быстро пишутся клиентские места с красивым интерфейсом. Это распространенная практика.
Фактическим стандартом на встраиваемый макроязык становится VBA. Начать на нем программировать, зная любой другой язык, можно почти сразу.
Чтобы понять принципы клиент-серверной архитектуры (а что там вообще понимать?), хватит одного дня. Два десятка вечеров - чтобы с помощью хорошей книжки, которых сейчас в достатке, “поиграться” с “тяжелой” СУБД, изучить SQL (а там что изучать? один оператор SELECT?), реализовать тестовый примерчик. Это тоже, по большому счету, для юзеров!
Для понимания HTML нормальному человеку нужен один час. Поддержка TCP/IP с помощью “гнезд” на высоком уровне реализована практически во всех средствах разработки, даже в Winsock API разбираться не надо.
Другое дело компонентные технологии. Они пока реализованы довольно плохо, но за ними, по моему убеждению, будущее. Поэтому изучать их надо сегодня. В основе же этих технологий лежит фундаментальное понятие объекта. ООП - это средства проектирования, это UML, это Java. Это острие (cutting edge) современных ИТ! Без этого не прожить.
Тратить время на изучение устройства компилятора никакого смысла нет. Я давно руководствуюсь словами, сказанными несколько лет назад Михаилом Донским: экономить надо не 5 строк кода, а 50 - т. е. оптимизировать не код, а алгоритм. Да и по эффективности программа, сгенерированная хорошим оптимизирующим компилятором, нередко превосходит программу, написанную человеком.
Общий выигрыш при использовании высокоуровневых систем создания ПО очевиден, особенно при групповой работе. Проект понятен всему коллективу программистов (среди которых асов ассемблера скорее всего нет, это обычные мастеровые Паскаля и Си), выполняется качественно, быстро и в срок. Это главное. Да и ошибок компиляторов или библиотек самых разных ОС, которые реально мешали бы жить, я за 18 лет программистской практики не припомню. Более того, большинство ошибок как раз исправлены (скрыты) в готовых компонентах хорошего инструментария.
“Дебилизация” средств разработки - процесс совершенно естественный. От кодера прежде всего требуется одно - никакой инициативы! Алгоритм надо реализовать качественно и в точном соответствии с техническим заданием. Для этого и предназначены RAD-инструменты и языки 4GL.
В заключение искренне хочу пожелать успеха и Илье, и немалому числу других системных программистов. Поиск “некорпоративной” работы - хорошая идея. Правда, мне почему-то верится с большим трудом, что Илья так и будет всю жизнь писать на Си или Ассемблере драйверы для Windows NT. Например, на рынке всегда ценились хорошие проектировщики баз данных. И спрос на таких специалистов значительно выше, чем на разработчиков драйверов, и зарплата у них побольше.
К обозревателю PC Week/RE Сергею Бобровскому можно обратиться по адресу: spo@pcweek.ru.