Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

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

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

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

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

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

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

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

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

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

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

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

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

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

Чулан
Обнаружил очень необычное тестовое задание, вот его текст:

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

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

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

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

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

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

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

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

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

.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
Просмотры 10K
Комментарии 51

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

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

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

image

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

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

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

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

Учебный процесс в IT
Приветствую, друзья!

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Objective C *
imageЗдравствуйте, уважаемые читатели Хабрахабра!

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

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

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

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

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

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

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

Одна точка зрения на тестовое задание

Карьера в IT-индустрии
«Смысл поста можно выразить в одной фразе». Знакомо?

Просто приведу точку зрения одного работодателя (где я ПМ и иногда вынужденно HR):

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


Минусуйте, но я оставлю это здесь.
Всего голосов 55: ↑15 и ↓40 -25
Просмотры 5.8K
Комментарии 15

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

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

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

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

Веб-дизайн *Интерфейсы *Usability *Графический дизайн *


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

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

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

КДПВ из google.images

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

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

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


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

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

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


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

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

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

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

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

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

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

***

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

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

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

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