Pull to refresh

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

Reading time 1 min
Views 1.2K
HTML Academy corporate blog Studying in IT IT career Remote work

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

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 0

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

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

Читать дальше →
Total votes 49: ↑36 and ↓13 +23
Comments 144

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

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

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

Читать дальше →
Total votes 28: ↑18 and ↓10 +8
Comments 34

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

Reading time 2 min
Views 1.5K
Lumber room
Обнаружил очень необычное тестовое задание, вот его текст:

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

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

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

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

Представление начинается
Total votes 20: ↑10 and ↓10 0
Comments 24

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

Reading time 2 min
Views 3.3K
Lumber room
В одном из постов недавно мелькала эта мысль habrahabr.ru/blogs/arbeit/106832 — должны ли тестовые задания оплачиваться или нет.

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

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

Reading time 25 min
Views 11K
.NET *
Recovery mode
Sandbox
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

Читать дальше →
Total votes 41: ↑27 and ↓14 +13
Comments 51

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

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

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

image

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

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

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

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

Reading time 1 min
Views 16K
Studying in IT
Приветствую, друзья!

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

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

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

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

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

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

Reading time 9 min
Views 86K
Website development *Programming *
Какое-то время назад по Хабру прокатилась волна статей о поиске работы и прохождению собеседований. Многократно высказались и работодатели и соискатели. Но, к сожалению, не была в достаточной степени затронута тема тестовых заданий.

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

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

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


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

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

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

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

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

Reading time 5 min
Views 94K
Objective C *
imageЗдравствуйте, уважаемые читатели Хабрахабра!

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

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

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

Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 228: ↑128 and ↓100 +28
Comments 140

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

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

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

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

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

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

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

Reading time 5 min
Views 17K
Web design *Interfaces *Usability *Graphic design *


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

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

Reading time 4 min
Views 19K
Web design *Interfaces *Usability *Mobile applications design *Prototyping *

КДПВ из google.images

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

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

Reading time 5 min
Views 25K
Web design *Interfaces *Usability *Mobile applications design *Prototyping *


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

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

Reading time 5 min
Views 19K
Web design *Interfaces *Usability *Prototyping *Computer Animation *


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

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

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

Reading time 4 min
Views 13K
Web design *Interfaces *Usability *Mobile applications design *Graphic design *

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

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

Reading time 5 min
Views 57K
Ecwid corporate blog Development Management *Freelance Product Management *IT career
Глава отдела разработки Ecwid Василий Васильков написал о том, как кандидаты делают тестовые задания и что из этого выходит. Получилось забавно. Публикуем заметку слово в слово.

***

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

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

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

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

Тестовое задание как средство сбора идей

Reading time 3 min
Views 8.1K
Development for iOS *C++ *Development of mobile applications *Game development *Development for Android *
В данный момент доступно несколько компаний разного калибра, которые занимаются мобильными и другими играми. Всем требуется разработчики высокого класса, которые хорошо разбираются в движкам, языках, графике и в сопутствующих технологиях. И это не случайно — просто так никого не берут. Если кандидат студент, то максимум можно расчитывать на тестировщика и то, с n в 20 степени попытки.

image

Кому интересно настоящее положение дел — прошу под кат.
Total votes 22: ↑12 and ↓10 +2
Comments 32