Як успішно пройти співбесіду на Java-розробника
DOU поговорив з Java-програмістами, яким за обов'язком служби доводиться проводити співбесіди на позиції Java-розробників, і на основі їх зауважень склав низку порад, які можуть бути корисні тим, хто найближчим часом збирається змінити місце роботи. Поради будуть також актуальні і для тих, хто хоче вперше випробувати себе Java-програмістом.
Перше, на що варто звернути увагу претенденту, — це його зовнішній вигляд. Як не крути, але «зустрічають по одязі». Тому слід заздалегідь подбати про те, щоб виглядати чисто та охайно. Можливо, така порада комусь здасться дивною через свою надмірну очевидність. Але не секрет, що деякі програмісти часто нехтують своїм зовнішнім виглядом.
Що стосується технічної частини співбесіди на позицію Java-розробника (не важливо, джуніора, міддла або синьйора), то до неї потрібно ґрунтовно підготуватися. Швидше за все, вам поставить так звані «50 питань Java», що стосуються синтаксису та семантики Java. Відповіді на ці запитання запитують як у розробників із вражаючим стажем, так і у новачків у цій галузі. Часто досвідчені програмісти гребують повторенням цих питань, інколи ж навіть критикують їх використання на співбесідах. І в результаті проявляють себе не в кращому світлі, коли не можуть впевнено відповісти на найпростіші з них, особливо на тлі новачків, які досконало розібралися в даному переліку і з легкістю відповідають за будь-яким пунктом.
Поки здобувач не опиниться на місці інтерв'юера, він не зрозуміє, чому ставлять ці питання. Пояснення тут просте. IT-компанія зацікавлена наймати найкращих фахівців, незважаючи на те, що весь багаж їх знань та досвіду може і незнадобиться для поставлених завдань. Хорошому програмісту компанія з легким серцем платитиме високу зарплатню. Поганий же працівник може «відгукнутися» компанії на додаткову суму грошей, а також зусиль та часу, які інші розробники витратить на виправлення його помилок. Тому компанії важливо визначити реальний рівень кандидата. І ця відповідальність лягає на плечі інтерв'юера. Ті, хто проводили співбесіди, знають, що зовсім нелегко за кілька годин зрозуміти реальну кваліфікацію зовсім незнайомої людини. Звичайно, претендент може «зазубрити» відповіді, але оскільки співбесіди проводять досвідчені фахівці, то їм нічого не варто поставити уточнюючі питання, які дозволять встановити справжню компетенцію кандидата. Тому справді важливо розібратися у всіх технічних нюансах.
Але найкращий спосіб поглибити свої знання - це вивчити матеріали з підготовки до сертифікації Oracle. А в ідеалі, звісно, ще й скласти відповідні іспити. Наявність сертифікатів буде безперечним плюсом як для досвідчених розробників, так і для новачків. Якщо ви на співбесіді доведете, що ви дійсно хороший фахівець, то IT-компанія без роздумів зробить вам вигідну пропозицію.
Як не дивно, але кандидатів на позицію Java-розробника запитують також іSQL. Але в даному випадку від вас не вимагатимуть надзвичайно глибоких знань на рівні DBA. Найімовірніше, вам поставлять питання щодо синтаксису та семантики. Наприклад, попросять вирішити просте завдання - скажімо, зменшити пару таблиць. А також можуть запитати про види індексів у базах даних та рівні ізоляції в транзакціях. Для підготовки до цих питань може бути достатньо прочитання кількох статей у англомовній Вікі.
Ще одна частина технічних питань пов'язана зфреймворками. Але їх зазвичай задають для позиції міддл та синьйор. Інтерв'юерів найчастіше цікавлять фреймворки Spring і Hibernate, оскільки вони використовуються в переважній більшості проектів. Тому, якщо ви хочете добре показати себе на співбесіді, варто освіжити знання. Це стосується і тих фреймворків, які ви використовували в останніх проектах, вказаних у вашому резюме. Вас, напевно, попросять розкрити деталі, пов'язані з їх використанням. Наприклад, якщо ви працювали з Hadoop, то очікується, що ви зможете розповісти щонайменше про концепцію map-reduce.
Практика та мотивація
Що стосується практичної частини співбесіди, то тут вам дадуть завдання написати просту програмку. Наприклад, перевернути список зв'язків або роздрукувати всі елементи дерева. І тут важливий наступний момент: коли ви приступаєте до виконання завдання, головне — не робіть це мовчки. Тому що інтерв'юер хоче зрозуміти ваш підхід до вирішення завдань. Важливо продемонструвати перебіг своїх думок. Навіть якщо ви не знаєте рішення, то не губіться, а починайте розмірковувати вголос. Чуючи ваші міркування, інтерв'юер зможе дати вам підказку, яка наштовхне вас на правильне рішення. Пам'ятайте, що співбесіда – це не іспит, де потрібна однозначна відповідь. Тут головне показати, що ви знаєте свою справу і вмієте шукати вирішення проблем.
Мабуть, варто зазначити ще такий момент. Іноді Java-програмісти відвідують співбесіди зі «спортивного» інтересу, а чи не з потреби. І якщо у такого розробника інтерв'юер поцікавиться, чому він хоче покинути поточний проект, а у відповідь почує, що на поточному проекті того все влаштовує, то ймовірність отримати джоб оффер різко падає. Інтерв'юеру стане очевидно, що кандидат не має сильної мотивації дляпереходу до його компанії. Тому якщо ви таки хочете успішно пройти співбесіду, то покажіть свою зацікавленість у новому місці роботи. Можете сказати, що ви хочете розвиватися як фахівець, що ви прагнете набути нового досвіду, що ви шукаєте цікавий з технічної точки зору проект і т.д. і т.п. Насправді, така мотивація справді має бути у хорошого фахівця.
Не варто засиджуватися на одному проекті понад два роки. Час не стоїть на місці: технології розвиваються, з'являються нові підходи у розробці. А якщо ви працюєте над одним і тим же проектом протягом кількох років, то ваші знання старіють та втрачають цінність. І, зрештою, ваша ринкова вартість як фахівця падає. Щоб змінити проект, зовсім не обов'язково залишати нинішню IT-компанію: можна перейти на інший проект та всередині неї.
Проходження співбесід буває корисним незалежно від результатів. Програміст у такий спосіб підвищує свою кваліфікацію. Нерідко буває, що, вирішуючи звичні завдання, він застосовує одні частини Java частіше, ніж інші. В результаті знання деяких розділів кульгають. А підготовка до співбесіди спонукає відкрити документацію та заповнити ці прогалини. Спілкуючись із інтерв'юером, він також може виявити свої слабкі місця та надалі їх підтягнути. А це, у свою чергу, позитивно позначиться на якості коду, який він створює.
Найкращий спосіб навчитися успішно проходити співбесіди - це самому стати інтерв'юером :)