Здравствуйте, хабровчане.
В ожидании начала курса «Инженер по обеспечению качества 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
-
Секрет Ipod Touch
19 Oct, 24 -
Ключевые Моменты Успешного Онлайн-Бизнеса
19 Oct, 24 -
Единицы Измерения Физических Величин
19 Oct, 24 -
Паукообразные
19 Oct, 24 -
Bskyb Запускает Конкурента Itunes И Spotify
19 Oct, 24 -
Протокол Spdy Появился В Firefox Nightly
19 Oct, 24