Как найти хорошую работу PHP программисту

Эта статья – своеобразный крик души. Она рассчитана не на студентов-новичков в IT, которые только начинают свой карьерный путь и им срочно нужна хоть какая работа, а на более-менее опытных разработчиков, которые трезво оценивают себя как неплохих специалистов и хотят получить максимум удовольствия от своей работы. Эта статья – не из серии «так делать правильно», а лишь частное мнение и попытка описать некоторые проблемы, с которыми сталкивается соискатель при трудоустройстве на должность «программист PHP».

Статья писалась жителем Москвы и, наверно, актуальна она для жителей мегаполисов, у которых всегда есть выбор при трудоустройстве на работу.

Признаться, я очень долго ищу работу по найму. Если раньше, при отсутствии должного опыта в IT я по большей части устраивался туда, куда меня возьмут, то сейчас я очень скрупулезно выбираю работодателя. Для меня важно все – начиная с организации рабочего места и заканчивая проектом, с которым придется работать. На собственном опыте проб и ошибок я составил следующий перечень рекомендаций и правил, который надеюсь помогут и вам сделать правильный выбор.

Перед тем, как пойти на собеседование – читайте отзывы о работодателе в интернете

Банально, но факт – это работает и позволяет узнать многое.

Вакансии компании висят на сайтах по поиску работы неправдоподобно долго

Вариантов несколько:

  1. Неадекватный отдел персонала или неадекватный технический руководитель, которому «никто не подходит».
  2. Текучка кадров.
  3. Загнивающий проект, с которого бегут разработчики.

Делать там нечего. Хорошие вакансии долго простаивать не могут.

Перед собеседование выясните, будет ли вас собеседовать технический специалист

Собеседование исключительно с представляемом отдела персонала – ОЧЕНЬ плохой показатель. Скорее всего, HR-ы просто делают вид, что работают. Компания в программисте не нуждается или нуждается, но не так остро.

Если после собеседования с HR-ом, вам говорят, что «технический специалист сейчас с вами не может провести собеседование» - «он занят/на встрече/заболел» - это показатель высшей степени неблагонадежности компании и наплевательского отношения к сотрудникам. Ни одна сопливая девочка из HR не имеет права решать, работать вам в компании или нет – это решение должен принимать ТОЛЬКО технический специалист после теста или собеседования.

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

Если есть возможность – никогда не приносите в первый/второй рабочий день свою трудовую и не отдавайте ее в отдел кадров. Мы не можем предугадать все нюансы, с которыми столкнемся.

Меня пригласили работать в организацию, где с уверения начальницы отдела, была разработана их собственная «перспективная ORM-система» на PHP, с помощью которой они создают веб-приложения для государственных структур.

В первый рабочий день выяснилось, что команда из трёх человек, включая меня – только что нанятые сотрудники. Что «перспективная ORM-система», на которой предполагалось делать веб-приложения – вовсе не ORM, а лишь набор API для построения деревьев данных, а код нужно было писать... в специально разработанном приложении под windows, фактически – в блокноте! Это приложение не имело поддержи версионности, не было возможности использовать IDE (!!!), а единственный с горем пополам написанный проект на этой чудо-системе представлял собой жуткий говнокод.

На второй день один из сотрудников этой компании дал пояснения по всему этому безобразию: начальница отдела является владельцем «пакета акций» этой «перспективной системы», написанной лет 8 назад. Имея завязки в госструктурах, она неминуемо выигрывает тендеры на разработку ПО. И по задумке все разработки должны вестись именно на этой системе. Ни о чистом PHP, ни о фреймворках речи и быть не могло.

Безнадежность и глупость ситуации была ясна. Один из новых программистов забрал документы прямо в середине рабочего дня. Я попросту не вышел на следующий день без объяснения причин.

Старайтесь устроиться в крупные компании или корпорации

Плюсов от работы в подобных компаниях всегда больше, чем минусов. Причем, плюсы, ощущаются во всем. Я три года проработал в компании Мвидео – своевременная з/п, индексация и повышение з/п, 13-я зарплата, 10% скидки на товары для сотрудников, налаженный процесс разработки, адекватное руководство, интересные и глобальные задачи, молодой коллектив, комфортное рабочие места, шикарные корпоративы. Даже такая мелочь, как бумажные полотенца в туалете, создают благоприятные ощущения.

Основной плюс больших компаний и корпораций – это не только стабильность финансовая. Это постоянное ощущение течения жизни, минимум застоя.

Комфорт рабочего места

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

Не так давно меня угораздило устроиться на работу в интернет-магазин, который поддерживало 15 разработчиков. И все эти разработчики сидели в одной небольшой комнате. Т.н. «личного пространства» не было в принципе. На каждого человека отводился примерно 1 кв. м. площади комнаты. Очень трудно словами передать подобные условия работы, но постоянная духота, отсутствие личного пространства и коллеги, смотрящие вам в спину в метре от вас – это очень тяжело. Монитор представлял собой нечто квадратное, родом из середины 2000-х годов, а под ногами проходил короб с проводами, что не давало возможности даже сдвинуть стул в необходимое положение.

Вспоминая это место работы сейчас, я смело утверждаю, что наверное комфортнее чувствовал бы себя торгуя на рынке пирожками, нежели в этом «офисе».

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

Поэтому, перед устройством, попросите показать вам условия работы.

Вам предлагают сделать тестовое задание

Конечно, у вас уйма свободного времени, почему нет? Потратьте 4-8 часов, вам же все равно делать нечего – вы же безработный.

На самом деле достаточно посмотреть код соискателя, чтобы понять его уровень. Например, попросить прислать код какого-нибудь проекта или библиотеки.

Отдельного внимания заслуживает тема "мошеничества" - соискателю предлагается сделать тестовое задание, которое тянет на полноценную разработку. Скорее всего, ищут доверчивого программиста, который за бесплатно сделает работу. Вот один из примеров такого тестового задания (обратите внимание на уровень з/п и требования):

Ведущий программист (заработная плата 28 527 рубля)

Минимально требуемые знания:

1. Yii 2;
2. Хорошее знание MySQL, PostgreSQL, Redis;
3. Умение работать с GIT;
4. Опыт работы с очередями RabbitMQ (или аналога);
5. Администрирование ОС Linux;
6. Опыт работы не менее 3 лет.

Задание:

Верстка, дизайн рассматриваться не будет, только качество кода.

Необходимо реализовать веб приложение – чат. Чат должен работать без перезагрузки страниц при отправке/получении сообщений/смене комнаты.

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

Авторизованный пользователь может создавать комнаты. Комнаты могут быть: открытые и закрытые. Войти в закрытые комнаты можно только по приглашению создателя этой комнаты.

Приложение должно иметь панель управления. Права должны быть реализованы с использованием RBAC.

Должно быть две роли: администратор и модератор.

Панель управление должна иметь следующий функционал (в скобках указано, какая роль какие права имеет):

1. Управление пользователями:

a. Добавление (администратор);

b. Изменение данных пользователя (администратор, модератор);

c. Изменение прав (администратор);

d. Удаление (администратор);

e. Блокировка/ разблокировка (администратор, модератор);

2. Управление комнатами:

a. Добавление (администратор, модератор);

b. Изменение (администратор, модератор);

c. Удаление (администратор, модератор);

d. Просмотр переписки (администратор, модератор);

3. Отчет:

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


Техническая часть:

∙ Backend – PHP, реализация обязательно с использованием Yii 2;
∙ Не использовать NodeJS;
∙ frontend – JavaScript;
∙ база данных – PostgreSQL (При разработке использовать миграции).

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

У вас спрашивают результат работы выражения $i+++++$i, что быстрее – пре-инкремент или пост-инкремент и другие не Real-Life задачи.

Собеседующий вас – идиот. Мутант. Он сам недавно был типичным быдлокодером и чудом судьбы вылез в начальники. Теперь он испытывает синдром вахтера и лезет на «Хабр» с вопросом что бы такое задать, чтобы вас завалить. Ему не нужен работник – ему нужно потешить Чувство Собственной Важности, поиздеваться над вами.

На самом деле ни одному профессиональному разработчику не придет в голову писать в реальном коде что-то вроде $i+++++$i;. Профессиональный разработчик тем и отличается от новичка, что пишет код так, чтобы его понимал в первую очередь человек, а уж потом - интерпретатор.

Ни один профессиональный разработчик не интересуется – что быстрее работает – пре-инкремент или пост-инкремент. Профессиональный разработчик знает, где и когда использовать тот или иной вариант. Профессиональный разработчик не экономит «на спичках» и не забивает гвозди микроскопом

Поэтому, если у вас спрашивают подобные не Real-Life задачи, то смело бегите от такого тимлида. Ничего хорошего из этого не выйдет.

 

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