четверг, 26 апреля 2007 г.

Это вам "не хухры-мухры"!

Продолжение. Начало "Молоко на губах"
То, что вы могли видеть в фильме "Хакеры"- мелкий детский лепет. Мир IT гораздо интереснее и заковырестее. Как делаются программы? Кем лучше быть- программистом или менеджером? Чтобы понять ответы на эти вопросы прочтите очередную главу этого столь долго затянувшегося приступа графомании.
Попрошу так же учесть, что на практике процесс производства программного обеспечения может весьма сильно отличаться от описанного. Здесь приведен некий средний вариант процесса.

Ранее были рассмотрены различные специализации, и было упомянуто, что у прикладных программистов есть более узкая специализация: разработчик игр, разработчик интерфейсов, разработчик серверных систем и т.д. К тому же, описание специализаций, не привязанных к конкретным должностям, не вписанных в технологическую цепочку производства программного продукта, воспринимается запутанно и мало что проясняет. Поэтому в этой части статьи будет дано описание типовой технологической цепочки производства программного продукта. Наиболее полно данная цепочка реализуется в софтверных компаниях. В отделах АСУ она значительно урезана. Я буду опираться в своем описании на полную, развернутую технологию производства ПО. Бюрократическую сторону (подписание договоров и пр.) производства я буду, по возможности, опускать.
Все начинается с заказа. Это может быть внутренний заказ отделу АСУ, или внешний заказ от клиента, или разработка коробочного продукта. Для больших внешних заказов клиент может провести конкурсные торги. После того, как клиент проявил интерес к предложению от фирмы и готов далее сотрудничать или для коробочной продукции принято решение о целесообразности ее разработки, заказ на разработку передается в IT-отдел, начальнику IT-отдела. Начальник отдела изучает информацию:
  • о клиенте,
  • о его заказе,
  • о приблизительной стоимости проекта "на глаз",
  • оценивается "крупность" клиента ("потянет" ли он свои "хотелки", т.е. насколько серьезно его воспринимать),
  • о перспективности клиента (насколько вероятно, что в будущем он еще раз обратиться с заказом),
  • для коробочной продукции оценивается объем рынка и его динамичность.
На основании этой информации начальник отдела назначает руководителя проекта, обладающего соответствующим опытом, знаниями. С этого момента новый проект начинает свою жизнь, назначенный руководитель проекта несет полную ответственность за выполнение проекта.
Основным документом проекта является техническое задание (ТЗ). Именно оно определяет объем работы, на основании его формируется бюджет проекта, составляется план работ. Любые претензии клиента по проекту будут всегда рассматриваться через призму технического задания, что сделано, что не сделано. Поэтому, если вы, как программист, участвуете в проекте, то никогда не основывайтесь в своих действиях на устной договоренности! В первую очередь, Вас должно волновать выполнение ТЗ, а уж потом все остальное. Составлением ТЗ занимается аналитик. Аналитик вместе с руководителем проекта изучает задачу во всех подробностях и формализует задачу. Если задача по своим масштабам большая или при ее решении есть ряд технологических трудностей, то к составлению ТЗ привлекаются системный архитектор и ведущий программист. Часто их на данном этапе используют для подстраховки, т.е. задача не сложная, но мало ли что – лучше лишний раз переспросить, проконсультироваться, чем потом залатывать прорехи в ТЗ. Системный архитектор подскажет, как лучше решить задачу, сделает примерный набросок архитектуры системы. Результатом его работы будет эскизный проект, обобщенная структурная и функциональная схема программы. Ведущий программист укажет, с помощью каких технологий лучше реализовать предложенную архитектуру проекта, а также подскажет руководителю проекта кто из программистов лучше подойдет для реализации той или иной части проекта. Результатом работы ведущего программиста при составлении ТЗ является частичное техническое задание (ЧТЗ). Техническое задание утверждается начальником отдела и подписывается заказчиком вместе с планом выполнения работ.
После формализации задачи, подписания ТЗ, формирования бюджета проекта руководитель собирает команду, которая будет заниматься реализацией проекта. Для получения людей в свой проект руководитель дает заявку координатору проектов (если в организации нет должности координатора проектов, то начальнику IT-отдела). Координатор оценивает наличие свободных в данный момент программистов или тех, у которых нагрузка по текущим проектам невысокая и утверждает окончательный список команды проекта.
К тому времени руководитель проекта занимается выделением необходимых технических ресурсов для реализации проекта. Возможно, потребуется приобретение дополнительных компьютеров, расширения штата имеющих программистов из-за нехватки имеющихся работников и т.п.
Заявка на приобретение дополнительной техники подается в отдел системного администрирования. Туда же подается заявка на создание необходимых для выполнения проекта сетевых ресурсов (создание рабочей группы в домене, рабочей папки, нового проекта в системе контроля версий и прочее). Старший системный администратор обрабатывает заявку на закупку техники. В соответствии с принятой политикой закупок техники на предприятии по заявке выбирается конкретная конфигурация ЭВМ, добавляется требуемое оборудование для подключения техники к локальной информационной компьютерной сети организации и осуществляется закупка. Системные администраторы осуществляют настройку компьютеров и установку ПО:
  • «сетевики» прокладывают локальную сеть.
  • Специалисты Help-desk настраивают компьютеры.
  • Администраторы сервисов прописывают новые компьютеры в сетевых сервисах, создают под проект сетевые ресурсы.
Если требуется дополнительный найм специалистов, то по заявке руководителя проекта, отдел кадров подает объявление о найме и осуществляет первый, грубый отбор претендентов. Тем, кто только начинает строить свою карьеру это важно знать. Первый контакт с вами будет осуществлять не технический специалист! Тут вам не надо «умничать» про новые технологии и показывать свои глубокие знания. Так как кадровик не технический специалист, то он просто по бумажке проверяет то, что указано ему в заявке на соответствие с тем, что указано в резюме, трудовой книжке, дипломе. Совершенно тупо сравнивается: в заявке на найм есть слово Delphi, в резюме тоже есть слово Delphi – значит, подходит. Также проводится общая ознакомительная беседа. На данном этапе надо быть просто приятным человеком, с которым захотят иметь дело. Затем уже претенденты направляются к руководителю проекта, который проведет с ними техническое интервьюирование. Если в проект уже назначен ведущий программист, то интервьюирование может быть очень подробным – вас погоняют по всему спектру технологий, которые предположительно будут использоваться в проекте. Именно на этом этапе часты письменные задания на месте или даже домашние. Окончательное утверждение кандидатуры осуществляет начальник отдела. Часто это бывает уже третье интервьюирование. Оно общее, не техническое и там надо окончательно урегулировать вопросы зарплаты, режима работы и прочее. Руководитель проекта до этого может вам рассказать о внутренних порядках, о зарплате, но сам он изменить ничего не может. Тут уж все вопросы к начальнику отдела. И, если обоюдное согласие достигнуто, то считайте, что вы приняты.
Итак, у проекта есть руководитель, подготовлена техника, выделены люди, недостающие наняты. В дело вступает системный архитектор. Он уже ранее подключался к проекту при составлении ТЗ. Теперь его задача – плотно курировать проект. По обобщенным структурным и функциональным схемам составляется детализированные структурные и функциональные схемы, которые до мельчайших подробностей обсуждаются с ведущим программистом проекта. Ведущих программистов в проекте может быть несколько. Это делается в том случае, когда проект очень большой и разбивается на части. Реализация каждой части проекта поручается отдельному ведущему программисту. Ведущий программист проекта разбивает проект на отдельные задания и выдает их программистам проекта для написания самостоятельных модулей программы. Выполненные задания сдаются программистами своему ведущему программисту, который осуществляет сборку модулей и компилирует проект в целом (как еще говорят, выкладывает билд проекта).
На основе билда инсталляторы (тоже разновидность узко специализированного программиста) готовят инсталляционный пакет. Пакет попадает на тестирование к тестировщикам. Тестировщики формируют список ошибок с подробным описанием действий, при которых возникла ошибка. Ведущий программист назначает того, кто устранит ошибку (т.к. ведущий программист по описанию ошибки примерно представляет, в каком модуле произошла ошибка, и знает, кто этот модуль делал).
Параллельно работе над программным кодом идет разработка документации по программе, пишутся help-файлы. Этим занимаются "течрайтеры" (tech. writer), т.е. технические писатели в переводе.
В проекте выделяются специалисты по интерфейсу, которые прорабатывают графический интерфейс взаимодействия программы с пользователем. Разрабатываются экранные и печатные формы. Отслеживается, чтобы все формы имели единый стиль.
Код программы, написанный разными программистами, должен быть единообразен, читаем легко, что облегчит в дальнейшем его повторное использование. Для этого код проверяет отдел контроля качества.
Стажерам, как разнорабочим, в проекте поручают выполнение мелкой работы: съездить к заказчику и установить модуль, изменить у заказчика настройки, сбегать к тестировщикам, чтоб они конкретно показали, где у них ошибка "выскочила". Нередко стажерам даже отдельного рабочего места не выделяют.
Постоянно идет согласование работ с заказчиком. По плану ему сдаются промежуточные этапы работ. По ходу реализации проекта производится уточнение и ТЗ может быть скорректировано. Это оформляется дополнительным приложением. По мере продвижения работ программистам часто приходится возвращаться к уже написанным модулям и изменять их либо по требованию заказчика, либо по требованию отдела качества, либо из-за выявленной ошибки при тестировании, либо при решении руководителя проекта, системного архитектора, ведущего программиста изменить что-то в проекте. Часто используется итерационный способ разработки. Это когда в программе реализуется сначала основная функциональность, а потом по мере уточнения требований заказчика и корректировок в проекте выполняются более мелкие проработки в программе.
Чувствуете, как все непросто получается? Программисты, "течрайтеры", интерфейсы, инсталляторы, тестировщики, отдел качества – и все делают работу параллельно, всех их надо вместе свести, состыковать. Вот она, адская работа руководителя проектов! В помощь руководителю проектов разработаны различные методологии проектирования. Однако чаще эти методологии еще больше затрудняют работу. Слишком много вокруг них маркетинговой мишуры. Начинающим выстраивать свою карьеру программистам я рекомендую полностью игнорировать в объявлениях о работе требование знать методологии проектирования RUP и т.п. Если вакансия вам нравиться, а там стоит такой пунктик, и вы не знаете вообще никаких методологий, то все равно смело шлите свое резюме. Скорее всего, сам работодатель за маркетинговой болтовней до конца не понимает и не знает этих методологий. Просто так сейчас модно.
Когда программа закончена, наступает следующий этап- сдача проекта. Заказчику предоставляется финальный релиз программы и, если все выполнено в соответствии с ТЗ и у заказчика нет претензий к исполнению заказа, то подписывается акт выполненных работ. Очень часто на этом этапе заказчик предъявляет множество замечаний и новых "хотелок". Вот тут четкое следование ТЗ играет свою главную роль! Если все выполнено строго по ТЗ, то, как правило, заказчик подписывает акт. В противном случае в дело вступают юристы. Это еще не все! В крупных организациях неповоротливая бюрократическая машина может задержать оплату выполненных работ надолго. Мне известны случаи задержки на 2 года! Все это время руководитель проекта должен держать ситуацию на контроле. Проект только тогда считается законченным, когда по нему будет произведен полный расчет с заказчиком, всем участникам проекта выплачены премии, а дело сдано в архив.
Ну, как? Сложно? Интересно? Вот такая вот она, профессия IT!

вторник, 24 апреля 2007 г.

Специализация

Продолжение. Начало "Молоко на губах"

Часто встречается в Интернет-форумах такой вопрос: "Чем перспективней и интересней заниматься: 1С, Oracle, C++…?" Ясно, что никто кроме вас самих на него не ответит. Ответ зависит в первую очередь от ваших личностных качеств, вашего опыта (как жизненного, так и в одной из областей специализации), а также от того, в каком регионе вы проживаете, планируете ли вы переезжать и т.п. В деле выбора специализации можно обрисовать их общие черты в виде справочной информации, на которую вы можете опереться в вашем выборе. В Интернете достаточно информации по этой теме, например http://computery.ru/upgrade/numbers/2006/269/likbez_269.htm. Но я позволю все-таки себе большее, чем общее описание, и в конце статьи дам конкретный ответ на вопрос: "Куда податься?".

Программист
Выделяют две крупные группы программистов: прикладные программисты и системные программисты.
Системные программисты пишут программы, обслуживающие работу аппаратных блоков, как компьютера, так и устройств к нему подключенных. Например, это может быть разработка драйверов устройств (звуковой карты, видеокарты и т.д.), либо, например, написание сервисов (почтовый сервер, web-сервер). На этапе стажера можно не понимать еще четких различий между этими двумя группами программистов, проще уяснить внешнее различие. Системный программист не работает с конечным пользователем. Для него конечным пользователем является прикладной программист, системный администратор. Бухгалтера, экономисты, секретари при возникновении проблем в работе с компьютером никогда не общаются с системными программистами. Они даже не знают, что такие существуют. Конечная задача системного программиста – обеспечить связь прикладных программ с различными устройствами. Например, когда текст набирается в Word’e на клавиатуре, то буковки сначала из клавиатуры «извлекаются» драйвером клавиатуры, а потом уже Word отображает нам их на экране. Вот как раз эту программу ‑ драйвер клавиатуры, и разрабатывает системный программист. Особенностью "системщика" является низкоуровневая работа вплоть до программирования напряжения на отдельных выводах микросхем. Навыки разработки интерфейсов взаимодействия с пользователями (всякие кнопочки, формочки, подготовка отчетов) здесь не нужны. Работа "системщика" требует тщательной отладки программы и немалой изобретательности в отладке, так как отладочные средства для "системщиков" развиты куда менее чем для "прикладников".
Основные языки программирования: C, C++, Delphi, Assembler. Самые используемые здесь языки программирования ‑ C, C++. Это самые трудно осваиваемые языки программирования. Их языковые конструкции менее выразительны, чем у других современных языков программирования. Но это в данном случае не является важным параметром. Для "системщиков" важнее, чтобы язык программирования позволял программировать не только высокоуровневые функции, но и напрямую программировать аппаратуру, а также генерировал компактный бинарный код.
Вакансий "системщиков" количественно меньше, чем прикладников. Следовательно, трудоустроиться труднее. Уровень подготовки требуется очень высокий. Подготовка одного "системщика" занимает много времени, не менее 3 лет. Поэтому среди системных программистов очень большой разброс в оплате труда – работодателю сложнее найти замену опытному "системщику", и для удержания специалиста платится ему большая зарплата, в то время как начинающий, малоопытный системщик практически бесполезен. Бесполезен потому, что поднять его квалификацию на должный уровень ‑ это длительный по времени процесс. Дешевле данное время потратить на то, чтобы найти нужного по уровню квалификации специалиста. Но сколь ни была бы привлекательна зарплата "системщика" и его статус незаменимости в своем кругу, все же зарплата прикладного программиста соответствующего уровня подготовки выше.
Работа "системщика" увлекательна и, наверное, самая интересная из всех остальных специализаций. Именно "системщики" занимаются инновациями, которые потом подхватывают "прикладники". Именно системщики стоят на переднем рубеже развития информационных технологий. Если описать это направление IT кратко, то получится что-то вроде: "Жутко интересно, но очень сложно".
Прикладные программисты работают на конечного пользователя. Именно они занимаются настройкой у бухгалтеров 1С, пишут самопальные программы складского учета, скрин-сейверы, милые маленькие программки (типа "аськи"). У прикладных программистов можно выделить три большие группы: собственно, прикладные программисты, программисты баз данных и программисты скриптов. Часто "прикладники" работают на оба "фронта": и как "прикладник" и как программист БД.
Основные языки программирования "прикладников": C++, Delphi, Java, C#, Visual Basic. Java и C# появились позже, чем C++ и Delphi и реализуют самые современные модели программирования. Программировать на них легче, чем на C++ и Delphi и быстрее. Поэтому для новых проектов, как правило, выбираются либо C#, либо Java.
Если сравнивать эти языки программирования, то C++ для прикладного программирования весьма тяжел, и разработка на нем занимает существенно больше времени. Заказные системы на нем, как правило, не делаются – заказ клиент отдает тому, кто выполнит работу быстрее, а как я уже говорил, на C++ быстро не получится. Его используют софтверные компании для разработки коробочных продуктов. Например, такие именитые софтверные компании как Microsoft, Intel, Oracle и т.д. Это мощный язык программирования, позволяющий разработать систему любой сложности.
Delphi особенно популярен в России, но позиции свои сдает языкам программирования Java, C#. За границей он мало известен из-за неудачной маркетинговой политики его производителя. Программировать на нем проще и гораздо быстрей, чем на C++, при этом Delphi позволяет разрабатывать не менее сложные системы, чем C++. Чаще всего его можно встретить в отделах АСУ предприятий. Там он используется для автоматизации внутренних процессов предприятия.
Visual Basic в среде российских программистов воспринимается как "несерьезный" язык, хотя в мире является весьма распространенным языком программирования. Писать на нем программы легко, быстро. Используется такой язык для автоматизации бизнес-процессов на предприятиях и занимает ту же нишу, что и Delphi. Однако по гибкости конструкций, маштабируемости сильно уступает последнему. Часто именно плохая маштабируемость приводит к тому, что предпочтение отдается Delphi. Ведь в ситуации, когда заказчик хочет что-то дописать к системе или в процессе автоматизации надо добавить пару функций характеристика маштабируемости языка программирования начинает играть ключевую роль, наравне со сроками реализации.
Языки программирования Java и C#, как молодые языки программирования, по сравнению с C++, Delphi, Visual Basic явно выделяются тем, что в них учтены современные требования к языкам прикладного программирования. Сразу скажу, что это языки программирования ТОЛЬКО для прикладных задач, не для системных. Данные языки программирования очень выразительны, красивы, они легко расширяемы, т.е. дописать новую функциональность на них легче, чем на других языках программирования.
"Прикладники" ‑ самая многочисленная группа программистов. Наиболее ценятся те "прикладники", которые умеют также разрабатывать базы данных. Для подготовки "прикладника" требуется 1-2 года. Рынок труда "прикладников" весьма текуч, вакансий много и зарплаты на очень хорошем уровне, уступая лишь зарплатам программистов баз данных и некоторым специализациям программистов скриптов. Выбор направлений деятельности самый широкий среди всех групп программистов. Работа предполагает немало креатива.
Стоит отметить, что "прикладники" могут узко специализироваться на каком-либо одном виде деятельности: разработка игр, разработка интерфейсов, разработка многопоточных систем, серверных систем и т.п. Тут уж что называется "…выбирай на вкус!".
Программисты баз данных занимаются разработкой баз данных, их структуры и интерфейса работы с данными (в виде хранимых процедур, просмотров, таблиц). Наибольшее распространение получили СУБД: Oracle, Microsoft SQL Server, MySQL, Interbase, MS Access, FoxPro.
Oracle наиболее почитаема среди вышеупомянутых СУБД. По функционалу она значительно превосходит другие СУБД. Использование Oracle в новом проекте гарантирует, что со временем, при разрастании функциональных возможностей проекта, БД "хватит", чтобы удовлетворить потребности заказчиков. Это очень важно, т.к. неверный выбор СУБД вначале потом больно ударит по проекту. Нет более тяжелой задачи, чем переделать ВЕСЬ накопленный годами код под другую СУБД, а также перевести на новую СУБД клиентов, уже использующих вашу систему (иначе вам придется пожизненно поддерживать две ветки проекта). Поэтому очень часто можно встретить использование Oracle даже в тех проектах, где его мощи и функционала и подавно не надо – авторы проектов по привычке перестраховываются. Основное использование Oracle – крупные заказные системы, внутренняя автоматизация предприятий.
Другим распространенным сервером БД является MS SQL Server. Он менее распространен, чем Oracle и функционал у него меньший. Однако в мире существует не так много задач, которые не "по зубам" этой СУБД. Предпочтение этому серверу часто отдается из-за того, что производитель – компания Microsoft, что гарантирует хорошую совместимость с другим ПО этой компании. А это немаловажный фактор при выборе СУБД. То, насколько красиво MS SQL Server сопрягается с другими пакетами этой компании, например, MS Access, MS Office, .NET вызывают у разработчика восторг. Очень мощно, просто, изящно и гладко! Самое "то" для метода "лоскутной" автоматизации на предприятиях, где MS SQL Server успешно и используют.
На Интернет-серверах подавляющее превосходство у MySQL. Это маленький и высокопроизводительный SQL-сервер. Своей производительностью он обязан очень скромной функциональности. Но в данном применении производительность важнее функциональности. Именно поэтому этот сервер прочно обосновался на Интернет-серверах.
Большинство не знают, что многие из программ функционируют на базе Interbase. Этот SQL-сервер часто применяется для небольших систем автоматизации, в коробочных продуктах используется как встроенная БД. Сервер имеет небольшую функциональность по сравнению с MS SQL Server и Oracle, но вполне достаточную для задач среднего уровня сложности. При этом он весьма скромен в требованиях к аппаратуре и неприхотлив в эксплуатации. Именно поэтому многие коробочные и заказные системы делаются с использованием Interbase.
MS Access и FoxPro относятся к файл-серверным БД. Часто они встречаются в старых системах автоматизации. Новые системы все же предпочитают сейчас делать на базе Oracle, MS SQL Server. В силу особенностей файл-серверной архитектуры, их используют на небольших предприятиях. Несомненным плюсом MS Access, FoxPro для малых предприятий является то, что они имеют очень простой интерфейс, кучу "мастеров", так что развернуть систему автоматизации "по-быстрому" с их помощью может и стажер.
Программисты баз данных являются одними из самых высокооплачиваемых групп программистов. Выше оплачиваются только некоторые "скриптовики". Вакансий много, текучка кадров высокая. Работа, как правило, связана с какими-либо учетными системами и требует тщательности, внимания. Элемент творчества у программистов БД практически отсутствует.
Программисты скриптов ‑ это весьма разнородная группа программистов. Название условное. Сюда относятся web-программисты, программисты 1С, Галактики, Axapta, SAP, программисты VBA. Это узкоспециализированные группы со своей спецификой, сильно отличающей их от других групп прикладных программистов.
Web-программисты занимаются программированием сайтов. Основные их языки программирования: HTML, Javascript, Perl, PHP. Программирование высокоуровневое и гораздо проще, чем программирование на C++, Delphi и др. языках программирования прикладных программистов. Легкость HTML свое дело сделала и сейчас оплата web-программиста в 1.5-2 раза ниже, чем у типичного "прикладника" из-за того, что в этой области прикладного программирования очень много молодежи, студентов. Они используют эту работу как подработку и сильно сбивают цену профессиональным web-программистам. Сама специализация web-программиста интересна и креативна.
Программисты 1С, Галактики, Axapta, SAP, программисты VBA представляют собой весьма разнородную по составу группу, с очень разными уровнями зарплат. Область деятельности у них одна и та же – автоматизация предприятий. Здесь встречаются и масштабные проекты с большими гонорарами, и скучные мелкие текущие задачи (подготовить отчет, добавить поле, запрограммировать формочку) автоматизации на предприятии. Уровень оплаты может колебаться от 0.5 до 2 раз от зарплаты среднего "прикладника". Но для всех этих систем автоматизации действует одно правило: опытный специалист со стажем работы от 5 лет смело может рассчитывать на зарплату не менее чем в два раза выше, чем у прикладного программиста. Вакансий по этим системам много, одно плохо – как и у web-программистов, здесь много студентов и молодежи, сильно сбивающей цену своей готовностью работать буквально "за хлеб и воду".
Кроме знания языка программирования и своей предметной области от программиста часто требуют умение пользоваться системой контроля версий, знание различных методологий программирования, умение работать в команде, а также знание иностранных языков, хотя бы на уровне понимания технической литературы.

Системный администратор
На сисадминов часто вешают обслуживание всех техники, имеющейся на предприятии, вплоть до электрочайника в столовой! Такое часто происходит на малых предприятиях. Хотя уже давно сформировались специализации в этой профессии:
  1. Help-desk.
  2. "сетевики".
  3. администраторы различных сервисов (домена, web-сервера, БД и т.п.).
Help-desk – это те самые "мальчики", которых зовут все, если вдруг что случается с компьютером. Их задачи – установка, настройка и обслуживание прикладного ПО на компьютерах пользователей; обучение пользователей и помощь в работе с программой. Работа нервная и мало оплачиваемая. В основном на нее идут студенты, которые потом дорастают до "сетевика" или администратора. От help-desk работника требуется умение работы со всем распространенным ПО на уровне опытного пользователя. Долго на такой работе не сидят. Из обязательного комплекта требований в вакансии help-desk’a: знание MS Office, 1С, Windows (клиентские ОС), Internet (имеется ввиду Интернет ПО).
"Сетевики" занимаются прокладкой кабелей (часто прокладку кабелей выделяют как отдельную специализацию) и организацией связи между компьютерами. При настройке сети их работа заканчивается, когда между узлами сети проходит "пинг". Наиболее ценны те "сетевики", которые специализируются на аппаратуре и ПО определенного производителя. Например, особенно ценны специалисты по аппаратуре Cisco, которая широко используется при развертывании информационных компьютерных сетей. Работа не несет в себе даже налета творчества, спокойная и рутинная. Зарплата ниже, чем у программистов и администраторов, но узкий специалист (например, по Cisco) по зарплате легко выходит на среднюю планку зарплат программистов. "Сетевики" должны уметь обжать кабель, установить хаб, свитч, маршрутизатор, коммутатор, модем, "поднять" VPN-канал, подключить клиентские места к хабам, свитчам и пр. настроить сетевое окружение на рабочем месте и командой ping удостовериться в наличии связи.
Администраторы различных сервисов. Здесь единой планки для оценки нет, как и у программистов скриптов все определяется конкретной специализацией. Можно выделить две крупные группы администраторов по типу обслуживаемых ОС: администраторы Unix-систем и администраторы Windows-систем. Зарплата у администраторов, как правило, меньше, чем у программистов. Самая верхняя планка зарплат выходит к верхней планке зарплат программистов, но это редкие случаи. Часто администраторам приходится заниматься администрированием нескольких сервисов сразу. Работа, в основном спокойная, как и у "сетевиков", творчества никакого. Типичный список требований к администраторам: настройка и обслуживание контроллера домена, почтового сервера, web-сервера, сетевых сервисов (DNS, WINS, DHCP), офисной АТС, сетевой печати. Для администратора есть множество курсов повышения квалификации, окончание которых способствует повышению зарплаты.
У остальных должностей (тестировщик, аналитик и выше) специализаций нет. Итак, описание специализаций закончено и мне осталось дать рекомендации, как я, и обещал сделать вначале, для тех, кто все же не может определиться, куда податься:
  1. Вы обладаете ярко выраженным математическим складом ума.
  • Если вы со школы увлекаетесь программированием, у вас на письменном столе сейчас стоит паяльник и канифоль, то наилучший выбор для вас – специализация системного программиста, изучайте C++.
  • Если вы со школы, Вуза увлекаетесь программированием, но паяльника у вас нет, и схемотехникой никогда не интересовались, то тогда вы прикладной программист. Изучайте Java и Oracle.
  • Вы не увлекаетесь программированием, но любите технику. Идите в системные администраторы. Изучайте серверные ОС Windows и настройку различных сервисов под ними.
  • В остальных случаях идите в программисты скриптов. Изучайте 1С.
  1. Вы обладаете менее выраженным математическим складом ума, в вас присутствует немалая доля гуманитария.
  • Если у вас есть дар ломать все вокруг, однозначно и безоговорочно идите в тестировщики.
  • В остальных случаях – идите в аналитики.
Как видите, алгоритм четкий, даются указания на изучение конкретных языков программирования и технологий. Не волнуйтесь по поводу других языков программирования, ПО и технологий (C#, Delphi, MS SQL server и т.п.). Я назвал беспроигрышные варианты, с которыми вы легко найдете работу, и сможете максимально коротким путем достичь в этом направлении значительного роста, как в карьере, так и в зарплате. Главное ‑ НАЧНИТЕ. А там, если вас заинтересуют другие специализации, вы уже сами все решите и без моих подсказок.

суббота, 21 апреля 2007 г.

Раз ступенька, два ступенька!

Продолжение. Начало "Молоко на губах"

Если жизнь скучна, а мечтаете жить так, чтобы "от перспектив в зобу дыхание сперло", то читайте далее... Как раз далее описывается карьера программиста и самое интересное- зарплаты! Осильте только вводный первый абзац, чтоб врубиться в тему.

Итак, в предыдущих двух частях статьи мы подошли к этапу, когда Вы, уже серьезный специалист IT, и выбираете путь развития своей карьеры на ближайшие лет 10 вперед. За спиной у вас опыт работы 2-3 года с записью в трудовой книжке, знакомства, диплом и прочие атрибуты специалиста. Следующий шаг должен смыть с Вас позорное клеймо "молодой перспективный специалист". Для этого Вы должны устроиться на работу не как помощник, стажер, а как полноценный специалист без всяких оговорок. Очиститесь от "грехов" молодого специалиста, перечисленных в части "Бревно в глазу". Усилий тут прилагать не надо ‑ вы сами почувствуете то состояние, когда к решению новой задачи будете подходить без спешки, уделяя внимание мелочам, и для решения задачи вам будет хватать уже имеющихся у вас знаний. И вот, когда все признаки молодого специалиста у вас прошли, когда явно созрело желание двигаться дальше, перед вами встает вопрос: "Какова вершина карьерного роста (к чему стремиться)?" Этим вопросом пестрят все Интернет-форумы, посвященные теме "Работа". Вопрос животрепещущий, требующий отдельной статьи.
Четко сложившейся карьерной лестницы в IT нет. Но примерный путь таков:

  1. стажер;
  2. программист (тестировщик, системный администратор);
  3. ведущий программист;
  4. системный архитектор (старший системный администратор);
    далее следует административная лестница:
  5. собственный бизнес;
или
  1. начальник отдела (прикладных программистов, системных администраторов, тестировщиков);
  2. начальник отдела ‑ заместитель технического директора;
  3. технический директор;
  4. технический директор ‑ заместитель генерального директора;
  5. генеральный директор.

Другой вариант:

  1. стажер;
  2. программист;
  3. аналитик;

далее следует административная лестница:

  1. руководитель проектов;
  2. собственный бизнес;

или

  1. начальник отдела;
  2. начальник отдела ‑ заместитель директора (технического, по сбыту, маркетингу и т.п.);
  3. директор (технический, по сбыту, маркетингу и т.п.);
  4. директор (технический, по сбыту, маркетингу и т.п.) ‑ заместитель генерального директора;
  5. генеральный директор.

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

Стажер

Зарплата символическая. Работа ради перспективы, получения опыта, приобретение знакомств. В работе интересно все, т.к. на этом этапе все новое. Уровень ответственности низкий ‑ что взять со стажера? Быстро начинает хотеться чего-то более серьезного, но в ближайшие 1-2 года вам придется заниматься самой разной мелкой работой, быть на подхвате. Например, принтер заправить, рекламный листик сделать, на выставке посидеть у стенда, расхваливая товар публике, съездить к клиенту установить ПО или разобраться, почему не работает, написать простейший кусок программы, "погонять" ПО на предмет ошибок и т.п.

Программист (тестировщик, системный администратор)

Первые полгода все великолепно ‑ новые задачи, новые знания, опыт, вживание в коллектив. Зарплата уже начинает приятно радовать своим размером. Минимальные потребности такая зарплата уже покрывает. После полугода наступает рутина, работа приедается. Программиста начинает тяготить "тупое" кодирование, когда приходится 90% времени заниматься кодированием и отладкой тривиальных и не интересных (с точки зрения методов ее решения) задач. Сисадмин на этом этапе больше напоминает "мальчика-на-побегушках" ‑ достаточно компьютеру пикнуть "не так", чтобы пользователи уже вызвали сисадмина. Как правило, проблема бывает одна и та же (подробности читайте на http://sysadmin.mail.ru/). Все чаще рабочее время убивается в курилке, "ползанием" в Интернете, т.к. от рутины начинает воротить нестерпимо. Реально продуктивное рабочее время снижается до 2-3 часов в день. С этого этапа существует неплохая вероятность подняться на ступень выше.

Ведущий программист

Работа приятна тем, что тебя привлекают на обсуждение задач, относящихся не только к программированию. Участие в работе с заказчиками, составлении технических заданий, уточнение сроков выполнения задачи и даже вопросы бюджета проекта. Ты вхож в "верхние круги" ‑ бываешь на совещаниях у технического директора, в курсе последних течений в компании. Ведущий уже на мелочи не разменивается, спихивая рутину на программистов. Зарплата уже достигает такого уровня, что о ней позволительно не задумываться ‑ капает себе, да капает. На "стандартную" жизнь хватает ‑ отпуск на популярном курорте, бар с друзьями в пятницу вечером и т.п. Да данной ступени можно, увлекшись, задержаться и до пенсии. Тем более что дальнейший рост уже весьма затруднителен ‑ вакансий системных архитекторов значительно меньше, чем программистов, на них претендующих.

Системный архитектор (старший системный администратор)

Скорее всего, через год-другой на этой работе вы уже забудете программирование. Совсем другой уровень мышления. Формирование архитектуры разрабатываемой системы ‑ вот ваша работа. Зарплата позволяет уже не просто не задумываться о ней, а задумываться, куда ее выгодно потратить: купить машину, квартиру (себе, детям), дачу, отдыхать в отпуск на курортах выше среднего уровня. На этой работе люди уже в возрасте 40 лет и выше. Начинают задумываться о здоровье: фитнесс-клуб, экстремальное хобби и т.п. Тесная работа с топ-менеджерами становиться обычной рутиной.
Старшие системные администраторы уже не прокладывают сами кабели, не настраивают клиентские места и не бегают к пользователям. Они управляют серверами, формируют план развития информационной сети на предприятии, ведают закупками техники.
В этого этапа соскочить уже практически нереально ‑ вакансий начальников еще меньше, а желающих немало. Да и возраст способствует тому, чтобы уже «не рыпаться» ‑ и так достиг немало, а тут дети подрастают, надо их продвигать ‑ престижный ВУЗ, хорошая работа и пр. Также следует учесть, что последующие административные этапы, как правило, занимаются детьми топ-менеджеров ‑ вам их не обойти.
Именно из-за того, что не обойти, не пробиться, плюс из-за чувства нереализованности некоторые уходят в собственный бизнес.

Начальник отдела

Если вам выпал такой шанс, и вы стали начальником отдела ‑ я сочувствую вам. На административной лестнице ‑ это самая низшая ступень с самой высокой загруженностью. На вас будут сваливать все проблемы, требовать, чтобы вы были сразу в нескольких местах. Я не знаю ни одного начальника отдела, который бы имел обычный 8ми часовой рабочий день ‑ все они пашут по 12-14 часов день, зачастую и в выходные. При этом зарплата не будет намного больше, чем у системного архитектора. Так, символическая прибавка, только чтоб показать кто главнее. Тут и ITшником уже Вас назвать трудно ‑ вы уже бюрократ. Отвечаете за выполнение планов, несете материальную ответственность, оформляете документы, переговоры, командировки... Да какой там отпуск?! Работа, работа, работа... За все ошибки ваших подчиненных в первую очередь будете наказаны вы. Директор никогда лично не пойдет ругать простых работяг ‑ он накажет вас. Одно радует ‑ появляется пресловутый административный ресурс. Карьера топ-менеджера непредсказуемая. Недаром говорят: "Чем выше поднялся, тем больней падать". Там, в верхах власти постоянно идет подковерная борьба, выливающаяся в различные "перетурбации": то состав акционеров измениться и "новая метла начнет мести по-новому", то директор проворуется, то спихнет кого-либо и уйдет на повышение. В данной ситуации, воспользовавшись грамотно административным ресурсом, можно занять место директора. А там уж совсем другой "сказ". На такой должности вы уже не будете себя причислять к IT-специалистам. Вы ‑ топ-менеджер и эта статья не для вас. Поэтому дальнейшее описание карьерной лестницы я прекращаю. У нас остались не рассмотренными три должности.

Аналитик

Ваша задача в этой должности ‑ выяснить, что же все-таки хочет заказчик? Заказчик не "спец по компьютерам" и выражает он свои мысли на уровне "мне надо, чтоб все работало". Задача аналитика ‑ перевести язык заказчика на язык программиста, формализовать задачу. Работа оплачивается не очень высоко – несколько ниже, чем уровень программиста. Тут надо иметь особый талант общения и крепкие нервы. Профессионально программировать можно и не уметь ‑ главное знать основы программирования, чтобы формализовать задачу. Со временем аналитик плавно мигрирует в руководителя проектов.

Руководитель проектов

Так как начальник отдела не может физически охватить все проекты отдела, то вам, как руководителю проектов, поручается полное курирование одного или нескольких проектов с полной ответственностью за их выполнение. Учтите, что, хоть ответственность за выполнение проекта лежит на вас, тем не менее, административный ресурс у вас минимален. Да его практически нет! У вас нет "права печати", т.е. любой документ вы понесете на подпись начальнику. Вы не можете наказать нерадивого работника, хотя с вас по-прежнему будут требовать выполнение проекта, невзирая ни на каких нерадивых работников ‑ можете только написать служебное письмо с жалобой на него. Вы не можете под проект закупить технику ‑ можете только сделать заказ и предъявить счет к оплате начальнику, а он решить, ставить свою подпись в графе "согласовано" или нет, и уж потом вы побежите дальше оформлять оплату. После оплаты вы будете бегать, и оприходовать покупку. В общем, те же муки, что у начальника отдела ‑ недаром это самая низшая административная ступень карьерной лестницы. Только все усугубляется тем, что при полной ответственности за курируемые вами проекты, вы, практически, не имеете никаких административных ресурсов ‑ все вопросы решаются через начальника отдела. Зарплата хорошая. Не хуже чем у системного архитектора. Позволить на нее можете многое, но с таким графиком работы будет ли у вас на это время? Одно радует ‑ больше возможностей, чем у системного архитектора, продвинуться по карьерной лестнице вверх.

Тестировщики

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

Заключение

Это примерный список должностей и их иерархия на карьерной лестнице. В области информационных технологий карьерная лестница зыбка, и у вас есть шанс на волне очередной IT-революции сделать большой карьерный скачок вверх.
PS: А зарплаты?! Описаны только общие слова- у того выше, у того ниже. Конкретные суммы сильно зависят от специализации. Чтобы в этом ориентироваться, прочтите следующую главу...

среда, 18 апреля 2007 г.

Бревно в глазу

Продолжение. Начало "Молоко на губах".
Что же ты в чужом глазу сучок ищешь, когда в своем бревна не замечаешь. (С) Библия.

Ну и что? Думали, что поступив так, как описано в первой части, Вы уже крутой спец? Обломитесь! Надо еще чуть-чуть напрячься. Так что вникайте далее...

Итак, вы ITшник. Первый раз устраиваетесь на работу. Одна из мыслей предыдущей статьи была в том, что не надо гордиться званием «молодой перспективный специалист» (МПС). Работодатель легко распознает любого МПС по нескольким признакам. Постарайтесь от них избавиться:
  1. Заслуги, опыт перечисленные в резюме не подтверждаются трудовой книжкой, т.к. все было на уровне «шабашек», неформальных подработок. Работодатель лучше возьмет того, у которого все его достижения документированы (при всех прочих равных условиях). Поэтому, лучше признать правду, что документально подтвердить свои слова вы не можете, а значит и зарплату высокую требовать бесполезно.
  2. Попытки блеснуть теоретическими знаниями, когда МПС начинает рассказывать, что можно круто переделать всю АСУ предприятия, используя последние новинки IT технологий. Причина такого поведения в том, что ему, на данной стадии становления как специалиста, интереснее процесс, а не результат. Потом это пройдет бороться с этими порывами в себе не надо. По этому пункту совет- больше слушайте, меньше раскидывайтесь идеями, как ВАМ кажется, блестящими.
  3. Не задавайте следующий вопрос: «Какие технологии у вас используются? Я не хотел бы потерять свой уровень развития, как специалиста». В этой фразе выражается мысль, что МПС не хочет связываться с «древними» технологиями, такими DBF, FoxPro2.0 и т.п. Однако это вопрос не древности, а целесообразности применения. Если на предприятии стоит FoxPro и годами работает, полностью покрывая потребности предприятия, то зачем предприятию тратить деньги и время на переход к другим технологиям? А во-вторых, с чего вы взяли, что те технологии, которые вы изучали, баловались с ними на домашнем компьютере в целях самообразования, лучше смогут справиться с текущими задачами предприятия? И вообще, есть ли такие задачи у предприятия? В вопросе технологий больше маркетинговой мишуры, чем дельной информации. МПСу сложно за мишурой разглядеть реальную суть новой технологии- тут опыт нужен. Поэтому, если хотите стать спецом не на словах, а на деле- не пренебрегайте никакой технологией.
  4. Никогда не заявляйте, что «...этот код написан хреново надо все переписывать. Я сделаю лучше и максимум за пару дней». Во-первых, до вас этот код писал наверняка не дурак, а если предприятие уже не один год работает на этом ПО, то тем более стоит задуматься: почему сделано именно так, а не иначе? Во-вторых, за пару дней вы ни за что не уложитесь. Никто до сих пор не смог найти точную формулу временных затрат на разработку ПО. Опыт показывает, что любой назначенный срок оптимистичен и, как правило, подавляющее большинство проектов в этот срок не укладывается. В-третьих, Вы вряд ли сделаете существенно лучше, так чтоб все тут буквально «залетало». Не «залетает» оно, более того- большинство таких начинаний забрасываются на полпути. Забрасывается потому, что, несмотря на использование новых технологий, МПС начинает замечать, что идеологически его решения ничуть не лучше того, что было сделано до него, т.е. он делает «мартышкину работу», фактически. В-четвертых, за дополнительные переделки, переписывания ПО с одной технологии на другую зарплаты не добавят. Более того, если в ходе миграции со старого ПО на новое произойдут сбои, потери информации, то можно от начальника выговор получить, премии лишиться. А оно вам надо?
  5. Начальник поставил перед вами задачу со сроками выполнения «вчера». Не кидайтесь пылко решать задачу. Возникло такое желание- сразу быстренько в руки кружку кофе, сигарету и на полчаса в «стрелялку» побегать. Я НЕ ШУЧУ. Нет проблемы, решение которой нельзя отсрочить. Опыт говорит: через пару часов становится понятнее срочность работы, а нередко вообще надобность в решении задачи отпадает. Кроме того, необходимо время, чтобы продумать способ решения задачи и выполнить ее самым лучшим способом, с наименьшим количеством ошибок. А это можно сделать только, не торопясь, спокойно обдумывая варианты решения за сигареткой, кофеечком и пр. Метко кто-то из великих сказал: «У людей нет времени подумать, чтобы сделать все правильно, но есть время, что переделать допущенные в спешке ошибки».
  6. Другое типовое заблуждение молодого специалиста: «У меня хорошая база знаний- мне ничего не стоит переключиться на другую технологию». Во-первых, работодатель платит зарплату вам не за ваше обучение, а за вашу работу- за результат (не процесс!) работы. Во-вторых, переключение на новую технологию – долгий и дорогой процесс. Кроме того, что надо обучиться, надо еще освоить стиль использования технологии, ее идеологию, иначе результаты от использования новой технологии будут жалкие. А на это у спеца минимум полгода уйдет. Совет: только по Интернету изучить новую технологию можно, но настоящий профи знает истинную ценность фирменной документации, книгам. Поэтому, приучайтесь читать первоисточники, а не бесплатные перепечатки (с ошибками) в Интернете, да еще и с произвольной трактовой реализации технологии авторами перепечаток. Итоговую мысль по этому пункту выражает афоризм, который, часто можно слышать из уст опытных специалистов: «Самым короткий путь тот, который знаешь».
  7. В Интернет-форумах часто можно легко узнать МПС по типовой фразе «Хочу найти интересную перспективную работу» (работа в иностранной компании, решение глобальных задач, использование самых наикрутейших технологий и т.п.). К сожалению, понять, интересна работа или нет, сразу зачастую бывает невозможно. Только поработав пару месяцев, можно оценить вакансию. Но через пару месяцев вы «осядете», и вряд ли захотите снова срываться с места. Тут, как говориться, шар на стороне работодателя. К тому же, вопрос об интересной работе сугубо ваш. Вы сами для себя должны решить, что вам интересно, и никто, кроме вас, не знает, что вам будет интересно. Совет: не тратьте время на поиски рекомендаций по поводу интересной работы. Если работа оказалась не интересна, попробуйте переломить ситуацию под себя и найди в ней интересующую вас нишу или ищите другую работу.
Вывод по этой части: осознайте, что «молодой перспективный специалист»- это клеймо, от которого надо избавляться. Путь один 2-3 года вкалывать за гроши в команде (обязательно) подмастерьем. Слушать, что говорят старшие, опытные специалисты и брать с них пример: как они подходят к решению задач, как осуществляют выбор технологий, какие технологии используют и т.д.

понедельник, 16 апреля 2007 г.

Молоко на губах

Куча денег, непыльная работа, карьера и обожающие взгляды крутых телок... Заманчиво звучит? Да-да, незаметно, образ ITшника из прыщавого мальчика на побегушках превратился в образ удачного человека с безоблачным будущим. Любой обзор перспективных профессий упоминает программирование, как самую перспективную работу, к тому же одну из самых высокоплачиваемых. И главное- стать программистом не сложно и реально за пару лет выйти на уровень приличной зарплаты. Ну что, заинтересовались? Тогда начнем!
Я подробно расскажу о состоянии дел на рынке труда в области информационных технологий в нескольких статьях. Эти статьи изначально планировались для публикации в крупном журнале, но вышли за формат журнала. Многочисленные положительные отзывы знакомых, друзей, прочитавших черновики, убедили меня не откладывать в дальний ящик этот материал, а опубликовать. Статьи будут весьма полезны школьникам старших классов, студентам.

Интересно наблюдать за выпускником ВУЗа. Он так нос задирает! Еще б, юношеский максимализм в полном рассвете, который к тому же подпитывается фразами типа, «молодой перспективный специалист»! На слух воспринимается возвышенно, студенту-выпускнику, еще не заслужившему репутации, это льстит. Однако на самом деле эти слова- не награда за хорошую учебу, а клеймо. С этим клеймом он не будет принят ни на одну высокооплачиваемую работу. В лучшем случае на уровень средних зарплат он выйдет года через 2-3, когда самым тривиальным рутинным трудом смоет с себя клеймо «молодого перспективного специалиста». Что интересного в наблюдениях за молодым специалистом?
Он любит с жаром говорить про новейшие модные технологии, и как он может все круто переделать под них! Если пустить дело на самотек, он, таки, начнет переделывать все под модные технологии. При приеме на работу такие специалисты легко узнаются по типовой для них фразе: «А у вас на предприятии, какие технологии используются? Я не хочу терять свой уровень квалификации». Все мы были такими. Ничего, через полгода год это проходит. Главное вовремя такого молодого специалиста поставить под жесткую опеку, чтоб не успел чего-либо переделать.
Чтобы быстрее выйти из подросткового возраста молодого перспективного специалиста предлагаю молодым людям свой план достижения успеха. Он основан на переосмыслении моего жизненного пути. Сомневаюсь, что в своем жизненном пути я какой-то особенный- скорее всего мой план подойдет 80% начинающим IT-специалистам, в частности тем, кто со школьной скамьи полюбил компьютеры и твердо решил связать с ними свою судьбу.
  1. После 8-класса бросайте школу. Химия, физика, астрономия- это не более чем пустая трата времени. Доучивайтесь в вечерней школе, если планируете поступать далее в ВУЗ, или поступайте в колледж. Для карьеры диплома о среднем образовании достаточно.
  2. Идите работать за мизерную зарплату помощником системного администратора, «мальчиком-на-побегушках» (консультации пользователей, решение мелких компьютерных проблем). Желательно, на большой завод, гос. контору. Именно опыт сисадминства позволит Вам трезво взглянуть на новомодные технологии. Так как от системного администратора требуется надежность работы оборудования, то все сисадмины предпочитают консервативную политику внедрения всех новинок- пока технология не устоится, не внедряют ее массово на предприятии. Опыт работы в крупной конторе неоценим:
  • формируется репутация специалиста, имеющего опыт работы с большим количеством разнообразной техники;
  • в резюме будет очень хорошо смотреться строчка о том, что Вы работали с известной в стране крупной организации;
  • так как, в таких конторах зарплата обычно низкая, то текучка кадров большая. Появляется возможность завязывать знакомства. Ушедшие на более «хлебные» места Ваши коллеги вполне могут и вас потянуть за собой или дать хорошую рекомендацию в фирме, если Вы устраиваетесь работать туда же, где и они работают.
  • Здесь Вы окончательно определитесь, кем хотите быть: продолжить карьеру сисадмина или стать программистом.
  1. Набирайтесь опыта, изучайте программирование. Это реально, так как в больших конторах, как правило, загрузка невысокая, а, зная, что зарплата небольшая, и, как бы пытаясь скомпенсировать данный факт, смотрят сквозь пальцы на «левые» занятия и шабашки сотрудников.
  2. Решайте вопрос с призывом в армию. Для дальнейшей карьеры это важно чтоб потом не отвлекаться.
  3. Прошло 1-2 года. Ну вот, Вы и готовы к выходу в свет. На данный момент у вас уже есть трудовой стаж, вы уже зрелый специалист со связями и мо-жете рассчитывать на более перспективную работу. В это же время ваши сверстники все еще корпят над учебниками, готовясь к выпускному экзамену по биологии и вступительным экзаменам в ВУЗ.
  4. В ВУЗ на дневное отделение не поступайте. Тратить уйму времени программисту на изучении культурологии, истории, философии недопустимо! Ведь жизнь дается ОДИН раз. Каждый момент жизни не вернуть, забыли, проехали! Поэтому я настоятельно советую Вам переломить общественные стереотипы и не поступать на дневное отделение в ВУЗ.
  5. Чтобы легализоваться как специалисту, т.е. получить официальную корочку можно поступить несколькими способами:
  • окончить фирменные курсы (Microsoft, Oracle, 1С) и сдать экзамены на сертифицированного специалиста. Поверьте, этот сертификат будет значить куда больше диплома ВУЗа для работодателя!
  • Не все знают, но диплом можно защитить на производстве, т.е. вы на работе в гос. конторе пишете по производственной тематике диплом и защищаете его.
  • В ВУЗах есть множество других форм обучения, кроме дневной: заочная, безотрывная, вечерняя, дистанционная.
  1. Все, теперь вы можете начать делать настоящую карьеру. Устраивайтесь на хорошую работу, не стесняйтесь назначать за свой труд хорошую цену. В течение 3-4 лет будет идти взлет вашей карьеры, пока Вы не упретесь в потолок зарплат по вашей профессии и возможностей дальнейшего роста (т.е. в выбранной области специализации вас уже мало, что может удивить).
  2. Теперь расслабьтесь и... женитесь. Вам 20-22 года, кровь кипит, зарплата позволяет красиво ухаживать за девушками, снять отдельную от родителей квартиру. Что еще надо для семейного счастья? Все равно в ближайшее время продвижения по карьере не светит, а в сознании происходит в этом возрасте очередной возрастной кризис. Пусть все «устаканится». Пауза до 30 лет.
Подведем итоги. Пока ваши сверстники защищают диплом и бегают в поисках работы по кадровым агентствам, крича, что они «молодые перспективные специалисты» (тем самым реально отпугивая от себя работодателей), Вы уже состоявшийся специалист, с трудовым стажем, хорошей заплатой, квартирой и красавицей-женой. И при этом у вас решен вопрос с армией, выбрана специализация, и Вы наверняка уже побывали и в Турции, и в Египте...