Придумать задачу для интервью по JAVA.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Придумать задачу для интервью по JAVA.
Дается возможность поучаствовать в улучшении процесса найма.
Нужно до пятницы предложить задачку.
Задачка будет даваться на интервью. Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
Ожидаемый уровень - сениор.
Требуется понять уровень из набора следуюших скилзов
- core java, понятие базовых концепций
- умение писать понятный и желательно тестируемый код
- unittest (желательно)
- дизайн паттернс в тему (возможно, если задача потребует)
- и вообще умение понять задачу
кандидат не обязан доделать все за час, но интересно как далеко он сможет зайти и возможно рассказать далее свои задумки.
короче цель отсеять тех кто пишет плохой код или вообще его не пишет.
работа с финансами, но это не суть важно, цели проверить алгоритмы и формулы в рамках этой задачи нет.
если есть идеи предлагайте, а я пока тоже думаю.
Нужно до пятницы предложить задачку.
Задачка будет даваться на интервью. Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
Ожидаемый уровень - сениор.
Требуется понять уровень из набора следуюших скилзов
- core java, понятие базовых концепций
- умение писать понятный и желательно тестируемый код
- unittest (желательно)
- дизайн паттернс в тему (возможно, если задача потребует)
- и вообще умение понять задачу
кандидат не обязан доделать все за час, но интересно как далеко он сможет зайти и возможно рассказать далее свои задумки.
короче цель отсеять тех кто пишет плохой код или вообще его не пишет.
работа с финансами, но это не суть важно, цели проверить алгоритмы и формулы в рамках этой задачи нет.
если есть идеи предлагайте, а я пока тоже думаю.
-
- Уже с Приветом
- Posts: 256
- Joined: 14 Jul 2011 09:07
- Location: SaintP -> NYC
Re: Придумать задачу для интервью по JAVA.
Вот задача на час. Довольно простая но на мой взгял показательная Готовый юнит тест можно не давать, или дать базовый и попросить дописать до 100% покрытия к примеру
Code: Select all
import java.util.List;
/**
* A template file with basic JUnit tests has been provided.
* Note that your program will be evaluated by a more comprehensive test suite.
*
* Please consider the runtime and space complexity of your algorithms and comment on those trade offs.
*
* Good luck!
*/
public class ArrayFun {
/***
* @param chars an array of characters
* @return the same array with the character order reversed
*/
public static char[] reverse(char[] chars){
//TODO - implement me!
return null;
}
/***
* A palindrome is a word, phrase, number, or other sequence of units that may be
* read the same way in either direction.
*
* Caveat 1 : punctuation and spaces do not count as contributing characters
* (hint) use the static method Character.isLetter(char c)
*
* Caveat 2 : upper case letters should still match with lower case
* (hint) use the static method Character.toLowerCase(char c)
*
* Examples of valid palindromes :
*
* "Never odd or even"
* "No trace; not one carton"
* "A Toyota! Race fast... safe car: a Toyota"
* "Sums are not set as a test on Erasmus"
*
* @return true if chars form a valid palindrome, otherwise false
*/
public static boolean isPalindrome(char[] chars){
//TODO - implement me!
return false;
}
/***
* Find the most used char in the following char[]
* If a few chars share the top count, return them all.
*
* Caveat 1: exclude the space (' ') character from your count.
* Caveat 2: treat all uppercase characters as their lowercase counterpart
*
* @return the characters which appear most frequently
*/
public static List<Character> mostUsedCharacter(char [] chars){
//TODO - implement me!
return null;
}
/***
* Find the number of unique palindromes in the char array
*
* Example: for the array {'a', 'b', 'b', 'a', 'c', 'c', 'a', 'b' 'b', 'a', 'd', 'd', 'a'}
* the palindromes are
* abbaccabba
* bbaccabb
* baccab
* acca
* cc
* abba
* bb
* adda
* dd
*
* @return the number of unique palindromes in the character array
*/
public static int numberOfPalindromes(char[] chars){
//TODO - implement me!
return 0;
}
}
Code: Select all
import org.junit.Assert;
import org.junit.Test;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ArrayFunTest {
@Test
public void testReverse() throws Exception {
final char[] chars = "Novus".toCharArray();
final char [] reversed = "suvoN".toCharArray();
Assert.assertArrayEquals(reversed, ArrayFun.reverse(chars));
}
@Test
public void testIsPalindrome() throws Exception {
final char[] palindrome = "A Toyota! Race fast... safe car: a Toyota".toCharArray();
final char[] notPalindrome = {'N','o','v','u','s'};
Assert.assertTrue(ArrayFun.isPalindrome(palindrome));
Assert.assertFalse(ArrayFun.isPalindrome(notPalindrome));
}
@Test
public void testMostUsedCharacter() throws Exception{
final char[] chars = "A Toyota! Race fast... safe car: a Toyota".toCharArray();
final List<Character> output = ArrayFun.mostUsedCharacter(chars);
Assert.assertEquals(output.size(), 1);
Assert.assertEquals(output.get(0), new Character('a'));
final char[] chars2 = "Abcba".toCharArray();
final List<Character> output2 = ArrayFun.mostUsedCharacter(chars2);
final Set<Character> resultSet = new HashSet<Character>(output2);
Assert.assertEquals(output2.size(), 2);
Assert.assertTrue(resultSet.contains('a'));
Assert.assertTrue(resultSet.contains('b'));
Assert.assertFalse(resultSet.contains('c'));
}
@Test
public void testNumberOfPalindromes() throws Exception {
char[] chars = "abbaccabbadda".toCharArray();
int numPalindromes = ArrayFun.numberOfPalindromes(chars);
Assert.assertEquals(numPalindromes, 9);
}
}
-
- Уже с Приветом
- Posts: 12257
- Joined: 20 Dec 2000 10:01
- Location: Bellevue, WA
Re: Придумать задачу для интервью по JAVA.
я бы не давал темплейты, пусть сами придумывают или берут из Eclipse
-
- Уже с Приветом
- Posts: 12119
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Придумать задачу для интервью по JAVA.
Ну вот, правда это не на час и близко. Это не я правда придумала такое давать, и не скажу что очень даже хорошая задача.
You have two lists.
List A has m unique elements in random order.
List B has n non-unique elements in random order.
For each element of list A, there are one or more corresponding elements from list B.
Write a program that prints on the screen each element from list A. Under each element from list A, print out the corresponding elements from list B.
Вчера например выяснилось что товарищ и лист-то обойти нормально не может, а про хэш мэп намека не уловил тоже, и как хэш мэп работает и индекс в таблицах у БД тоже рассказать не осилил, при этом утверждал что Lead Java Developer.
You have two lists.
List A has m unique elements in random order.
List B has n non-unique elements in random order.
For each element of list A, there are one or more corresponding elements from list B.
Write a program that prints on the screen each element from list A. Under each element from list A, print out the corresponding elements from list B.
Вчера например выяснилось что товарищ и лист-то обойти нормально не может, а про хэш мэп намека не уловил тоже, и как хэш мэп работает и индекс в таблицах у БД тоже рассказать не осилил, при этом утверждал что Lead Java Developer.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
а в чем хранится correspondence between element A and elements B?
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Резонный вопрос. Взаимосвязь элементов A и B не указана.Komissar wrote:а в чем хранится correspondence between element A and elements B?
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
А прекрасная тестировщица?valchkou wrote:Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
-
- Уже с Приветом
- Posts: 12119
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Придумать задачу для интервью по JAVA.
Так в чем сохраните. Есть 2 листа на входе с числами, а дальше делайте с ними что хотите включая создание новых структу. Один из вариантов решения например засунуть все в HashMap где ключи это числа из 1го списка и пройдясь по 2му списку разок можно в значение для ключа класть кол-во сколько встретили.Komissar wrote:а в чем хранится correspondence between element A and elements B?
Т е на входе что-то типа
A - [1, 6, 7, 8]
B- [1, 6, 8, 8, 7, 1, 8, 7, 6]
Как-то так.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Или вообще девушка, чтобы усложнить ему задачу. Вообщем вот такое интервью девелопера (хакера и т.п.):Kolbasoff wrote:А прекрасная тестировщица?valchkou wrote:Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
(детям не смотреть)
http://www.youtube.com/watch?v=rUY8HysBzsE
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
раз под "соответствием" подразумевается численное равенство "элементов" из двух листов, то задача сформулирована плоховато.
Хотя согласен, что неплохое начало для беседы по выявлению фродов.
Хотя согласен, что неплохое начало для беседы по выявлению фродов.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Ну да, как раз должно занять пару минут, чтобы уточнить формулировку (т.е. сформулировано действительно плохо) и еще 5 минут, чтобы написать (многие просто медленно на доске пишут).Komissar wrote:раз под "соответствием" подразумевается численное равенство "элементов" из двух листов, то задача сформулирована плоховато.
Хотя согласен, что неплохое начало для беседы по выявлению фродов.
-
- Уже с Приветом
- Posts: 12119
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Придумать задачу для интервью по JAVA.
Я просто из емейла скопировала. Как-то сложно понять что надо из условия но смысл такой что надо просто посчитать сколько каждый элемент из А встречается в В в принципе.Komissar wrote:раз под "соответствием" подразумевается численное равенство "элементов" из двух листов, то задача сформулирована плоховато.
Хотя согласен, что неплохое начало для беседы по выявлению фродов.
Дать кандидату минут 15-20 самостоятельно подумать и пусть пишет что надумал на доске.
-
- Уже с Приветом
- Posts: 12257
- Joined: 20 Dec 2000 10:01
- Location: Bellevue, WA
Re: Придумать задачу для интервью по JAVA.
вот вариант для senior level
выдана схема кроссворда и словарь из 50-100 тыщ слов
задача заполнить пустые клетки словами, но это часа на 2-4 скорее а не на 1
выдана схема кроссворда и словарь из 50-100 тыщ слов
задача заполнить пустые клетки словами, но это часа на 2-4 скорее а не на 1
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
15-20 минут думать над этой задачкой?Krys-Krys wrote:Дать кандидату минут 15-20 самостоятельно подумать и пусть пишет что надумал на доске.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
ну если он глазами сверлит ее декольте, вместо того, чтобы задачу слушать...
-
- Уже с Приветом
- Posts: 12119
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Придумать задачу для интервью по JAVA.
Ну пусть подумает. Это для очень средненького девелопера таска.Интеррапт wrote:15-20 минут думать над этой задачкой?Krys-Krys wrote:Дать кандидату минут 15-20 самостоятельно подумать и пусть пишет что надумал на доске.
Вчера чел писал решения, как проходится по списку. Везде шел через loop с индексом и итераторы. Я у него спросила про generics, он сказал да-да, generics знаю и пользую. Тогда я сказала что у нас есть List<String> names который мы получаем из какого-то метода к примеру. Попросила его распечатать что в списке на экран. Он пошелся лупом с индексом, типа
for(int i=0; i<names.size(); i++). Тогда я сказала ему сделать тоже самое с generics, он стал делать это через итератор! Я поняла что про
for(Sting s: names){
System.out.println(s);
} синтакт он просто не знает. Ну как так?
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
да ничего страшного. БОльшая часть моей жизни в Яве прошла до введения туда дженериков.
"И никто от этого не умер" (тм)
Лупа с индексом особенно хороша там, где в зависимости от значения индекса надо по-разному обрабатывать элемент массива.
А про проверку строк (если у вас List<String>) на эквивалентность Вы его тоже попытали? Ибо там есть нюансы...
"И никто от этого не умер" (тм)
Лупа с индексом особенно хороша там, где в зависимости от значения индекса надо по-разному обрабатывать элемент массива.
А про проверку строк (если у вас List<String>) на эквивалентность Вы его тоже попытали? Ибо там есть нюансы...
-
- Уже с Приветом
- Posts: 12119
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Придумать задачу для интервью по JAVA.
Ну generics уже с 5й джавы есть это уже 10 лет на рынке!Komissar wrote:да ничего страшного. БОльшая часть моей жизни в Яве прошла до введения туда дженериков.
"И никто от этого не умер" (тм)
Лупа с индексом особенно хороша там, где в зависимости от значения индекса надо по-разному обрабатывать элемент массива.
А про проверку строк (если у вас List<String>) на эквивалентность Вы его тоже попытали? Ибо там есть нюансы...
Да что тут спрашивать то, еще спросили про индексы в БД, про то на чем основам принцип работы, про HashMap, в общем он ничего не ответил нормально. Вообще никак.
Потом я еще про maven у него пару вопросов спросила, там он тоже не ответил. Спросила просто так -
у нас есть проект который мы надевелопили год назад и все защибись работает. Все зависимости в виде jars у нас описаны в <dependencies> секции, мы отдает проект контрактору который не у нас в офисе сидит а удаленнищику, а у него проект через mvn clean install не билдится и ошибка в том что какая-то dependency не найдена в public repository. Почему так что у нас работает у всех в компании а у него нет? Как нам решить проблему? По хорошему и "по быстрому"? Есть как минимум 2 решения что я вижу - в общем он ни на 1 из этих вопросов тоже не ответил.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Ну если бы чувак нормально решил задачу, я бы забил на foreach синтаксис. Хотя бы просто по той причине, что если посмотреть каким-нибудь JAD, что же генерится дляKrys-Krys wrote:Тогда я сказала ему сделать тоже самое с generics, он стал делать это через итератор! Я поняла что про
for(Sting s: names){
System.out.println(s);
} синтакт он просто не знает. Ну как так?
for(String s: names),
то мы бы увидели, что компилятор генерит:
for(Iterator iterator = names.iterator(); iterator.hasNext(); и т.д. и т.п.)
т.е. таки генерит те самые итераторы. Так что можно списать на то, что чувак компилятору работу упростиль. Лишь бы задачу нормально решил. А синтаксис - хрен с ним, его любой выучить может.
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Придумать задачу для интервью по JAVA.
Что спрашивали меняvalchkou wrote:Дается возможность поучаствовать в улучшении процесса найма.
Нужно до пятницы предложить задачку.
Задачка будет даваться на интервью. Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
Ожидаемый уровень - сениор.
Требуется понять уровень из набора следуюших скилзов
- core java, понятие базовых концепций
- умение писать понятный и желательно тестируемый код
- unittest (желательно)
- дизайн паттернс в тему (возможно, если задача потребует)
- и вообще умение понять задачу
кандидат не обязан доделать все за час, но интересно как далеко он сможет зайти и возможно рассказать далее свои задумки.
короче цель отсеять тех кто пишет плохой код или вообще его не пишет.
работа с финансами, но это не суть важно, цели проверить алгоритмы и формулы в рамках этой задачи нет.
если есть идеи предлагайте, а я пока тоже думаю.
Задача лифта т.е. интерфейс там типо
up()
down()
stop()
call(int i)
int getFloor()
Sleeping Barber - хорошая задачка я бы спросил если чел реально в мультипоточность идет.
Так же спрашивали пару раз Судоку
Не помню спрашивали или это я сам фигней маялся еще крестики нолики неплохо выглядят для задачки на час.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Разве что пять-в-ряд (gomoku)Sergunka wrote:еще крестики нолики неплохо выглядят для задачки на час.
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Придумать задачу для интервью по JAVA.
А чо есть какая-то разница сколько там в ряд? Все должно быть конфигураблИнтеррапт wrote:Разве что пять-в-ряд (gomoku)Sergunka wrote:еще крестики нолики неплохо выглядят для задачки на час.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Еще какая большая разница. 3x3 tic tac toe пишется буквально за 10 минут (ну ес-но без отрисовки графики, просто функции player(x,y), computer(x,y)), там просто тупо можно расписать массив с решениями. А 5 в ряд на каком-нибудь 15x15 (20x20 и т.п.) поле - там уже и сканировать массив нужно, и вводить коэфициенты весов для "думающего" алгоритма для компьютера (если мы имеем в виду крестики-нолики играть против компьютера).Sergunka wrote:А чо есть какая-то разница сколько там в ряд? Все должно быть конфигураблИнтеррапт wrote:Разве что пять-в-ряд (gomoku)Sergunka wrote:еще крестики нолики неплохо выглядят для задачки на час.
-
- Уже с Приветом
- Posts: 12257
- Joined: 20 Dec 2000 10:01
- Location: Bellevue, WA
Re: Придумать задачу для интервью по JAVA.
3*3 можно захардкодить
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Придумать задачу для интервью по JAVA.
Ну дык в этом и прикол как чел подходит к делу. Стратегия это отдельный момент чел их может описать отдельно задав глубину поиска. Главное посмотреть какой подход к структуре данных и вцелом как проект может развиваться.Интеррапт wrote:Еще какая большая разница. 3x3 tic tac toe пишется буквально за 10 минут (ну ес-но без отрисовки графики), там просто тупо можно расписать массив с решениями. А 5 в ряд на каком-нибудь 15x15 (20x20 и т.п.) поле - там уже и сканировать массив нужно, и вводить коэфициенты весов для "думающего" алгоритма для компьютера (если мы имеем в виду крестики-нолики играть против компьютера).Sergunka wrote:А чо есть какая-то разница сколько там в ряд? Все должно быть конфигураблИнтеррапт wrote:Разве что пять-в-ряд (gomoku)Sergunka wrote:еще крестики нолики неплохо выглядят для задачки на час.
"A patriot must always be ready to defend his country against his government." Edward Abbey