Все записи автора COMA_OZ

А что нужно программисту?

Рекрутинг в ИТ сегодня это отдельная головная боль для любого HR. И если для Аналитиков или Руководителей проектов и продуктов часто срабатывают «стандартные» подходы поиска, то для Программистов, DevOPS и где-то даже для Администраторов нужно исходить из других парадигм.

Уже не первый год это рынок Покупателя, где качественный Разработчик в 80% случаев выбирает компанию, а не наоборот. На бОльшую лояльность и «стандартизацию» подходов можно говорить только для Junior, во всех остальных случаях просто необходим индивидуальный подход для каждого подходящего соискателя. Забудьте про заполнение «многостраничных» анкет, и собеседований с 3+ этапов.

По этой тематике нашел отличный доклад с выставки
SECR 2018 , в котором раскрываются наиболее актуальные мотивы для перехода Разработчика именно в Вашу компанию.

Рекомендую всем к ознакомлению!

PS. Если кратко — то «Денег и все остальное»=).

Вопросы для Соискателя

Решил сформировать для себя пул вопросов, которые нужно задать соискателю на собеседовании.

Узнать человека за 1-2 и даже за 10 часов практически невозможно… Поэтому очень важно смоделировать ситуации, в которых соискатель сможет показать или рассказать о себе с разных ракурсов.

Вопросы:

Общие

  1. Опишите начальника, который смог бы добиться от вас самых лучших результатов.
  2. Что может заставить вас полюбить приезжать на работу каждый день?
  3. Что увлекает вас вне работы?
  4. Как далеко вы проживаете, сколько времени заняла дорога?
  5. Допустим, вы попали к нам на работу. Спустя год вечером в пятницу вы идёте домой и понимаете, что, согласившись занять эту позицию, совершили лучший поступок в своей жизни. Что должно произойти за год, чтобы вы так подумали?
  6. Сколько часов в неделю вы работаете в одиночку (в среднем за прошлый квартал)? Как вы думаете, нужно тратить на это больше времени или меньше? Когда нужно просить помощи?
  7. Вашему руководителю дали задачу сформировать презентацию/сделать разработку/сформировать отчет/связаться с клиентом и т.д., работу, которую он перенаправил на вас, вы в данной деятельности до этого не участвовали или принимали минимальное участие — какие будут ваши действия?
  8. Насколько вы любите с кем-то конкурировать?
  9. Какой уникальный опыт отличает вас от других соискателей?
  10. Какие самые важные награды вы хотите получить благодаря своей карьере?
  11. Где вы видите себя через пять лет?
  12. Какие направления вашей работы чаще всего удостаиваются похвалы?
  13. Расскажите о самой странной роли, которую вы когда-либо играли в проекте или на работе.
  14. Какой коллектив/команда проекта были на вашем прошлом месте работы (состав, роли) и какие роли вы в нем занимали?
  15. Ваше отношение к отчетным системам по контролю затрачиваемого времени?
  16. Наличие опыта удаленной работы? Самостоятельного и с участниками команды.
  17. Какие у вас вопросы о деятельности компании, отделе где вы будете работать, проектах в каких вы будете участвовать и с какими заказчиками работать? (вопрос можно не задавать — в идеале все это должен «выпытать» соискатель, если не задает ему «-» и спрашиваем сами, если и после вопроса у него «нет вопросов», то ему «—» .)

[свернуть]

Для Аналитика

  1. В каких проектах вы работали до этого? На каких этапах? Как они завершились?
  2. Какой главный инструмент для Аналитика?
  3. По итогам каких встреч нужно писать «Протокол встречи»?
  4. Что это такое и какие признаки для «Хорошо сформированные требования для разработки»?
  5. Какой опыт управления постановкой и контролем разработки программистов работающих удаленно?
  6. Расскажите о опыте личного общения с заказчиком?
  7. Расскажите о опыте личного формирования проектной документации? Примеры.
  8. Расскажите о опыте сопровождения разработки?
  9. Расскажите о опыте «сдачи» доработок заказчику?
  10. С какими системами «контроля версий», «управления разработки» и т.д. вы работали?
  11. Вы сформировали ФД/ТЗ на разработку, показали ее заказчику — он доволен, показали ее РП — он дал «куууучу замечаний», вы сделали правки,  в следующий раз он опять дал много замечаний, и по старым и по новым, и так несколько раз. Какие ваши действия? Какие вы видите причины?
  12. Какой опыт разработки или сопровождение развития ПО у вас имеется?
  13. Сколько программистов/тестеровщиков/техписов было у вас на «контроле» в предыдущих проектах?
  14. Какие методологии управления проектами и разработки вам ближе всего, с какими вы работали?

[свернуть]

Поиск людей в команду проекта/отдела.

С чего начинается формирование команды?

Собеседование? Хитрые вопросы соискателю? Тестовое задание?

Нет, нет и нет.

Самое главное для старта поиска людей себе — это ряд встреч с HR и пояснение какого сотрудника вы себе хотите найти + формирование требований к соискателю и пояснение HR что за каждым требованием стоит.

Почему это крайне важно? HR обычно не специализируются на какой то конкретной области, но они хотят найти нужно вам человека и если не провести обсуждение сразу, то много времени уйдет на собеседование явно «левых» людей.

Вот пример для поиска Аналитика (Mid):

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

Аналитик (Mid) - требования к вакансии

Определитесь сразу кто вам нужен, ниже пример больше «бизнес» аналитика с некоторым уклоном в рабочую область и коммуникации с клиентом. Не пытайтесь добавлять ответственность по бюджетам или наличие опыта написание кода (это уже уровень senior или ближе к «системному»), тут гораздо важнее быть на «одной волне» с клиентом и понимать его проблемы, также правильность их ретрансляции на команду, которая уже должна подсказать способы их решения . Для Juniora  можно уменьшить срок опыта участия разработки до 1 года и убрать опыт постановки задач и контроля программистов, тестирование и демонстрации.

Обязанности:

  • Проработка/формирование требований к развитию информационных систем и бизнес-процессов ЭТП;
  • Сбор и Анализ требований Заказчика через интервьюирование и чтение документации.
  • Описание требований Заказчиков, для их однозначного понимания остальными участниками разработки: схемы процессов, схемы алгоритмов поведения ПО, функциональные требования, GAP-анализ с существующим функционалом и др.;
  • Формирование документации, необходимой для разработки: функциональные дизайны, техническое задание, регламенты, инструкции, демонстрационные презентации для Заказчика;
  • Согласование и защита выбранных решений для реализации требований Заказчика;
  • Экспертное знание функционала дорабатываемого ПО в зоне ответственности – консультации остальных сотрудников компании;
  • Постановка задач разработчикам программного обеспечения и контроль их исполнения, большинство разработчиков работают удаленно;
  • Проверка реализованного ПО на соответствие заявленным требованиям как самостоятельно, так и путем формирования маршрутов тестирования для тестировщиков;
  • Ответственность за итоги доработки перед Заказчиком;
  • Организация встреч и демонстраций продукта представи­телем Заказчика в т.ч. и на уровне первых лиц компаний;
  • Умение оперировать большими массивами разрозненных данных, их структурирование и анализ для формирования отчетов или слайдов для презентаций.

 

Требования:

  • Высшее образование;
  • Владение ПК и знание MS Office, Visio, PowerPoint на уровне продвинутого пользователя;
  • Навыки деловой переписки, грамотная устная и письменная речь;
  • Педантичность в ведении документации на разработку;
  • Опыт работы с ИС управления запросами на изменение, знание ИС Jira как преимущество;
  • Знание основ объектно-ориентированных языков программирования, WEB стек как преимущество;
  • Опыт работы в сфере разработки программного обеспечения от 3-х лет;
  • Опыт участия в проектах на ролях системного или бизнес аналитика;
  • Знание 223-ФЗ и/или опыт в закупочной деятельности будет преимуществом;
  • Высокие аналитические способности, системное мышление, способность к быстрому освоению новых предметных областей.

[свернуть]

С чего начинается формирование команды проекта/отдела?

Формирование команды очень ответственный процесс, промахи которого проявятся далеко не сразу, а по прошествии 0.5-2 лет для отдела или на 40-60% готовности проекта.

Набор новых сотрудников очень важен. Как же найти того самого «своего» кандидата?

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

Т.к. я работаю в IT сфере, связанной с разработкой и развитием различного корпоративного ПО, то и акцент будет соответствующий.

Из чего стоит «полноценная» команда? Все ОЧЕНЬ индивидуально и зависит от проекта и обстоятельств. Бывает что команда проекта, это только 1 РП, а все остальные сотрудники это субподрядчики, которые делают проект «под ключ», но чаще всего команда проекта это ряд стекхолдеров, 1-2 заказчика, инвестор и контролирующий орган со стороны бизнеса и 3-4 программиста, 1 эксперт по области разработке, 1-2 аналитика, 1 тестеровщик, 1 тимлид-архитектор, 1 РП со стороны разработки. Если людей «набирается» меньше, то нужно еще раз подумать — а стоит ли городить проект «?», может лучше все организовать «итерационно/процессно» с пресечением ролей.

Итак давайте соберем и организуем работу команду разработки…

Обнаружил для себя интересный блог

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

Вот он — https://psilonsk.livejournal.com/

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

Не хочется плагиатить, но хочется поделится материалом. С многим в этом блоге я согласен и считаю полезным, особенно мне приглянулись следующие материалы:

 

Требования ресурсов для постройки Замка в игре King of Avalon

Ниже таблица с требованиями для постройки Стены и Замка для игры King of Avalon.

Будет дополняться). Замечания и дополнения пустых ячеек пишите в комментариях.

УровеньЗамокПостройки для ЗамкаСтена 
22.9K Еда
2.9K Дерево
Стена 1
2.0K Дерево
34.4K Еда
4.4K Дерево
Стена 2
3.1K Дерево
47.0K Еда
7.0K Дерево
Лесопилка 3
Стена 3
4.9K Дерево
512K Еда
12K Дерево
Ферма 4
Стена 4
8.3K Дерево
621K Еда
21K Дерево
Хранилище 5
Стена 5
15K Дерево
741K Еда
41K Дерево
Логово Дракона 6
Стена 6
29K Дерево
881K Еда
81K Дерево
Университет 7
Стена 7
57K Дерево
9163K Еда
163K Дерево
Конюшня 8
Стена 8
114K Дерево
10326K Еда
326K Дерево
Хранилище 9
Стена 9
228K Дерево
11627K Еда
627K Дерево
6.6K Железо
Лечилка 10
Стена 10
439K Дерево
4.6K Железо
121.14M Еда
1.14M Дерево
25K Железо
Осадные орудия 11
Стена 11
795K Дерево
18K Железо
131.92M Еда
1.92M Дерево
68K Железо
Стена 12
1.35M Дерево
47K Железо
143.02M Еда
3.02M Дерево
151K Железо
Лучники 13
Стена 13

2.11M Дерево
106K Железо
154.38M Еда
4.38M Дерево
292K Железо
Стена 14
Пехота 14

3.07M Дерево
206K Железо
166.02M Еда
5.85M Дерево
502K Железо
Серебряная шахта 15
Стена 15

4.10M Дерево
352K Железо
177.78M Еда
6.77M Дерево
790K Железо
28K Серебро
Железная шахта 16
Стена 16
4.74M Дерево
554K Железо
20K Серебро
1810.10M Еда
7.61M Дерево
1.22M Железо
77K Серебро
Логово Дракона 17
Стена 17
5.33M Дерево
854K Железо
54K Серебро
1913.00M Еда
8.22M Дерево
1.85M Железо
155K Серебро
Посольство 18
Стена 18
5.76M Дерево
1.30M Железо
108K Серебро
2016.70M Еда
8.33M Дерево
2.78M Железо
278K Серебро
Стена 19
5.83M Дерево
1.94M Железо
195K Серебро
2121.40M Еда
7.49M Дерево
4.12M Железо
469K Серебро
Лесопилка 20
Стена 20

5.25M Дерево
2.90M Железо
328K Серебро
2227.30M Еда
5.06M Дерево
6.08M Железо
760K Серебро
Стена 21
3.54M Дерево
4.26M Железо
535K Серебро
23
2448М Еда
9.2М Дерево
9.2М Железо
1.84М Серебро
Стена 23
Конюшни 23
6.45М Дерево
6.46М Железо
1.29М Серебро
2563.5M Еда
12.5M Дерево
11.2M Железо
2.8M Серебро
Университет 24
Стена 24
8.7M Дерево
7.84M Железо
1.96M Серебро
2684M Еда
16.8M Дерево
13.44M Железо
4.2M Серебро
Посольство 25
Стена 25
11.8M Дерево
9.42M Железо
2.94M Серебро
27114M Еда
22.7M Дерево
15.8M Железо
6.2M Серебро
Кладовая 26
Стена 26
28154M Еда
30.7M Дерево
18.4M Железо
9.2M Серебро
Казармы 27
Стена 27
21.5М Дерево
12.86М Железо
6.45М Серебро
29207M Еда
41.4M Дерево
24.8M Железо
12.4M Серебро
Осада 28
Стена 28
29 М Дерево
17.3 М Железо
8.7 М Серебро
30279M Еда
56M Дерево
34M Железо
17M Серебро
Лучники 29
Стена 29
31377.5M Еда
75.3M Дерево
45.2M Железо
22.6M Серебро
Университет 30
Стена 30
Знак Знати 1000

Обучение JS и разработка игры Самолётик. Шаг 2.

В подготовительной части  мы подгружали 2 JS файла:

<script type="text/javascript" src="js/three.js"></script>
<script type="text/javascript" src="js/step1.js"/></script>

Если про 1 я упоминал — это сам 3D фреймфорк, то файл «step1.js», то то что нам предстоит создать.

Преступим.

Из чего должна состоять игра самолётик? Вполне логично предположить что из самого самолетика, поля над котором он должен лететь, облаков для антуража, топливо ( в последующем мы его заменим на буквы) для полета, которое нужно собирать ну и препятствий, которые нужно облетать.

Нам нужно создать соответствующие объекты. three.js содержит «по умолчанию» ряд стандартных графических объектов, такие как шар, куб, цилиндр, пирамида и тд. — подробнее можно глянуть в описании ФВ.

Итак с объектами разобрались — но игра это не только объекты, это и «камера» от лица который мы видим «сцену» , так же это освещение и управление объектами. Для удобства создания и обновления всех объектов создадим «основной» модуль-функцию, пусть называется  «init»:

window.addEventListener('load', init, false);

function init() {
	// тут создаем сцену - камеру
	createScene();

	// тут добавляем свет, а то темно будет
	createLights();

	// тут появляются чать наших объектов, 
        // еще не все что нужно, но уже что-то
        // Сам самолетик / поверхность для полета будет море / облака
	createPlane();
	createSea();
	createSky();

	// здесь в зависимости от "контроллов",
        // мы будем менять положение наших объектов 
	// а так же генерировать изменения ландшавта
	loop();
}

 

Давайте начнем с самого простого и понятного — наших 3D объектов :

Самолетик:

 

Обучение JS и разработка игры Самолётик. Шаг 1.

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

Итак ШАГ 1.

Создаем папку «Самолетик», я это сделал на рабочем столе.

В этой папке создаем файл index.html

Делаем в нем следующий код:

<!DOCTYPE html>
<html lang="en" class="no-js">
 <head>
 <meta charset="UTF-8" />
 <title>Самолетик: Часть 1 </title>
 <link rel="stylesheet" type="text/css" href="css/styles.css" />
 <script type="text/javascript" src="js/three.js"></script>
 <script type="text/javascript" src="js/step1.js"/></script>
 </head>
 <body>
 <div class="world" id="world"></div>
 </body>
</html>

Потом внутри делаем еще 2 папки «css» и «js», и

Идем на сайт http://threejs.org/build/three.min.js и скачиваем последнюю версию самого фреймворка или скачиваем ее ОТ МЕНЯ  (версия скачана 12.07.2016), чтобы точно работало, и кидаем ее в папку «js» (имя должно быть three.js)

В папке «css» создаем файл  styles.css, со след наполнением (ОН ЖЕ,только с заготовкой для 2 части):

.world {
 position: absolute;
 width: 100%;
 height: 100%;
 overflow: hidden;
 background: -webkit-linear-gradient(#e4e0ba, #f7d9aa);
 background: linear-gradient(#e4e0ba, #f7d9aa);
}

Это наш «мир» а именно, фон.

Итак подготовка сделана. Осталось творить — ШАГ 2.

Статья для habrahabr

Решил попробовать стать полноценным жителем habrahabr.ru. Для получения заветного «ключа» нужно представить относительно полезную/интересную статью или ее перевод, или обзор по технологии — в общем что-то связанное с IT и не слишком «замыленное» на Habre.

Так как сейчас начал изучать JavaScript  в виду его активного роста, простоты изучения и увеличения возможностей за счет различный фреймворков, для создания web приложений — ориентир на SPA ( SPA в WiKi )

Кстати для начала разработки SPA сайтов и приложений кроме JS нужно еще знание HTML / HTML5 , CSS, AJAX.

После изучения базовых основ, а для этого мне очень помогла статьи на Habre, направляя на пусть истинный:

Как стать профессиональным веб-разработчиком: практическое руководство

А для «набивания руки» в JS использовал игру codecombat.com , которая вплоне дает понимания как основ программирования , так и использования JS в принципе. PS.  в CodeCombat можно выбрать не только JavaScript, но и например Phyton, для изучения — вперед дерзайте!

PS. Так же у каждого разработчика должна быть под рукой статься с Более 350 бесплатных инструментов для разработчиков так же на Habre.

По совету той же статься после основ, стал искать различные фреймворки и проекты с открытым исходным кодом. И ткак как мне всегда нравились игры нашел статью по созданию игры The Aviator — летающий самолетик который уклоняется от камней и собирает «топливо», в которой есть не только исходники, но и «пошаговое описание» как эту игру сделать:

Делаем игру «Самолетик» используя Three.js

Раз пример будет использовать Three.js, то соответственно наш путь идет на  http://threejs.org/ — где имеется полное описание для данного FW с примерами. Туду нужно заглянуть тем кто заинтересуется как работают «потрошки».

В рамках обучения лучше не просто повторить, то что уже кто-то сделал, а попробовать немного изменить и посмотреть что получиться. Сразу же возникло желание немного её упростить и переделать на «ловить» буквы и составлять из них слова — само собой расчет на аудиторию в 4-6 лет.

Ну как говориться если хочешь чему то научиться, попытайся обучить этому другого)…

Итак ШАГ 1.

 

 

 

Как получить базовые понимания основных элементов в программировании играя в игру?

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

Ligthbot1

Цель игры сделать «активными», путем их «подсвечивания», все синие квадратики.

Сайт игры с ссылками где ее можно скачать, есть бесплатная версия:

http://lightbot.com/

Игра отлично подойдет всем начинающим программистам).