Чего Они Хотят От Кандидатов На Собеседовании По Программированию?

Здравствуйте, хабровчане.

В ожидании начала курса «Инженер по обеспечению качества Java» делимся с вами продолжением этот материал .



Чего они хотят от кандидатов на собеседовании по программированию?

Я не знал этого во время своих первых интервью.

Но разработчики не просто наблюдали за мной — они ждали меня.

Они ожидали, что я буду действовать по следующему алгоритму: Укажите задачу

Спросите: «Что вы подразумеваете под палиндромомЭ» Это отвечает на вопрос: приступит ли кандидат к решению задачи сразу - даже не осознавая, что ее технические условия не до конца ясны? Или он немного подумает и уточнит требованияЭ» «Мы имеем в виду последовательность, которая читается одинаково слева направо и справа налево.

Ваше решение должно быть чувствительным к регистру: маленькое r не идентично большому".

Начните с примеров Спросите: «Слова «доход» и «хижина» даны в качестве примера.

А как насчет фраз вроде «Роза упала Азору на лапуЭ» А как насчет пустой строки или строки из одного символа? Это отвечает на вопрос: будет ли кандидат учитывать достаточно крайних случаев? Насколько это будет точно и внимательно?

Чего они хотят от кандидатов на собеседовании по программированию?



Прежде чем описывать код, кратко познакомьте интервьюера с алгоритмом.

Как кандидат подходит к проблеме? Говорит ли он свои мысли вслух, чтобы интервьюер мог их услышать? Например,
  
  
  
   

string s = "alla"

.

Мы можем использовать вспомогательный метод для Java String, charAt(int i).

Введите индекс строки в метод, и он выведет символ по этому индексу:

s.charAt(0) == 'a' s.charAt(1) == 'l' s.charAt(2) == 'l' s.charAt(3) == 'a'

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

length()

:

s.length == 4

Чтобы узнать последний символ, вы можете использовать:

int len = s.length s.charAt(len - 1)

Мы начали отсчет с 0, поэтому последний символ будет «длина минус 1».

Назовем первый символ «первым», а последний — «последним».

Если первый символ s.charAt(first) не совпадает с s.charAt(last), то это не палиндром.

Мы выводим ложь.

Если первый символ s.charAt(first) соответствует s.charAt(last), мы переходим к оценке следующего набора символов, перемещая один символ от «первого» и от «последнего».

Если все совпадает, выведите true. После проверки алгоритма у интервьюера можно приступать к написанию кода:

public boolean isPalindrome(String s) { int first = 0; int last = s.length() - 1; while (first < last) { if (s.charAt(first) != s.charAt(last)) { return false; } first++; last--; } return true; }



Отладка и тестирование

Возьмите исходные тестовые примеры и попытайтесь представить, что произойдет, если вы вставите их в код. Интервьюеры проверяют вашу внимательность при отладке.

( Можете ли вы обнаружить ошибки в собственном коде без посторонней помощи? ).

Интервьюеры дадут вам советы, если вам удалось произвести на них хорошее впечатление.

( Если мы дадим кандидату подсказки, воспользуется ли он ими? Готов ли он прислушиваться к мнению других людей? Умеет ли он работать с людьми, занимающими более высокие должности? ).



Покажите свой код другим людям и получите их отзывы.

Я показал свое решение проблемы палиндрома моему другу-разработчику.

Он поморщился: «Почему ты использовал переменные «первый» и «последний»? И зачем вы использовали цикл «цикл», если можно обойтись «for»? Все можно было сделать короче, изящнее и быстрее:

public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len - 1 - i)) { return false; } } return true; }



Что дальше

Освоение языка программирования не произойдет в одночасье.

Поэтому лучше следовать такому алгоритму: Найдите в Интернете задачи по программированию базового уровня.

Попробуйте решить их с помощью бумаги и ручки.

Если вы не можете их решить, ознакомьтесь с официальной документацией по языку программирования и посмотрите, какие встроенные методы могут вам помочь.

Сформулируйте свое решение, прежде чем искать чужое.

Если вы будете собирать информацию и изучать ее самостоятельно, есть вероятность, что эта информация навсегда осядет у вас в голове.

Не устраивайте зубрежки.

Это просто сохранит информацию в вашей кратковременной памяти.

Практикуйтесь короткими порциями по 15 минут в день.

Это переместит информацию в долговременную память, и вы сможете вспомнить ее даже в условиях сильного стресса во время собеседования.

Не подвергайте себя всей этой агонии только для того, чтобы пройти тест на доске.

Целься выше! Испытайте себя и станьте лучшим программистом! Теги: #Карьера в ИТ-индустрии #qa #тестирование ИТ-систем #тестирование #карьера в IT

Вместе с данным постом часто просматривают: