Стань богатым Java-программистом! Java-программисты на протяжении нескольких лет остаются самыми востребованными специалистами на рынке IT. Они получают зарплату, привязанную к курсу доллара, и не испытывают диcкомфорта от экономических кризисов. Невзирая на все мрачные предсказания, проектов, связанных с Java-технологиями, становится все больше. Профессиональные Java-специалисты ценятся по всему миру. Независимо от их страны проживания работодатели согласны вкладывать в них деньги. Если ты задумываешься о карьере Java-разработчика, то эта статья для тебя. В ней собраны практические советы по подготовке и прохождению собеседования, поиску работы в офисе. Подготовка к собеседованию Теперь займемся подготовкой к самому собеседованию. Независимо от проекта и используемых фреймворков для начала нужно показать твердые знания Core Java. По Java существует множество всевозможных пособий и обучающих курсов, но лучшим пособием будет литература для подготовки к сдаче экзамена на сертифицированного программиста Java от Oracle, например OCA OCP Java SE 7 Programmer I & II Study Guide. Проверить знания на практике поможет ресурсhttps://goo.gl/8pAFNG или более серьезныйhttp://www.enthuware.com/, но тут придется немного раскошелиться. Если ты хочешь быть востребованным специалистом и получать хорошую зарплату, без Java Enterprise не обойтись. Изучение Enterprise Java лучше начинать с азов — с понимания, кaк работает сервлет и 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. Не будут лишними и некоторые знания по работе веб-сервисов, понимание REST и SOAP. Пригодятся также знания по XML (без него совсем никуда в мире Enterprise), XPath и JSON. Ну и конечно, веб-приложения. А какое из них обходится без HTML, CSS и JavaScript? Правильно, никакое. Знаний HTML достаточно на уровне курса от w3schools, в CSS частенько приходится править мелкие ошибки, так что необходимо хотя бы представлять, что там где. Еще надо знать сам JavaScript. Хорошо также уметь читать jQuery или AngularJS. Часто на собеседовании дают небольшие задачи на алгоритмы, подготовиться к ним помогут книги Седжвика «Алгоритмы на Java» и Лафоре «Структуры данных и алгоритмы Java». Для оттачивания практических навыков рекомендую воспользоваться такими ресурсами, как Topcoder и Codeforces. Ну и конечно, жизненно необходимо знание английского. В смысле, не «технический», «со словарем», «читаю свободно», «читаю свободно, но ничего не понимаю» :). С хорошим английским твои шансы найти хорошую работу возрастают в разы. Ты сможешь работать в международной команде, ездить в командировки, читать ТЗ и другую техническую документацию от иностранных заказчиков, твоя ценность как специалиста значительно повышается. Собеседование Воспринимай собеседование не как экзамен, а скорее как дискуссию между двумя специалистами. Не бойся задавать вопросы, спрашивать мнение собеседующего. Если попадается неизвестный вопрос, не паникуй. Если вопрос на хорошую память, из разряда «как называется метод класса, который делает то-то и то-то» или «перечислите все методы интерфейса такого-то», то можно смело отвечать, что IDEA (или другой любимый редактор) тебе всегда подсказывает. Если вопрос посложнее, например «как сделать составной ключ в Hibernate», а тебе не приходилось с этим сталкиваться, то скажи честно, что читал когда-то, но не пригодилось, надо будет — нагуглишь и сделаешь. Показав готовность найти ответ на любой вопрос, ты произведешь хорошее впечатление. Избегай ответов «не знаю». Например, если тебя просят рассказать, как работает та или иная библиотека, понимая, что она делает, можно попытаться представить, как бы ты решил такую задачу на месте разработчиков. Просто покажи, что, даже не зная ответа на конкретно этот вопрос, ты можешь додуматься до него логически. Одна из частей собеседования обычно посвящена выполненным проектам. Лучше всего подготовиться к этой части заранее, вспомни самые яркие моменты своей работы над проектом, решения, которыми ты гордишься или даже которые оказались неудачными. Приготовься обосновать, почему для реализации проекта были выбраны те или иные технологии, если технологии выбирал не ты, подумай, какой был бы твой выбор и почему. Если ты нацелился на конкретную компанию, сходи сначала на собеседования в другие компании со схожими требованиями. Так ты будешь чувствовать себя более уверенно, узнаешь свои слабые места и примерные вопросы и задачи, с которыми придется столкнуться. Работа на чужбине Программисты востребованы по всему миру, так что устроиться работать в иностранную компанию — не такая уж сложная задача. Возможно, некоторые компании потребуют подтверждения диплома или сертификата на знание английского, но большинство принимает и без этого. Собеседование в иностранную компанию обычно проходит в несколько этапов. Какой-то структурностью они особо не отличаются, иногда вопросы перескакивают с одной темы на другую. Главное — не волноваться, как говорили небезызвестные пингвины, «улыбаемся и машем». Не нужно смотреть на собеседника мрачнее тучи и хмуриться при виде неизвестного вопроса. Если что-то не понял в вопросе, обязательно переспроси, но максимально вежливо и дружелюбно. Старайся рассуждать вслух над каждым вопросом, привыкай, что, пока ты будешь писать код, кто-то будет пялиться в монитор. Обязательно расспроси про компанию, про проект, про команду, приготовь список вопросов заранее. Иностранные компании могут позволить себе выбирать сотрудника, поэтому на качественную самопрезентацию надо обратить самое пристальное внимание. Если ты разослал резюме в кучу компаний, а ни одна так и не позвала на собеседование, не отчаивайся. Устроиться на работу за границу можно и через местные аутсорсинговые компании, у них всегда имеется парочка вакансий с переездом ближе к офису заказчика. ©xaker

Теги других блогов: программист IT Java