
Миналата година посветих последните два месеца на подготовка за интервю за стаж в Google (Google Internship). Всичко мина добре: получих както работата, така и страхотен опит.
Сега, две месеца след стажа, искам да споделя документа, който използвах за подготовка за интервютата. За мен това беше нещо като шпаргалка преди изпит. Но процесът на създаване на документа и постоянната стъпка по стъпка проверка ми помогнаха да запомня най-важното.
Сигурен съм, че всеки човек може успешно да премине интервю в големи технологични компании, просто е нужно малко време, за да разберете как функционират тези интервюта и да се подготвите за тях.
Шпаргалката ми е достатъчна за подготовка за всяко техническо интервю, независимо дали става дума за Google, стартъп или вашето първо стажуване. Тя ще ви помогне да се чувствате по-уверени както в подготовката, така и по време на самото интервю.
Препоръчваме безплатни интензивни курсове по програмиране за начинаещи:
— 8–10 август;
— 12–14 август;
— 15–17 август
Шпаргалка за техническо интервю
Сайтове
На този ресурс можете да се упражнявате в провеждане на интервюта. Участниците по ред се интервюират взаимно (има аудио и видео канали) и могат да ползват общ редактор за код. Вероятно в началото на такива интервюта ще ви е трудно и ще се чувствате неловко. Но колкото повече се упражнявате, толкова по-уверено ги преминавате, а истинското интервю след това ще ви се стори лесно.
Добри въпроси от реални интервюта във Facebook, Google, Microsoft и др. Препоръчвам да използвате този сайт заедно с ресурсите за практика в кодиране, включително изучаване на алгоритмична сложност.
Книги
Cracking the Coding Interview
Любимите ми части: Interview Preparation Grid (стр. 32), раздел, посветен на поведението на интервюто, както и Interview Questions: Data Structures (стр. 88–107). Ако преди не сте срещали термина „алгоритмична сложност“, сега е моментът, книгата отлично въвежда в темата.
Какво да правите по време на интервюто?
- Не изключвайте комуникацията и отговаряйте честно. Когато обмисляте въпрос, разсъждавайте на глас, описвайте хода на мислите си.
- Добавете малко хумор в комуникацията, не се страхувайте да се шегувате. Опитайте се да се насладите на общуването.
- Записвайте важна информация.
- Задавайте въпроси и се опитайте да използвате това, което сте научили от интервюиращия.
Интервю стъпка по стъпка
А ето и списък за подготовка за отговор на интервю. Не е необходимо да използвате всички точки, пропуснете тези, които считате за ненужни. Най-важното е да разчитате на общия смисъл. Дори и да не достигнете до самия край на списъка, нищо страшно няма да се случи.
- Прочетете въпроса.
- Разгледайте всички данни, както входящи, така и изходящи, и обърнете внимание на страничните ефекти.
- Уточнете същността на задачата и озвучете вашите предположения, за да може интервюиращият да разбере хода на вашите мисли. Например, какви ще бъдат обемите на данните и кой ще бъде потребителят.
- Намерете пример и го посочете на интервюиращия, за да сте сигурни, че разбирате правилно задачата. Не се страхувайте да отделите време, за да вникнете в условията на задачата. Колкото по-добре я разберете, толкова по-бързо ще намерите оптималното решение.
- Разработете алгоритъм. Опитайте се да решите подобна, но по-малко сложна задача. Записвайте мислите си, разглеждайте примери в черновик.
- Прегледайте алгоритъма си с примери, за да се уверите, че кодът работи правилно. Проверете всички критични и гранични случаи.
- Оценете сложността на алгоритъма както по време, така и по памет.
- Ако сте успели да измислите по-ефективно решение на проблема, върнете се към точка 4.
- Напишете решението, използвайки избрания алгоритъм. Разделете проблема на няколко метода, ако това е допустимо в конкретния случай.
- Проверете кода за грешки.
- Помислете как имплементацията на алгоритъма се справя с критичните и гранични случаи.
- Проверете имплементацията с пример, прегледайте кода за грешки.
- Както убеждавате, че кодът работи правилно, проверете неговата чистота и стил.
Ето, всъщност, и всичко!
Източник: habr.com
