Завдання на співбесідах, спецвипуск

Складаючи резюме. старайся виділити знання саме тих технологій, які потрібні в вакансії. Описуючи проекти, в яких ти брав участь, не забудь вказати свої обов'язки і завдання в рамках проекту, не тільки пов'язані з написанням коду, але і бета-тестування, unit-тести, білд-скрипти, налаштування сервера додатки, Jenkins'а або створення бази даних. Май на увазі, що тобі доведеться відповісти за кожну технологію, яку ти вказуєш в резюме, так що не варто вписувати те, що ти зовсім не знаєш.

Підготовка до співбесіди

Якщо ти хочеш бути затребуваним фахівцем і отримувати хорошу зарплату, без Java Enterprise не обійтися. Вивчення Enterprise Java краще починати з азів - з розуміння, як працює сервлет і JSP. Тоді на багато питань відповідь можна буде додумати логічно, навіть не знаючи його. Хороша книга на цю тему - Head First Servlets and JSP видавництва O'Reilly. У ній докладно розглядаються пристрій сервлетів та JSP-сторінок, сесії, пристрій веб-додатків, є навіть невелике введення в MVC і інші патерни J2EE. В кінці книги тобі буде запропоновано невеличкий іспит, за допомогою якого ти зможеш перевірити свежеполученной знання.

Будь Java Enterprise розробник повинен знати Tomcat. Це найпростіший, найлегший і, мабуть, самий задокументований сервер додатків. Tomcat потрібно не просто вміти запускати і вирубувати. Спробуй розгорнути веб-додаток, налаштувати віддалену налагодження, розібратися з налаштуванням продуктивності, SSL.

Далі варто вивчати вже JBoss / WildFly - все-таки багато J2EE-технології на томкате не працюють. JBoss / WildFly безкоштовний, цілком функціональний, і він частенько використовується навіть у серйозних замовників.

Яке веб-додаток обходиться без шару даних? Правильно, майже ніяке, тому навіть на проекти, що використовують NoSQL-бази, не беруть без доброго знання SQL. На SQL доведеться писати часто і багато. Занадто глибоких знань від програміста Java, звичайно, не очікують, але JOIN'и і методи нормалізації потрібно знати назубок. Непогана книжка по SQL - «Вивчаємо SQL» Лінн Бейлі. Відмінний інтерактивний курс пропонує w3schools.

Далі потрібно розібратися з JDBC. Здавалося б, навіщо вчити те, що вже практично ніде в чистому вигляді не користується? Справа в тому, що все ORM базуються на старому доброму JDBC, і рано чи пізно при виникненні проблем з БД з ним доведеться зіткнутися. Крім того, на співбесіді часто просять обгрунтувати вибір ORM або JDBC на практичному прикладі, тому потрібно усвідомлювати всі переваги і недоліки першого і другого способів.

З ORM найбільшою популярністю користується Hibernate. Так що з прицілом на майбутню кар'єру я б радила тобі розібратися в ньому гарненько. На щастя, Hibernate відмінно документований і забезпечений купою прикладів на будь-який смак. З книг зверни увагу на Java Persistence with Hibernate Крістіана Байєра.

З фреймворків як і раніше лідируючі позиції (по пропонованими вакансіями) займає Spring. Краща документація по Spring, на мій погляд, знаходиться на офіційному сайті. Там же тебе чекає безліч прикладів і розбір всіляких нюансів фреймворків. З непоганих книг, тим більше російською, раджу «Spring 4 для професіоналів» Шефера, Хо і Харропа.

В основному на співбесіді по Spring зачіпають такі теми, як призначення фреймворка, завдання, які він вирішує, прості питання з налаштування, інтеграція Spring з іншими фреймворками, наприклад Hibernate. Непогано б мати виразне уявлення про Dependency Injection / Inversion Of Control, знати, що собою являє container, що таке біни, життєвий цикл, scopes, вміти працювати як з XML-инициализацией, так і через анотації, розібратися з валідація, ресурсами і, звичайно ж, Spring MVC.


Непогано б мати виразне уявлення про Dependency Injection / Inversion Of Control, знати, що собою являє container, що таке біни, життєвий цикл, scopes, вміти працювати як з XML-инициализацией, так і через анотації, розібратися з валідація, ресурсами і, звичайно ж, Spring MVC

Часто на співбесіді дають невеликі завдання на алгоритми, підготуватися до них допоможуть книги Седжвика «Алгоритми на Java» і Лафоре «Структури даних і алгоритми Java». Для відточування практичних навичок рекомендую скористатися такими ресурсами, як Topcoder і Codeforces.

Співбесіда

Якщо ти націлився на конкретну компанію, сходи спочатку на співбесіди в інші компанії зі схожими вимогами. Так ти будеш відчувати себе більш впевнено, дізнаєшся свої слабкі місця і зразкові питання і завдання, з якими доведеться зіткнутися.

Робота програміста хороша тим, що не обов'язково вставати рано вранці, тягтися в офіс, стояти в пробках, штовхатися в метро, ​​спілкуватися з такими ж милими сонними людьми. Завжди можна працювати вдома, ну або на Канарських островах, в загальному - де заманеться і коли заманеться. Тут є два варіанти: фріланс і віддалена робота.

Фріланс хороший тим, що частіше за все ти працюєш в команді один - як хочеш, так код і пишеш, де хочеш - рефактору і ні перед ким не звітуєш. З негативних рис фрілансу - заробіток нестабільний, і раз у кілька місяців доводиться шукати нові проекти (але зате ти сам можеш вибрати собі проект до душі).

Незважаючи на велику кількість сайтів, що пропонують фріланс, знайти там щось варте уваги вкрай складно, а на зарубіжних сайтах до того ж доведеться терпіти страшну конкуренцію з індусами і китайцями. Тому найкращий спосіб знайти проект - це сарафанне радіо. Зареєструйся в соцмережах, розпиши по максимуму свій досвід і вкажи, що цікавишся роботою на дому. Поділися з усіма друзями своїми планами. Не завадить також написати в пару-трійку великих компаній з пропозицією своїх послуг. Вакансій для віддаленої роботи у них, може, і не виявиться, але твоя анкета потрапить в базу даних відділу кадрів, а далі тебе обов'язково спробують комусь вигідно продати.

У підготовці до співбесіди вже слід робити основний упор на практику. Відповідаючи на технічні питання, краще згадувати, де і як ти стикався з подібним і як вирішував проблему в тій чи іншій ситуації. Не було такого завдання на практиці? Розкажи, як вирішив поколупатися у вільний час в цих класах або фреймворків і що для себе з цього витягнув. Так як працювати ти будеш практично безконтрольно, роботодавцю важливо довести, що ти вмієш самостійно організовуватися, вирішувати завдання і розвиватися. Будь готовий до тестових завдань. Але тут час працює на тебе. Спочатку тобі доводиться доводити замовникам, що ти гідний їх проектів, а через кілька років / проектів вони уже будуть вибудовуватися в чергу.

Звичайно, абсолютно без досвіду роботи знайти фріланс або удаленку практично нереально. Але у цієї проблеми є кілька варіантів вирішення. Можна приєднатися до команди open source розробки. Там ти повчишся швидко вникати в чужий код, дотримуватися стилю написання проекту, змушувати себе працювати. Можна влаштуватися в команду фрілансерів, ну або зробити свій проект.

Альтернативним варіантом придбання досвіду можуть бути курси програмування при великих компаніях (не плутати з курсами програмування від навчальних шкіл). Більшість великих компаній розуміють, що в умовах браку фахівців найпростіше - це вирощувати їх. Багато хто проводить курси безкоштовно, деякі за гроші, але це інвестиції, які в майбутньому окупаються. Добре зарекомендував себе на таких курсах, ти практично з 90% -ою ймовірністю працевлаштуватися в цю компанію після закінчення. Якщо ж щось якось не склалося, то проекти, виконані на курсах, підійдуть як досвіду роботи для резюме. Намагайся виходити за рамки поставленого завдання, вигадуй свої доповнення і поліпшення програмі, яку потрібно написати, обов'язково пиши тести, і твої старання не пройдуть даром. Згодом ці програми можна буде викласти у відкритому доступі, щоб демонструвати потенційному роботодавцю.

Пошук роботодавця

Для початку потрібно визначитися з потенційним роботодавцем. На сьогоднішній день в Мережі є безліч ресурсів з пошуку роботи. Можна глянути розділ з вакансіями на форумах програмістів. Вакансій там менше, але, як правило, вони цікавіше, хоча і попит з кандидата буде більше. Ну і звичайно ж, друзі-програмісти. Вони можуть багато розповісти про тих компаніях, де працювали або працюють, і звести тебе з відділом кадрів. Частенько вони це роблять із задоволенням в гонитві за бонусами за залучених співробітників.

Якщо ти все ж вирішив вибирати роботодавця по сайтам з вакансіями, раджу тобі уважно вивчити його сторінку в інтернеті, пошукати відгуки працівників. Нові вакансії не завжди пов'язані з розширенням компанії, іноді вони обумовлені плинністю кадрів. Великі компанії. які працюють з замовниками з різних країн, менш схильні до впливу кризи, але і робота там найчастіше менш творча. Маленькі компанії - це, навпаки, більший ризик, зазвичай вони працюють тільки над одним-двома проектами, але через невелику чисельність співробітників там (ще) не розвинена бюрократія і тотальний контроль за розробником, і є непоганий шанс повчитися на нових завданнях і невідомих технологіях, які у великій компанії, швидше за все, довірили б виділеному фахівця.

Робота на чужині

Програмісти затребувані у всьому світі, так що влаштуватися працювати в іноземну компанію - не така вже й складне завдання. Можливо, деякі компанії зажадають підтвердження диплома або сертифіката на знання англійської, але більшість приймає і без цього.

Співбесіда в іноземну компанію зазвичай проходить в кілька етапів. Якийсь структурностью вони особливо не відрізняються, іноді питання перескакують з однієї теми на іншу. Головне - не хвилюватися, як говорили відомі пінгвіни, «посміхаємося і махаємо». Не потрібно дивитися на співрозмовника похмуріше хмари і хмуритися побачивши невідомого питання. Якщо щось не зрозумів в питанні, обов'язково перепитай, але максимально чемно і доброзичливо. Намагайся міркувати вголос над кожним питанням, звикай, що, поки ти будеш писати код, хтось буде витріщатися в монітор. Обов'язково розпитайте про компанію, про проект, про команду, приготуй список питань заздалегідь. Іноземні компанії можуть дозволити собі вибирати співробітника, тому на якісну самопрезентацію треба звернути найпильнішу увагу. Якщо ти розіслав резюме в купу компаній, а жодна так і не покликала на співбесіду, не впадай у відчай. Влаштуватися на роботу за кордон можна і через місцеві аутсорсингові компанії, у них завжди є парочка вакансій з переїздом ближче до офісу замовника.

Не розслабляйся

Корисні посилання

Спеціаліст знайшов в репозиторії DJI приватні ключі, облікові дані AWS, і тепер йому загрожують судом

Компанія Oracle випустила екстрений патч для критичних вразливостей в продуктах PeopleSoft

Фахівці Cisco і «ІнЧіп» розкажуть про захист «розумних» автомобілів

Баг в роботі Amazon Key дозволяє зловмисникам таємно проникати в будинку користувачів