среда, 30 мая 2007 г.

Инструменты программиста

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

Вчера

Давно известный факт – одно изобретение, как правило, придумывается одновременно несколькими людьми. Обычно это любят демонстрировать на примере изобретения телефона. На свой лад я приведу другой пример, что называется, похвалив "свое болото". В университете я занимался разработкой универсальной системы управления: стиральной машинкой, телевизором, освещением и т.п. Закончил тему я на том, что сделал лабораторный стенд и дома, на себе его испытал. Прибор меня будил по утрам. Включал свет, телевизор, пока я собирался в университет. Когда я уходил, то телевизор и освещение автоматически выключались. Вечером, соответственно, с моим приходом домой все автоматически включалось. Побаловался и забросил, про себя отметив, что основным препятствием для такой автоматизации является отсутствие простого и в то же время универсального протокола обмена данными по шине. В те времена я разработал свой протокол. Прошло 2-3 года, и начался ажиотаж вокруг таких устройств. Заговорили, что к Интернету будет подсоединена даже кофеварка, а к нашему приходу домой ванна будет наполняться водой заданной температуры. Помня свой студенческий опыт, я сразу сказал, что это басни и ничего такого еще долго не будет, ибо в основе обмена данными между устройствами упорно предлагался протокол TCP , совершенно не годящийся для таких задач. Прошло еще 10 лет. Только-только стали появляться подобные системы за бешеные деньги. Читаю про них обзоры и ностальгически вздыхаю – работало многое из этого у меня уже тогда, лет 15 назад и стоило не сотни тысяч долларов, даже до 1000 баксов не дотягивало.

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

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

  1. Компилятор. Зачастую и не один. Например, удобно низкоуровневые задачи программировать на C++, а интерфейс пользователя – на Visual Basic и через DLL, COM "склеивать" часть, написанную на C++, с кодом на VB. На сегодняшний день мало кто непосредственно вызывает компилятор, в основном пользуются различными RAD-системами.

  2. RAD-система (например, Visual Studio, Eclipse и т.п.). Сейчас от программиста требуется не просто программировать, а быстро программировать. Без RAD-систем с их удобными конструкторами и мастерами тут уж никак. При том, установить среду надо со всеми необходимыми заплатками, framework’ами.

  3. Библиотеки подпрограмм и наборов классов (VCL, MFC, boost, Fast Report, DevExpress и т.п.) со всеми обновлениями, заплатками.

  4. Обычно у каждого программиста со временем накапливается свой набор библиотек, любимые книги по программированию, список сайтов и форумов, переписка с коллегами. Следовательно, на новом компьютере необходимо настроить папки с путями, установить туда библиотеки, в программе для телеконференций (например, Outlook Express) сделать настройки для подключения к конференциям, настроить электронную почту, ICQ, установить поисковую систему (например, Google Desktop), импортировать закладки в браузер.

  5. Справочная система. Важнейший инструмент программиста. Как программировать без MSDN я уже себе и не представляю.

  6. Система контроля версий (типа CVS, Subversion). При работе в команде без нее тяжело, если вообще возможно. Доходит то того, что работодатели требуют от кандидата на вакансию знать определенную систему контроля версий. На мой взгляд, это перебор, т.к. осваиваются эти системы быстро (не такой уж у них и большой функционал). На новом компьютере необходимо ее установить и настроить на работу с репозиторием. Скачать из репозитория исходники разрабатываемой системы и попробовать ее скомпилировать.

  7. Очень часто требуется знание не только нескольких языков программирования, но и работа с базами данных. Таким образом, вы должны владеть языком запросов к базам данных – SQL. Соответственно, в целях разработки, на компьютере необходимо установить сервер БД (например, MS SQL Server, Oracle) c какой-либо графической консолью для работы с БД. Установить драйвера подключения к БД. После установки СУБД, «залить» на компьютер копию рабочей БД и настроить подключение к ней.

  8. Наверняка может еще понадобиться инсталлятор (Inno Setup, например).

  9. Паковщик exe-файла типа ASPack.

  10. Может быть, потребуется и система защиты от взлома программы (ASProtect, ExeCryptor).

  11. Написание и компиляция help-файлов (HTML Help Workshop).

  12. Еще лично я имею отдельную папочку с набором командных файлов (bat-файлов) для автоматизации работы (просмотр списка нужных мне процессов, настройка разрабатываемой программы на подключение к разным БД для тестирования, чистка temp-каталогов и т.п.).

  13. Мелкие программки для рисования иконок, модификации и просмотра различных ресурсов.

  14. Еще необходимо настроить запуск программ с помощью горячих клавиш (среду программирования, консоль БД, bat-файлы).

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

  16. Средства проектирования (типа Visio).

  17. Система баг-трекинга (например, Bugzilla).

  18. Я уж и не говорю о таких программах как архиватор, Far (или Total Commander), принтер, текстовый редактор (писать внутри организационные документы (справки, заявления и пр.), а также всякие readme.txt, install.txt, whatnew.txt), антивирус и пр.

Даже если надо по-быстрому включиться в процесс, то все равно по минимуму надо установить и настроить RAD-систему, систему контроля версий, СУБД, библиотеки. Даже такая минимальная установка все равно потребует минимум полдня, и то, при условии что, все установиться с первого раза, без ошибок. Но скорей всего придется установку "подрихтовать": где-то что-то вручную прописывать, пути менять, задавать переменные окружения и пр.

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

  1. Современные RAD-системы поставляются с уже готовыми настройками для подключения к системе контроля версий (CVS). Более того, интеграция с CVS развивается: в дополнительных окошках показываются версии, легко увидеть разницу между версиями, управлять прямо из среды разработки версиями.
  2. Теперь уже ни у кого не вызывает восхищения поддержка средой разработки нескольких языков программирования, притом компиляторы для них идут в одном пакете за одну цену.
  3. Компоненты для конструирования визуальных форм, для работы с БД, Web.
  4. Раздаются даром довольно таки функциональные среды разработки, СУБД, CVS.
  5. Новые технологии программирования. Например, весьма успешно развивается идея интерфейса для приложений на основе платформо-независимых форматов (HTML, XML), шире используется управляемый код (.NET, Java, даже так называемый MC++ появился). В итоге программы писать легче, меньше надо заботиться о платформо-независимости, распределенные вычисления - и те уже с помощью "визардов" можно запрограммировать. В СУБД можно писать хранимые процедуры не только на Java, но и на C#, VB и т.п. Множество всяких API, предлагаемых Интернет-сервисами, широкое распространение мобильных технологий.
Лично я уже путаюсь в обилии новостей, презентаций новых технологий. Но, тем не менее, направление развития инструментария для программиста просматривается довольно хорошо. Так давайте же займемся предсказаниями и прогнозами!

Завтра

Не придумывая ничего нового, спроецирую идеи той затерявшейся монографии на сегодняшние средства разработки, приплюсовав еще что-то от себя.
  1. RAD-системы поголовно станут клиент-серверными приложениями. Для индивидуальных разработчиков будут выпускаться локальные серверные части RAD-систем. Сервера разработчиков будут обеспечивать всем разработчикам проекта:
    • Совершенно прозрачную поддержку обновлений через Интернет последних версий библиотек, используемого в разработке программного обеспечения, модулей системы.
    • Сервера будут предоставлять весь необходимый набор сервисов для разработки в зависимости от прав доступа разработчика: CVS, bug-tracking, управление генерацией билдов и инсталляционных копий, централизованное хранение документации по проекту, доступ к тестовой БД, доски объявлений, форумы (в том числе с трансляцией Интернет-форумов и т.д.
    • Сохранение профиля разработчика на сервере, так что при смене машины разработчик получит все свои настройки с сервера.
    • Создание и управление набором стандартных профилей для разработчиков. Новому разработчику достаточно будет только установить клиентскую часть системы, а она с сервера автоматически скачает весь необходимый софт со всеми требуемыми настройками, так что разработчик сможет приступить к работе немедленно.
  1. Уже сейчас исходный код сопровождается кучей вспомогательных файлов среды разработки (для Visual Studio это, например, *.sln, *.ncb, *.resx, *.manifest и т.д.). Многие из них представлены во внутреннем формате, который можно разобрать с помощью специальных программ, либо для доступа к ним использовать отдельный API. Следующий шаг - перевести сами файлы с исходными кодами программ во внутренний формат среды разработки. Типа того, что текст храниться ввордовском файле, который без MS Word и не разберешь. Вероятно, что в основе такого формата будет использоваться стандарт XML . Это позволит значительно улучшить форматирование исходного текста программы и позволит предоставить программисту больше информации по коду: по цвету текста, по цвету фона, по шрифту, начертанию.Станет возможным вставка в исходный код сопроводительных рисунков, схем, структур, всплывающих напоминаний, описаний, документации.
  2. Совершенно неважно будет, на каком языке программирования писать программу: можно будет поставить такие операторные скобки: "{}", а можно такие: "begin end". Сервер автоматически приведет синтаксис к единому виду при сохранении в своем внутреннем формате. Возможно, что даже внутри одного файла допустимо будет мешать синтаксис различных языков. Вся прелесть будет не в этом, а в том, что если в клиентской части системы в профиле программиста будет указан C++, то при отдаче сервером из CVS исходного кода программисту, он автоматически будет преобразован к синтаксису C++, а "делфятник", соответственно увидит тот же код, но в синтаксисе Delphi.
  3. Введение внутреннего формата для исходных текстов программы (не волнуйтесь, ручками покопаться в исходниках вам никто не запретит - в ПО включат возможности экспорта/импорта) позволит завязать в единый клубок пока еще разрозненные системы:CVS, bug-tracking, диаграммы, профилер, help-файлы. Информация от этих сервисов будет подсвечиваться, всплывать, мигать в том месте исходного кода, с которым она связана. И, в конце концов, это приведет к введению слоев окна, как в фотошопе - вы будете управлять отображением той или иной информации, включая/отключая соответствующий слой окна.
  4. Весьма вероятно, что управляемый код и не управляемый в некой "золотой середине" сольются. Будущее все же не за фреймворками, но средства управления средой исполнения можно будет подключать к проекту, и они автоматически будут компилироваться в единый exe-файл с программой.
  5. Интерфейс пользователя будет описываться в платформо-независимом формате (на основе XML). Отделение интерфейса от ядра программы позволит запускать программу на различных ОС, при этом ядро программы будет работать как сервер по отношению к интерфейсу. Сервера приложений известны давно, но здесь речь более об интерфейсной части - интерфейсная часть программы прекрасно будет взаимодействовать с ядром программы даже через узкие каналы. Это особенно понравится компаниям с филиалами, которые смогут дешевыми узкими VPN -каналами объединить филиалы единой информационной системой. Притом, скорее всего, будет возможно конвертировать старый код в новый формат! Для частного пользователя ничего не измениться - интерфейс и ядро программы будут по-прежнему поставляться exe-файлом и набором dll. Некоторые читатели сразу проведут параллели с Web 2.0. Сразу скажу, Web 2.0 тут и не пахнет. Основная проблема Web 2.0 не столько в скудной непривлекательности интерфейса, сколько в зависимости от удаленных серверов. Выключите Google- и все: ваша почта, документы, таблицы, календарь вам уже недоступны.Web 3.0 должен научится кэшировать данные локально, синхронизировать локальные хранилища личных данных пользователя с сетевыми хранилищами.
  6. Ну а про СУБД... Да вы и сами видите что твориться - прямо из Visual Studio можно подключаться к серверу БД и редактировать структуру БД, создавать датасеты и в гридах видеть содержимое таблиц.
  7. Для второстепенных утилит (средств защиты программ от нелицензионного использования, паковщиков, обфуркаторов, инсталляторов) серверное ПО для команды разработчиков предложит API, а разработчикам - язык сценариев, планировщик, чтобы можно было автоматизировать процесс сборки билдов, инсталляционных копий и рассылки их тестерам, партнерам, клиентам.
Резюме
У меня нет сомнений в том, что всему придет свое время – идеи той монографии найдут свое отражение в современных инструментах программирования, а наши кофеварки мы все же когда-нибудь сможем запрограммировать через Интернет. "И вот тогда наступят другие времена" (С) В. Познер.

вторник, 15 мая 2007 г.

Как устроиться на отличную работу. Часть 2.

(Продолжение)

А знаете ли вы что:
  • После подачи вами заявления об увольнении и до окончательного расчета с вами, вас могут уволить досрочно, ранее двух недель, с "волчьей" записью в трудовой книжке?
  • Испытательный срок не должен превышать 3 месяцев, для руководящей работы - 6 месяцев?
  • На время испытательного срока зарплата не должна быть более чем на 30% меньше зарплаты после испытательного срока?

Собеседование

Перед собеседованием не надо обмахиваться кроличьей лапкой и до полуночи наглаживать парадный костюм. Просто будьте цивилизованным человеком: одевайтесь опрятно, чисто, чтобы не воняло от вас потом, табаком, пивом. Обращаю внимание на пот - часто забывают об этом. Пользуйтесь дезодорантом. Программистам можно и без костюмов приходить. Если вы устроите работодателя, то при наличии дресс-кода в организации, вам при трудоустройстве об этом обязательно скажут. А пока чистой рубахи, джинсов (не дырявых!) и чистых кроссовок будет достаточно. Вот руководителю проектов и другим руководителям без костюма не обойтись, но я уверен, что они это и без меня знают. Не опаздывайте. Рукопожатие делайте уверенно, твердо (не липкой и потной рукой!). При себе имейте все варианты резюме, ваш блокнотик, ручку, документы для трудоустройства, несколько чистых листов бумаги формата А4. Тянуть из себя улыбку не обязательно. Ваша позиция на собеседовании такова: вы выбираете себе компанию перспективную, прибыльную, чтобы, работая в ней, заработать деньги и получить хороший опыт. Вас должны окружать профессионалы-коллеги, с которыми будет приятно делать одно дело, а начальник обеспечит вас комфортным рабочим местом, и будет грамотно ставить цели. Т.е. не только вас выбирают, присматриваются, но и вы выбираете и присматриваетесь.

Сначала вас встретит кадровик. Он пересмотрит ваши документы-подлинники, даст заполнить анкету, поговорит с вами на общие темы. Список наиболее частых вопросов кадровиков:

  1. Расскажите о себе (для "затравки" разговора часто первым вопросом идет).

  2. Почему вы ушли с последней работы?

  3. Чем занимались на последней работе, круг обязанностей?

  4. У вас есть семья, дети?

Потом кадровик расскажет про компанию, постарается заинтересовать вас. В ходе этого разговора цель кадровика - составить о вас общее мнение. У кадровиков глаз наметанный, "видят" вас насквозь. Поэтому рассказывайте все честно. Если не хотите о чем-то говорить, не выкручивайтесь - все равно подловит, а про себя отметит, что пытались обмануть (шансы на трудоустройство уменьшатся). Поэтому, либо не затрагивайте тему, либо при вопросе кадровика "в лоб" прямо и отвечайте, что "хотели бы по возможности избежать обсуждения данной темы". Главное - не умничайте, будьте самими собой. Ведь вы хороший человек? А хорошему человеку чего бояться, натягивать на себя неестественную маску?

Следующая беседа после кадровика обычно бывает уже с начальником отдела, где открыта данная вакансия. Тут уж и блистайте всем вашим опытом и навыками. Вот что написали про себя в резюме, те знания, опыт и должны продемонстрировать. Тут можно приврать по поводу опыта. Не переусердствуйте только. Именно этот этап трудоустройства самый волнительный. Вам будут давать тестовые задания, привлекать к собеседованию других сотрудников. Сомневаюсь, что мои советы здесь помогут - если начали волноваться, то все они у вас моментально из головы вылетят. А потому - не парьтесь! Будь что будет! Могу сказать, что очень неприятны въедливые претенденты на вакансию, которые начинают что-то записывать, дотошно выясняют все про вакансию, ведут себя неестественно (чрезмерно услужливы, подчеркнуто вежливы и официальны).

Естественно, в первую очередь идите по самым лучшим предложениям. Собеседуйтесь на всех намеченных собеседованиях, даже если вам уже сделано предложение. А может, найдете еще лучший вариант? Можно сказать сразу "да", чтобы застолбить место. Если найдете что-то лучше, то отказаться никогда не поздно. Может это и не красиво выглядит, но это в ваших интересах. Именно на собеседовании с начальником отдела обговаривайте вопросы зарплаты (размер ее на время испытательного срока и после, "серая"/"белая" зарплата), графика работы, отпусков, сверхурочной работы, точного наименования должности, оборудования рабочего места. Не с кадровиком об этом говорите, а с начальником отдела! Возьмите на заметку и не делайте уступок работодателю в следующем:

  1. испытательный срок не должен превышать 3 месяцев, для руководящей работы - 6 месяцев;

  2. на время испытательного срока зарплата не должна быть более чем на 30% меньше зарплаты после испытательного срока.

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

Увольнение со старого места работы

После того, как договоренность достигнута, у вас по закону есть две недели, чтобы доработать на старой работе. Не волнуйтесь, работодатель вас дождется, а если не дождется, то, значит, он нечестный и вам лучше найти другую работу. При увольнении вы должны написать заявление об увольнении по образцу, который предоставит вам отдел кадров. Заявление должен подписать ваш непосредственный начальник. Вы относите заявление в отдел кадров и с этого момента отсчитываются 2 недели отработки на старой работе. Вы можете договориться с работодателем, и он может вас сразу уволить без отработки этих 2х недель. Как бы он не хотел терять такого хорошего работника как вы, но он обязан по закону через 2 недели после подписания заявления об увольнении издать приказ по предприятию о вашем увольнении и вручить вам трудовую книжку с записью об увольнении. До даты увольнения вы должны будете собрать на обходном листе подписи: библиотекаря (что вы все книжки сдали), сисадмина (что пароли переданы/блокированы), бюро пропусков (что пропуск сдан), отдел кадров (сдать медицинский полис) и т.д. И не думайте, что если вы подали заявление, то теперь с вас "взятки-гладки"! Вы в течение этих двух недель по-прежнему являетесь полноценным сотрудником предприятия! Если не будете выполнять ваши должностные обязанности, то вас могут уволить досрочно, ранее двух недель, с "волчьей" записью в трудовой книжке. Так что не очень-то и расслабляйтесь! По истечении двух недель вам отдадут трудовую книжку с записью об увольнении, и вы в кассе по паспорту получите полный расчет по деньгам и все, вы свободны.

Прием на новое место работы

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

Как устроиться на отличную работу. Часть 1.

- Резюме составлено, что дальше?

- Дальше необходимо почитать анекдоты, веселые истории из жизни ИТ специалистов.

- А потом?

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

Введение

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

Первым делом, сразу следует разделить трудоустройство на виды:

  • по знакомству,

  • в небольшом городе,

  • без знакомств,

  • в крупном городе.

Самый общий случай, замечательно формализуемый- это трудоустройство в крупном городе не по знакомству. Вот про этот вид трудоустройства я и буду говорить.

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

Далее вам следует сформулировать (можно устно) ответ на вопрос: "Чем я хочу заниматься?" Затем соотнести ваш ответ с наименованиями конкретных вакансий. Перечитайте еще раз мою предыдущую статью "Раз ступенька, два ступенька!". Если получается, что вашим желаниям соответствует несколько типов вакансий, то составляете на каждый отдельный тип вакансии отдельное резюме. Полезно бывает составить одно полное многостраничное резюме (как составлять такое резюме ищите в Интернете - здесь такого описания не приводится). Это по желанию.

Поиск работы

К поиску работы надо подходить как к работе. Т.е. вставать в 8-9 утра, завтракать, до обеда искать, договариваться, обедать и снова искать до конца рабочего дня в 18-19 часов вечера. С утра открывать сайты:

ru-dailywtf.livejournal.com

sysadmin.mail.ru

и 1-2 часа читать их. Если оставить в стороне шутки, то эти сайты - яркий пример того, как не надо делать. Может в одной из историй, рассказываемых там, вы узнаете себя? Поданная в юмористической форме правда жизни легко запоминается, веселит и поднимает настроение. А как важен позитивный настрой при поиске работы и особенно при собеседовании! А если на собеседовании вы еще и умело ввернете в разговор одну их прочитанных там историй, то, несомненно, снимете напряженность в беседе и зарекомендуете себя как общительного, веселого человека. В общем, пользы от этих сайтов много, 1-2 часа не жалко на них, главное не "зависните" на них на весь день!

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

  • Резюме отослано. Укажите, какой вариант резюме отсылали, дату отсылки резюме, название фирмы, краткое описание вакансии (например, "C++, внутренняя автоматизация, $2000").

  • Получено приглашение на собеседование (когда пришел ответ, дата и время собеседования).

  • Собеседование пройдено (дата). Свои пометки. Например, "плюсиками" отмечайте понравившиеся вакансии, "минусиками" - не понравилось, но на крайний случай сойдет, крестиком - "ни за какие коврижки туда не пойду".

  • Получено приглашение на работу (дата, окончательные условия трудоустройства).

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

http://www.rabota.ru/

http://www.superjob.ru/

http://www.jobs.ru/

http://www.joblist.ru/

rabota.mail.ru

http://www.headhunter.ru/

http://www.youthcareer.ru/

http://www.job.ru/

Эти сайты обязательно следует использовать при поиске вакансии. Ни одним из них не пренебрегайте! Другие сайты вакансий - на ваш вкус.

Другой способ поиска работы - через Интернет форумы. К сожалению, они сильно забиты флеймом. Поэтому поиск работы через форумы малоэффективен.

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

При поиске вакансий не смущайтесь обилию требований работодателя. Смотрите на основные требования. Если вы по ним подходите, то на остальные требования, в принципе, можете не обращать внимания. Есть вакансии, в которых указаны в основных требованиях куча разных мало совместимых требований. Например: MS SQL Server, C#, Delphi, 1C, HTML, заправка картриджей, Windows, MS Office. Зарплата при этом либо не указывается, либо указывается очень невысокая. Никогда не тратьте время на такие вакансии! Это будет работа в стиле "мальчика-на-побегушках", работа мелкая, перспектив никаких. Типичная "соковыжималка".

Итак, блокнотик завели, резюме по вакансиям разослали, в блокнотик записали. Если осталось время, то на выше перечисленных сайтах зарегистрируйтесь и внесите свое резюме в базы данных этих сайтов. Это действенный способ, у меня в практике бывало, что в течение 5-10 минут после внесения моего резюме в базу резюме сайта следовало сразу несколько звонков от работодателей!

Следующий этап - телефонный звонок или электронное письмо от работодателя. Если пришел ответ по электронной почте то, чтобы ускорить процесс, можете сами перезвонить. Договаривайтесь о времени собеседования. При этом договаривайтесь так, чтобы у вас было не более 1-2 собеседований в день. Выделяйте на каждое собеседование 3-4 часа. Группируйте собеседования так, чтобы 2-3 дня подряд шли собеседования, а потом опять 3-4 дня поиск новых вакансий. Не стесняясь, выясняйте все условия собеседования: сколько этапов, примерно, сколько времени это займет, с кем именно будете общаться (начальником отдела, или кадровиком, или может быть сразу с обоими), уточняйте, насколько верна информация на сайте (зарплата, круг обязанностей). Волноваться, что вы скажете что-то не так не надо - на данном этапе никто никому ничего не должен. Просто сухо, четко узнайте все и договоритесь о собеседовании.

(Продолжение следует...)

пятница, 4 мая 2007 г.

Как абсолютно правильно составить резюме

Неоднократно принимая участие в приеме на работу сотрудников, я просто поражаюсь количеству низкокачественных резюме. Потом в форумах такие вот "горе-составители" плачутся, что работу найти не могут. Хотя примеров как оформлять резюме в интернете навалом:

http://www.mem.com.ru/;

http://www.job.ru/resume/shablon_resume.html;

http://www.homebusiness.ru/job/st7.htm.

... и еще 1380000 ссылок по теме "как составить резюме" на http://www.google.ru/.

Начнем с типичных ошибок, которые совершают даже матерые профи программирования:

  1. Прежде чем составить резюме, изучите образцы, которых в интернете валом. Вот такое простое и тупое правило. Но, тем не менее, на вакансию приходят тучи резюме, составленных буквально "как Бог на душу положит". Неправильно составленное резюме значительно (не менее чем на 50-60%) снижает ваши шансы попасть на собеседование. Ибо, глядя на пачку резюме, которые надо изучить, мне проще выкинуть неправильно составленное резюме, чем париться с разбором хитропожой структуры резюме очередного умника-претендента.
  2. ВСЕ, кто не удосуживается проверить орфографию в своем резюме хотя бы в "ворде" - беспросветные тупицы!!! Я не буду работать с сотрудником, который ленив настолько, что не уважает меня. ИМЕННО. НЕ УВАЖАЕТ. Это как "казнить нельзя помиловать". Если такого взять на работу, то потом будешь голову ломать в его писанине, пытаясь понять, что же он имел в виду? Реальный случай: человека уже хотели пригласить на собеседование, но обратили внимание на то, что слово "департамент" в нескольких местах резюме пишется через "о". Отсюда выводы: неаккуратен, раз не проверил; в резюме он охарактеризовал себя как аккуратного, значит к тому же и врет; не сверился с трудовой книжкой (иначе б заметил как правильно писать), значит не тщательно подходит к работе; это не случайная опечатка- в нескольких местах написано неправильно это слово- следовательно, резюме отправилось в мусорку. 100% в мусорку. И не надейтесь на лучший исход.
  3. Проверяйте свое резюме на логический смысл. Например, человек пишет, что работал начальником, даже директором, а претендует на должность простого программиста. Ясно, что речь о малом предприятии, где человек был сам себе и программистом и директором. Хоть объяснение есть, но смотрится такая карьерная лестница нелогично. Или на вакансию программиста в резюме указывается знание CorelDraw, притом в основных навыках.

А теперь забудьте о других сайтах с описанием того, как составлять резюме и записывайте. Даю единственно правильный вариант резюме, хорошо обкатанный на практике и не вызвавший ни малейшего замечания со стороны работников отделов кадров.



ФИО [имя, отчество писать полностью]

E-mail: [если возможно, не с публичного домена, типа mail.ru]

Дом. тел.: [с кодом города, даже если вы- местный]

Моб. тел.: [номер мобильного писать обязательно]

Место проживания: [город, для большого города можно указать район]

Цель:

Получение вакансии [наименование вакансии]. По необходимости добавить условия получения вакансии, на которые вы априори согласны, например: "Полный рабочий день. Готовность переехать в другой город".

Навыки работы [разделите навыки на отдельные группы и перечислите их по пунктам, очень четко, без "воды", например так, как это указано ниже]:

  1. Delphi: многопоточные сервера, web-интерфейсы, sockets, WinAPI ....................................................... 5 лет.
  2. Interbase и клиентских приложений (IBX, DBEXPRESS, ADO) ......................................................... 4 года.
  3. MS SQL Server ........................................ 4 года.
  4. Знание на уровне стандарта и опыт программирования TPC/IP, HTTP-PROXY, SOCKS-PROXY, SMTP, POP3, HTTP, HTML, XML, XSL- ........................................... 2 года.
  5. Проектирование систем высокой степени готовности (режим 24x7, «мягкий» режим реального времени, Windows) ................................................ 4 года.

Опыт работы [в обратном хронологическом порядке]:

  • С февраля 2000 - текущее место работы. [полное официальное наименование организации], г. [Город]. [наименование должности в точности как в трудовой книжке записано]. Краткое, на 2-3 предложения описание, обязанностей, например: "Разработка ПО внутренней автоматизации предприятия на основе БД Interbase, Firebird, Yaffil. Программирование репликации между серверами Interbase, MS SQL Server. Подготовка отчетов".
  • Июнь 1998 - январь 2000. ООО "Рога и копыта", г. Москва. Инженер-программист 1 категории. Доработка и настройка ПО.

Образование [в обратном хронологическом порядке]:

  • 1994-2000 год. [полное официальное наименование учебного заведения]. Указать образование в точности как написано в дипломе, например так: "Диплом инженера-системотехника с отличием по направлению "Приборостроение".
  • [Здесь же указываются другие дипломы]

Дополнительно [указываются сопутствующие навыки, опыт, что может положительно повлиять на решение о приеме вас на работу]:

  1. Опубликованы статьи в журналах, сайтах:
  • список журналов [полное официальное наименование, номер, страница, наименование статьи];
  • список сайтов [прямые ссылки на статью].
  1. Краткая характеристика самого себя, например: "Доброжелателен, честен, ответственен, бесконфликтен. Хорошее налаживание контакта с пользователями, умение доступно дать необходимые пояснения".
  2. Если в вакансии в качестве пожеланий указывается знание технического английского языка и вы соответствуете этому пожеланию, то тут указывайте: "Технический английский".


Примечание по составлению резюме:

  1. Резюме набирается шрифтом Arial, 10 размер, только ФИО- 14 размером. Никакого разнобоя в оформлении- все строго, сухо, офисно.
  2. Объем резюме- 1 страница. не две! три страницы- уже клиника!
  3. Обратите внимание на то, как расставлены знаки препинания в резюме (после ФИО точки нет, после адресов точек нет и т.д.)!
  4. То, что перечислено в навыках, должно подтверждаться в опыте работы, т.е. если вы написали "Delphi- 5 лет", вот и покажите в опыте, откуда у вас взялся 5-летний опыт программирования на Delphi.
  5. Пункт "Опыт" берется целиком из трудовой книжки, в обратном хронологическом порядке. Достаточно показать навыки и опыт за последние 5 лет.
  6. В пункте "Образование" не указывайте никаких данных про школу, тем более про дату поступления в нее. Включаются в пункт только значимые для вакансии дипломы. Сертификаты и курсы указываются в пункте "Дополнительно". Хронологический порядок и здесь, как и в опыте, обратный.
  7. В "Дополнительно" не пишите про увлечения рыбками, туризмом и чтением детективов. Только то, что относится к вакансии. Если в вакансии указывают дополнительные пожелания к претенденту, то в "Дополнительно" вы и отражаете, насколько вы соответствуете этим пожеланиям. Как правило, работодатели желают технический английский, возраст не предпенсионный, умение работать в команде. Вот и пишите: английский- технический, возраст- 30 лет, например, работал в командах 5-10 человек.
  8. Все пункты резюме должны быть связаны между собой:
  • В "Цели" вы указываете ту вакансию, на которую вы претендуете.
  • В "Навыках" перечисляете только те свои навыки, которые непосредственно относятся к вакансии. Ничего лишнего!
  • В "Опыте", в кратком описании каждой должности, что вы занимали, показываете, каким образом и где были получены выше приведенные навыки.
  • Из графы "Образование" должен быть понятен ваш уровень начальной подготовки, образования, на основе которого формировался ваш опыт и навыки.
  • И пункт "Дополнительно" является завершающим штрихом вашего резюме, отвечающим на дополнительные пожелания работодателя.

Резюме набирается в MS Word и прикрепляется к электронному письму. В теле письма пишется текст примерно следующего содержания:



Добрый день!
Направляю Вам резюме на вакансию [точное наименование вакансии]. Если Вас заинтересовала моя кандидатура, то сообщите, пожалуйста, подробности трудоустройства- кол-во собеседований, общее время, которое может потребоваться для собеседования (т.е. обговариваете не условия работы, а условия трудоустройства, т.е. как будет проходить процесс собеседования. На собеседовании уже можете говорить конкретно про условия работы, но не в первом же электронном письме!).

---
[ФИО].
Ниже приводится краткая информация о ваших навыках, а не афоризмы и крылатые высказывания, как многие любят делать, например: "Ведущий-инженер программист: разработка ПО внутренней автоматизации, Delphi, Interbase/Firebird, MS SQL Server, администрирование локальных сетей".



Для каждой вакансии резюме надо корректировать, чтобы оно наиболее полно соответствовало тексту вакансии. Например, когда я трудоустраивался, то у меня было 4 варианта резюме на сильно различающиеся должности, каждое из которых я еще и "адаптировал" слегка к требованиям соответствующей вакансии.