7. Приходит к нам, значит, Ерлангист.
А мы ему кусок кода на С++, "где-то
тут критический баг, поправь. Два
часа тебе на изучение JVM".
https://www.facebook.com/aleksey.shipilev/posts/10154469128968049?pnref=story
8. https://www.facebook.com/aleksey.shipilev/posts/10154469128968049?pnref=story
Приходит к нам, значит, Ерлангист.
А мы ему кусок кода на С++, "где-то
тут критический баг, поправь. Два
часа тебе на изучение JVM".
На самом деле, у нас в проектах ramp-up даже
крутейших инженеров занимает от 3 месяцев. [….]
Никто в своём уме не будет думать, что чувак
сможет правильно что-то починить, если он не
знает кодобазы, прошлого опыта, и проч.
9. https://www.facebook.com/aleksey.shipilev/posts/10154469128968049?pnref=story
Приходит к нам, значит, Ерлангист.
А мы ему кусок кода на С++, "где-то
тут критический баг, поправь. Два
часа тебе на изучение JVM".
На самом деле, у нас в проектах ramp-up даже
крутейших инженеров занимает от 3 месяцев. [….]
Никто в своём уме не будет думать, что чувак
сможет правильно что-то починить, если он не
знает кодобазы, прошлого опыта, и проч.
11. 5 минутСвоё мнение о кандидате вы составляете за первые 5 минут общения. Остальное время
вы используете лишь для того, чтобы убедиться, или разубедиться, в своём мнении.
12. Какие вопросы бывают?
Алгоритмические задачки
Вопросы на знание ЯП (Java)
Вопросы на знание стандартной библиотеки (JDK)
Вопросы на знание фреймворков (Spring)
13. Какие вопросы бывают?
Вопросы о дизайне (как бы ты сделал…)
Общие вопросы по программированию
Вопросы о предыдущем опыте
17. public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
18. public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null){
return root;
}
TreeNode node = new TreeNode(root.val);
node.left = invertTree(root.right);
node.right = invertTree(root.left);
return node;
}
}
19. public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null){
return root;
}
TreeNode node = new TreeNode(root.val);
node.left = invertTree(root.right);
node.right = invertTree(root.left);
return node;
}
}
20. public class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null) { return null; }
final Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()) {
final TreeNode node = queue.poll();
final TreeNode left = node.left;
node.left = node.right;
node.right = left;
if(node.left != null) { queue.offer(node.left); }
if(node.right != null) { queue.offer(node.right); }
}
return root;
}
}
21. Найдите все пермутации букв в строке.
Напишите функцию для реверса строки.
Реализуйте BFS и DFS для обхода дерева,
дайте оценку времени исполнения и
потребления памяти.
…
22. Create a function that takes a string as a parameter.
This function will return and integer calculated with
the number of occurrence of characters in String used
as parameter:
Magic number:
23. Create a function that takes a string as a parameter.
This function will return and integer calculated with
the number of occurrence of characters in String used
as parameter:
Magic number:
result = number of 'a'
* number of 'p' or 'r' or 't' or 'f'
+ number of 'e'
* number of 'n' or 'm'
- number of ' '
* number of 'a'
+ number of 'n' or 'm'
24. Create a function that takes a string as a parameter.
This function will return and integer calculated with
the number of occurrence of characters in String used
as parameter:
Magic number:
magicNumber("i love java"); // returns -4
result = number of 'a'
* number of 'p' or 'r' or 't' or 'f'
+ number of 'e'
* number of 'n' or 'm'
- number of ' '
* number of 'a'
+ number of 'n' or 'm'
25. Что такое
“number of”?
result = number of 'a'
* number of 'p' or 'r' or 't' or 'f'
+ number of 'e'
* number of 'n' or 'm'
- number of ' '
* number of 'a'
+ number of 'n' or 'm'
Как это
считать?
41. FizzBuzzWrite a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz"
instead of the number and for the multiples of five print "Buzz". For numbers which are
multiples of both three and five print "FizzBuzz".
47. class Foo {
void boo() {
class Bar {}
Bar b = new Bar();
System.out.println(b);
}
}
Компилируется ли это код?
Зачем писать такой код?
Во что компилируется такой код?
79. 1) Мапы поменяются местами
2) Обе мапы будут иметь содержание как в м2
3) Обе мапы будут иметь содержание как в м1
4) Этот код не компилируется!
Map<String, String> m1 = stringsMap();
// {a=aaaaa, b=bbbbb}
Map<String, String> m2 = numbersMap();
// {a=11111, b=22222}
m2.replaceAll(m1::put);
System.out.println(m1);
System.out.println(m2);
Java 8 Puzzlers: The Strange, the Bizarre, and the Wonderful
80. Map<String, String> m1 = stringsMap();
// {a=aaaaa, b=bbbbb}
Map<String, String> m2 = numbersMap();
// {a=11111, b=22222}
m2.replaceAll(m1::put);
System.out.println(m1); // {a=11111, b=22222}
System.out.println(m2); // {a=aaaaa, b=bbbbb}
1) Мапы поменяются местами
2) Обе мапы будут иметь содержание как в м2
3) Обе мапы будут иметь содержание как в м1
4) Этот код не компилируется!
Java 8 Puzzlers: The Strange, the Bizarre, and the Wonderful
86. Примеры неадеквата
Алгоритмы - если работа заключается чтоб взять
данные из формочки и положить в БД
Вопросы про глубинные познания JVM, если мы
интервьюируем прикладного программиста
Вопросы о многопоточном программировании, если
мы знаем, что на работе это никогда не понадобится
“Пазлеры" - если мы всегда ожидаем правильный
ответ
87. Вполне адекватно спрашивать
Алгоритмы, если мы ищем кодера алгоритмов
Вопросы про глубинные познания JVM, если мы
собеседуем JVM-разработчика
Вопросы о многопоточном программировании,
если работа подразумевает разработки
многопоточных приложений
88. Базовые вопросы на знание языка в
зависимости от готовности кандидата
Вопросы о дизайне решений
Вопросы о том какие проекты и как
человек делал
Вполне адекватно спрашивать