Пожалуй, единственное, в чем мы сравнялись с американцами, где мы идем, что называется, "ноздря в ноздрю", - это нехватка квалифицированных программистских кадров. Впрочем, "программист" - понятие многозначное. Часто программистами называют себя даже продвинутые пользователи, умеющие писать скрипты или составлять сложные командные файлы. И все же программист - с точки зрения профессии - нечто совершенно иное. Формально профессионалов-программистов можно разделить на следующие категории:
Классификация, разумеется, условная. Однако традиция объединять всех термином "программист" существует, и мы тоже не будем ее нарушать.
Но прежде, как нам кажется, надо ответить на вопрос: стоит ли становиться программистом? Или, если точнее, имеет ли смысл "юноше, обдумывающему житье", осваивать программирование и поможет ли это его будущей карьере? Безусловно, да. Спрос на квалифицированный труд программиста в обозримом будущем будет только расти. Более того, он уже сейчас объективно существует и даже превышает предложение. Так что проблемы трудоустройства программистов - вовсе не причина для программистов оставаться без дела. Другое дело - куда приложить силы. Начинающий программист может закрепиться на рынке, участвуя в проектах по автоматизации. Перспективен такой алгоритм: начните с разовых заказов, потом можно перейти к сдельной работе по контракту и тогда уже целесообразно искать постоянное высокооплачиваемое место.
При этом, впрочем, не следует забывать о фундаментальном образовании - желательно иметь высшее математическое. И еще: практически невозможно обойтись без знания английского языка. Таковы базовые требования к профессии программиста.
Теперь о знаниях специальных - чему учиться и что осваивать? Стандартным языком для создания коммерческих приложений остается Си++ (плюс умение работать с промышленными библиотеками, например с MFC). Этот язык низкого уровня позволяет поместить в исходный текст приложения только то, что нужно пользователю. Для автоматизации отдельных процессов в конкретной фирме приложения часто пишут на языках более высокого уровня (например, при создании баз данных), а также используют средства, позволяющие быстро получить исходный текст (Delphi и т. п.). Наконец, часто повторяющиеся операции можно автоматизировать с помощью языков высокого уровня, таких как VBA.
Однако многие современные средства программирования обладают универсальными инструментами, позволяющими решать самые разнообразные задачи. Единственное, от чего хочется предостеречь, так это от чрезмерного увлечения "модными" языками и средствами. Например, активно рекламируемый язык Java до сих пор в подавляющем большинстве используется лишь для украшения Web-страниц в Internet, а вовсе не для создания коммерческих приложений.
Тем не менее специфика профессии программиста - быстрое устаревание профессиональных знаний. Поэтому совершенно необходимо постоянно следить за состоянием отрасли и повышать уровень профессиональных знаний. Что касается способов самостоятельного повышения квалификации программиста (это в равной степени относится и к начинающим, и к переквалифицирующимся) - их достаточно. Есть специальные курсы. Есть журнальные публикации и отдельные издания, последние, к сожалению, чаще написаны на английском языке (но уже появились и переводы), да и отечественные авторы предлагают достаточно качественные учебные пособия по языкам и средствам программирования. Есть, наконец, Internet, где при желании можно найти почти все. Но самое главное именно для программистов - практика, пишите коды, набивайте руку. Начинающим советуем взяться за задачу по силам и эффективно ее решить, опытным - постоянно совершенствоваться и осваивать новое.
Опыт работы компьютерного кадрового агентства показывает, что ценность программиста возрастает в том случае, если он также имеет некоторые знания в смежных областях, например владеет специализированными бухгалтерскими, складскими и т. п. пакетами, или знаком (даже на самом элементарном уровне) с работой администратора сети.
Петр Левицкий - консультант агентства Enter; E-mail: enter@osp.ru Георгий Поляков - специалист по программным технологиям компании "КонсультантПлюс"