Как стать автором
Обновить

Идеальный код и трудоустройство: подборка бесплатных онлайн-мероприятий в мае от HTML Academy

Время на прочтение 1 мин
Количество просмотров 1.2K
Блог компании HTML Academy Учебный процесс в IT Карьера в IT-индустрии Удалённая работа

Не знаем как у вас, а в Питере вместо мая началась зима — снег, бури, метель, грусть и тоска. В общем, лучшая погода, чтобы надеть любимый свитер, заварить кофе и стать немного мидлом из джуна. Или джуном, если вы пока не он. Или просто узнать что-то новое о разработке, даже если вы вообще мимо проходили в хаб DIY.

А что, если подумать, нужно разработчикам даже в самую плохую погоду? Улучшить свой код, выполнить тестовое в хорошей компании и найти работу мечты. Об этом и будут майские мероприятия HTML Academy — осталось только записаться и всё узнать.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Как наниматели используют вас для бесплатной работы в тестовом задании

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 10K
Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *Карьера в IT-индустрии

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 9

Тематические Медиа: задача для собеседования

Время на прочтение 3 мин
Количество просмотров 2.2K
Разработка веб-сайтов *
В свете того, что в последнее время похожая тема довольно часто стала появляться на страницах проекта, опубликую задание, которое на протяжении значительного времени мы предлагали соискателям на позицию php-разработчика в нашей компании.

Читать дальше →
Всего голосов 49: ↑36 и ↓13 +23
Комментарии 144

«Правильное» тестовое задание для соискателя-программиста

Время на прочтение 1 мин
Количество просмотров 2.9K
Чулан
Занимаясь одбором кандидатов на вакансию программиста, столкнулся с проблемой — подобрать хорошее тестовое задание. Цель — увидеть, программист ли передо мной или человек, хорошо знающий фреймворк\язык\технллогию. Поясню — программист, это человек, которые может решить нетривиальную проблему. Сделать сайт-блог, даже e-commerce сейчас является тривиальной проблемой, на это способен любой junior. Natural-born программистдумает по-другому.

под катом образец тестового задания

Читать дальше →
Всего голосов 28: ↑18 и ↓10 +8
Комментарии 34

Тестовое задание

Время на прочтение 2 мин
Количество просмотров 1.4K
Чулан
Обнаружил очень необычное тестовое задание, вот его текст:

«Взгляните на приведенную ниже функцию. На первый взгляд, как вам показалось, что она делает? Что в ней не так?

Внимательно ознакомьтесь с кодом функции.

Какие потенциальные недочёты и неудобства вы в ней обнаружили?

Каким образом целесообразнее всего произвести рефакторинг или спроектировать код заново? (если это нужно, на ваш взгляд, сделайте это).»

Представление начинается
Всего голосов 20: ↑10 и ↓10 0
Комментарии 24

Таки должны ли тестовые задания (для приема на работу) оплачиваться потенциальным работодателем?

Время на прочтение 2 мин
Количество просмотров 3.1K
Чулан
В одном из постов недавно мелькала эта мысль habrahabr.ru/blogs/arbeit/106832 — должны ли тестовые задания оплачиваться или нет.

Мое мнение, что тестовые задания НЕ должны оплачиваться (точнее, такой проблемы вообще вставать не должно), и вот по какой причине.
Читать дальше →
Всего голосов 92: ↑56 и ↓36 +20
Комментарии 94

Тестовое задание для Связного FixedThreadPool на C#. Что здесь не так? UPD

Время на прочтение 25 мин
Количество просмотров 11K
.NET *
Recovery mode
Из песочницы
UPDATE: Я не мог отказать себе в удовольствии исправить свой ошибочный код. Добавил раздел «Работа над ошибками», в котором привожу исправленный код и описание исправлений, основанное на полученных комментариях.

Это скорее пост-вопрос к специалистам, нежели просто кусок полезной информации. Приглашаю к дискуссии.
Недавно я имел счастье послать своё резюме в Связной на позицию .NET разработчика. В ответ меня попросили сделать тестовое задание на знание многопоточности. Я не могу назвать себя экспертом в этой области, но, тем не менее, прекрасно понял, как мне показалось, как реализовать следующие требования:

Требуется реализация класса на языке C#, аналогичного FixedThreadPool в Java, со следующими требованиями:
  • В конструктор этого класса должно передаваться количество потоков, которые будут выполнять задачи.
  • Интерфейс класса должен предоставлять методы: boolean execute(Task task, Priority priority) и void stop()
  • Интерфейс Task должен содержать один метод: void execute(), который вызывается в произвольном потоке.
  • Тип Priority — это перечисление из трёх приоритетов: HIGH, NORMAL, LOW. При этом во время выбора следующего задания из очереди действуют такие правила: на три задачи с приоритетом HIGH выполняется одна задача с приоритетом NORMAL, задачи с приоритетом LOW не выполняются, пока в очереди есть хоть одна задача с другим приоритетом.
  • До вызова метода stop() задачи ставятся в очередь на выполнение и метод boolean execute(Task task, Priority priority) сразу же возвращает true, не дожидаясь завершения выполнения задачи; а после вызова stop() новые задачи не добавляются в очередь на выполнение, и метод boolean execute(Task task, Priority priority) сразу же возвращает false.
  • Метод stop() ожидает завершения всех текущих задач (не очищая очередь).


Поскольку в задании не было сказано какими примитивами я должен пользоваться, должен ли сделать всё на простейших Thread или же использовать ThreadPool, TPL и т.п., я решил, что задание предполагает использование самых базовых элементов: Thread, ManualResetEvents и т.п. Написал за несколько часов, отослал. Сегодня позвонил и получил ответ через кадровика, который звучал примерно так: «это даже не близко к том, что надо». Это меня озадачило, ибо код работает и протестирован, явных огрехов, на мой взгляд нету.

Итак, на ваш суд представляю мою реализацию FixedThreadPool и сопутствующих классов. Сразу предупреждаю, что, по их мнению реализация ошибочна, и, соответственно, брать мою идею за основу не стоит. Некоторые коментарии по коду:

  • я решил инкапсулировать потоки задач в самом классе задачи,
  • два параметра с типом ILog нужны только для тестовых целей, к основной функциональности они, понятное дело, отношения не имеют,
  • весь проект, включая тестовое приложение можно загрузкить по ссылке (27 килобайт): тестовый проект на ifolder

Читать дальше →
Всего голосов 41: ↑27 и ↓14 +13
Комментарии 51

Алгоритм проведения IT собеседования

Время на прочтение 4 мин
Количество просмотров 57K
Управление проектами *
В сегодняшнем посте я хочу обсудить тему — эффективного IT собеседования.
Она родилась из комментария к одному из моих прошлых постов: «Было бы здорово почитать развернутый рассказ про то, как собеседовать людей.» Собственно, сказано — сделано!

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

image

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

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

Если вам эта тема интересна и есть чем поделится с хабрачитателями — прошу под кат.
+ Бонус в конце статьи.
Читать дальше →
Всего голосов 45: ↑35 и ↓10 +25
Комментарии 111

О сложности тестового задания или так ли много 40 часов

Время на прочтение 1 мин
Количество просмотров 16K
Учебный процесс в IT
Приветствую, друзья!

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

Я хочу коснуться поиска работы молодыми специалистами.
Читать дальше →
Всего голосов 41: ↑32 и ↓9 +23
Комментарии 78

Тестовое задание — долго, интересно, но нерезультативно

Время на прочтение 3 мин
Количество просмотров 57K
Управление проектами *
Не так давно довелось мне быть приглашенным на собеседование в кадровое агентство по вакансии «Руководитель проекта». Ни в коем разе не хочу кидать тень на подобные организации, но в моем случае предметно по телефону общаться было весьма сложно. Если вкратце, то речь шла о проекте по разработке мобильного приложения под мобильные устройства.

При этом предполагалось, что кандидат должен не только обладать компетенциями непосредственно в области управления ИТ-проектами, но еще и досконально разбираться в низкоуровневых нюансах разработки под Android. Милую девушку-рекрутера мне удалось в этом разубедить, показав обладание достаточными знаниями в предметной области. И вот я на собеседовании.
И что там?
Всего голосов 53: ↑32 и ↓21 +11
Комментарии 39

Что можно узнать о кандидате по тестовому заданию

Время на прочтение 9 мин
Количество просмотров 86K
Разработка веб-сайтов *Программирование *
Какое-то время назад по Хабру прокатилась волна статей о поиске работы и прохождению собеседований. Многократно высказались и работодатели и соискатели. Но, к сожалению, не была в достаточной степени затронута тема тестовых заданий.

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

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

На экране есть сетка M на N из цветных квадратиков. Нужно реализовать на этой сетке следующий эффект — по клику слева направо со скоростью V пробегает волна, меняя цвет квадратиков на другой (единый для всей волны). Эффект должен работать при любых значениях M, N, V. Волна начинается всегда у левой стенки. Одновременно может идти несколько волн разного цвета.
Анимационный пример: http://dl.dropbox.com/u/3601116/wave.swf (покликать по флэшке).


Я не сомневаюсь, что это задание с легкостью сделают все программисты посетители Хабра.

А у меня получилась следующая статистика:

  1. В итоге, задание взяли чуть больше 20 человек.
  2. Пара человек ничего не сделали.
  3. Половина из оставшихся (по моим критериям) с ним не справились.
  4. Кандидаты четко разделились на весьма интересные группы.

Подумайте немного, как бы вы выполнили это задание, и заходите под кат, где я расскажу обо всем подробнее.
Читать дальше →
Всего голосов 198: ↑135 и ↓63 +72
Комментарии 260

Как я выбил собеседование в Facebook

Время на прочтение 5 мин
Количество просмотров 93K
Objective C *
imageЗдравствуйте, уважаемые читатели Хабрахабра!

В этой статье я расскажу о том, как мне, ничем не примечательному студенту, без особых проблем удалось выбить собеседование в одной из компаний списка «Biggies» — Facebook.

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

К сожалению, FB не является моей приоритетной целью; поэтому съезжу на интервью, посмотрю на вопросы и напишу следующую статью о том, что же спрашивали и что же я могу спросить на интервью в моей студии.

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 228: ↑128 и ↓100 +28
Комментарии 140

Проблемы объёмных тестовых заданий при выборе работы

Время на прочтение 9 мин
Количество просмотров 36K
Ненормальное программирование *
Глядя в историю выполнения мной тестовых заданий, видятся закономерности, о которых хотелось бы предупредить коллег, потому что такие случаи встречаются регулярно и, скорее всего, независимо от специализации разработок. Например, к таким выводам я пришёл, имея на счету более десятка выполненных в разные годы заданий объёмом 2-5 рабочих дней каждое. А выводы — настолько парадоксальные, что, думаю, вызовут споры и удивление у тех, кто этого не прошёл. Сформулирую основной вывод для начала, а затем покажу обоснования на примерах из практики.

Вывод: (софизм) тестовое задание объёмом более дня с основной целью (поступления на работу) выполнять невыгодно.
Почему так?
Всего голосов 44: ↑33 и ↓11 +22
Комментарии 44

3 задачи, которые отсеивают 9 из 10 «Senior PHP» кандидатов

Время на прочтение 2 мин
Количество просмотров 91K
Карьера в IT-индустрии
Кандидаты — «Senior PHP», с опытом, до собеседования проходят первичный отбор по резюме\сопроводительному письму, то есть на собеседование попадают лишь те, кто выглядят как приличные программисты. Собеседования проводятся удалённо — Skype/ICQ (без голоса). Т.е. теоретически можно гуглить, хоть я и прошу этого не делать.

Итак, тесты, которые отсетвают «типа программистов»:
Читать дальше →
Всего голосов 76: ↑38 и ↓38 0
Комментарии 142

И тестовое задание может оказаться интересным

Время на прочтение 5 мин
Количество просмотров 17K
Веб-дизайн *Интерфейсы *Usability *Графический дизайн *


Приветствую тебя, центр вселенского разума — Хабр. Сегодня в центре внимания будет ресурс Codesign.io. Ресурс, призванный упростить жизнь дизайнеру и клиенту на стадии согласования правок в макетах любого направления. Не так давно миновал конкурс на позицию UI/UX-дизайнера (удалённо) и я, как скромный профессионал в данном направлении, решил не упускать возможности поучаствовать.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 12

Проецируя Google Material Design на десктопную систему… (часть первая)

Время на прочтение 4 мин
Количество просмотров 19K
Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *Прототипирование *

КДПВ из google.images

Озарённый лучами вдохновения, хочу в данной статье наконец-то самморизировать опыт разработки интерфейса внутрикорпоративной CRM для компании Performance Lab. Особенность для меня лично в данном проекте была, прежде всего, в подходе к гайдлайнам — за основу была взята концепция Google Material Design.
Итак, если вы, как и я отдаёте предпочтение шрифту Roboto, сочным предустановленным цветовым палитрам, чётко сформулированным правилам поведения элементов… И, как и бОльшая часть, разработчиков вы банально предпочитаете Android, то добро пожаловать под кат. Впрочем, поклонникам iOS — тоже не запрещается :)
Читать дальше →
Всего голосов 16: ↑6 и ↓10 -4
Комментарии 34

Проецируя Google Material Design на десктопную систему… (часть вторая)

Время на прочтение 5 мин
Количество просмотров 25K
Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *Прототипирование *


Краткое содержание первой части: контрактный клиент, редизайн их собственной CRM-ки, стиль Google Material, привычная среда обитания, аудитория — опытные айтишники. Кто не вдохновился первой частью и остальных тоже — приглашаю под кат.
Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 40

Проецируя Google Material Design на десктопную систему… (часть третья)

Время на прочтение 5 мин
Количество просмотров 19K
Веб-дизайн *Интерфейсы *Usability *Прототипирование *Компьютерная анимация *


Краткое содержание второй части: редизайн раздела “Сделки” (воронка продаж), подбор цветов для всех стадий, отступы — воздух — свобода… Упс… Клиент, ты серьёзно? Взять и запихать теперь всё в 1370х768?!.. Прощайте “отступы — воздух — свобода”… Пришлось перейти в “сжатый” стиль.

Итак, тех, кто питает интерес к продолжению обзора проделанных работ — я приглашаю под кат. А тех, кто считает что GMD для десктопной системы, полный провал — я приглашаю более настойчиво (кто знает, может быть в заключении вы услышите то, что хотите услышать).
Читать дальше →
Всего голосов 17: ↑12 и ↓5 +7
Комментарии 36

Проецируя Google Material Design на десктопную систему… (часть четвёртая и заключительная)

Время на прочтение 4 мин
Количество просмотров 13K
Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *Графический дизайн *

Это будет заключительная часть о редизайне внутрикорпоративной CRM “Chronos”. Я опишу оставшиеся разделы и сделаю кое-какие выводы о проделанной работе. Тех, кто только пропустил первые три части, приглашаю пройтись по ссылкам: первая, вторая и третья. Те, кто уже утомился от моей писанины по данному проекту — сходите заварите кофейку, остальные могут проследовать глубже в подкатье
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 9

История одного тестового задания

Время на прочтение 5 мин
Количество просмотров 57K
Блог компании Ecwid Управление разработкой *Фриланс Управление продуктом *Карьера в IT-индустрии
Глава отдела разработки Ecwid Василий Васильков написал о том, как кандидаты делают тестовые задания и что из этого выходит. Получилось забавно. Публикуем заметку слово в слово.

***

Я расскажу историю одного тестового задания. Немного длинную, но, надеюсь, интересную.

У нас в Ecwid все тестовые задания для инженеров выложены открыто на GitHub вот тут — github.com/Ecwid/new-job. Можно просто начать делать любую понравившуюся задачу, никого не предупреждая, а потом, когда сами будете довольны результатом, поделиться им со мной.

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

Качальщик нужно сделать действительно очень примитивный. Судите сами — ты ему список ссылок в текстовом файле, а он скачивает эти файлы и кладет в указанную папку на локальном диске. Должен уметь качать несколько файлов одновременно (в несколько потоков, например, 3 потока) и выдерживать указанное ограничение на скорость загрузки, например, 500 килобайт в секунду. Всё.
Читать дальше →
Всего голосов 150: ↑139 и ↓11 +128
Комментарии 59