Устроиться работать джавистом быстро и без проблем

Чтобы устроиться джавистом, одного знания Java мало. Это лишь 10% того, что вам нужно знать, и сейчас мы разберемся с оставшимися 90%.

Мы собрали распространенные IDE, фреймворки, некоторые «фишки» по ООП в целом, а также подкрепили все полезным материалом в виде ссылок. Тем не менее, если вы посчитаете статью неполной, обязательно поделитесь своими соображениями в комментариях к ней: данная информация поможет тем, кто начал свой путь развития в области кодинга на языке Java.

Базовые теоретические знания

Все начнется с ООП. Это альфа и омега всех вопросов, которые затрагивают объектно-ориентированные языки программирования. Готовьтесь и к банальным вопросам из разряда «3 (а то и 4) принципа ООП», и к задачкам посложнее, например, объяснить, что происходит в коде, написанном на гипотетическом языке программирования.

Устроиться работать джавистом быстро и без проблем

Нередко звучат вопросы о принципах ООП, модификаторах доступа, коллекциях, etc. Но самое интересное начинается лишь тогда, когда вы переходите непосредственно к ЯП.

Java изобилует библиотеками, которые предоставляют больше гибкости, но споткнуться можно и о Java Core. Вот лишь малая толика вопросов по данному языку:

  1. Что произойдет, если при переопределении equals() не переопределить hashCode()?
  2. Почему метод clone объявляется как protected?
  3. В чем разница между final, finally и finalize()? Расскажите, что это такое.
  4. Что случится, если единственный конструктор класса будет объявлен как final?
  5. Расскажите про все методы класса Object.
  6. В чем отличие между equals() и ==?
  7. Абстрактный класс и интерфейс: есть ли разница?
  8. Когда лучше применять ArrayList, а когда – LinkedList?

И так до бесконечности. Чтобы стать хотя бы джавистом стажером, нужно хорошо знать Java Core. Зато когда вы поймете все тонкости этого языка, можно смело переходить к изучению фреймворков.

Английский язык

Это обязательно. Если у вас все очень плохо – запишитесь на курсы. Если все нормально, но хотелось бы лучше – английские сериалы с субтитрами в помощь.

Не думайте, что он нужен только для умения прочесть что-то вроде «toString» или «valueOf». Документация, различные проблемы, решения которых давно заждались вас на Stack Overflow, полезные англоязычные материалы – это все действительно пригодится.

Но работодатель в первую очередь хочет, чтобы вы могли свободно общаться с иностранными коллегами. В общем, даже если ваша работа мечты находится в Германии, прежде чем научиться «Deutsch zu sprechen», освойте английский: это один из столпов IT-сферы, без которого вам не стать джавистом.

IDE

IntelliJ IDEA – всеми любимая, удобная, «ламповая» среда разработки. Но очень вредная, особенно для начинающего программиста. Привыкнув к «легкому» коду в IntelliJ IDEA, можно навсегда возненавидеть NetBeans и Eclipse (а опыт работы с последней IDE требуют отнюдь не редко).

IntelliJ IDEA

Начали с IntelliJ? Что ж, постарайтесь «переломать пальцы» под Eclipse: это полезный опыт как для пользователя данной IDE, так и для программиста в целом. Но вообще, идеально, если вы освоите все 3 IDE: резюме расширит и в жизни пригодится. Параллельно учите хоткеи, с которыми написание/тестирование кода и отладка станут ускоренными.

Операционная система

Появился Docker, и все как-то сразу стало проще, но знание MacOS и/или Ubuntu все еще в приоритете, если хотите стать джавистом. Работать с ними легче и приятнее за счет нативной консоли с соответствующими командами. Стоит ли отмечать, что не под Windows все зачастую летает, а бесплатная операционная система – вообще на вес золота (нет, в компаниях пиратками не пользуются: либо лицензионка, либо свободная ОС)?

Если вы с ужасом смотрите на работу программистов с консолью и величаете их настоящими профессионалами своего дела, пытайтесь дотянуться до их уровня. Просто установите нужную ОС и пользуйтесь: со временем знания и навыки придут сами.

Базы данных

Подавляющее большинство компаний делает упор на знание MySQL – универсального инструмента для работы с базами данных. Но знание – не значит однодневный опыт или «Да, я с этим когда-то сталкивался». Вы должны действительно понимать запросы и уметь оптимизировать структуру. Сложно? Начните хотя бы просто с установки СУБД и изучения CRUD (создать, прочесть, обновить, удалить).

MySQL

Порой могут потребоваться знания PostgreSQL, MongoDB, SQLite, Redis, etc.

HTML, XML, JSON

HTML станет хорошим помощником в работе с сервлетами, GUI и не только. Java все еще используется в вебе, в сложных архитектурах, где приоритетнее стабильность работы. Правда, это уже больше относится к серверной части. Но все равно знание языка гипертекстовой разметки лишним точно не будет. Подробнее о HTML можно почитать здесь, а больше полезных материалов для его изучения найдете в данной статье.

Формат данных XML – вечный спутник парсинга и лог файлов. Умение работать с XML не критично, если обратное не заявлено в требованиях, зато покажет вас как программиста с лучшей стороны.

А вот JSON расшифровывается как JavaScript Object Notation. В отличие от XML, это компактный текстовый формат обмена данными, и он предназначен для легкого восприятия человеком. Часто используется при обмене информацией между сервером и веб-браузером. Интернет изобилует материалами о JSON, так что вы быстро поймете принципы работы с ним.

Фреймворки

Spring MVC – лидер современного рейтинга. Чтобы стать джавистом в большинстве компаний, требуется знание данного фреймворка. Главная причина – его универсальность. Грубо говоря, это целый набор фреймворков, которые позволяют решать различные задачи.

Spring MVC

В JSF все немного иначе, и основная его фишка во взаимодействии с компонентами. Есть поддержка Oracle, уйма дополнительных инструментов, дружелюбное комьюнити и «человеческая» документация.

Vaadin также ориентирован на веб-разработку. Его главное преимущество состоит в работе без необходимости прикручивать дополнительные web-языки, такие как JS, XML, HTML. Здесь хорошо реализованы MVP и MVC. В вакансиях встречается реже перечисленных фреймворков, но порой требуется.

Умение читать чужой код

Да, чтобы быть джавистом, нужно думать как джавист.

Часто это работа в команде, и такой скилл, как чтение чужого кода, обязательно учитывается. Если данный опыт есть – указывайте его в резюме и рассказывайте о нем на собеседовании. В противном случае постарайтесь открыть для себя Open Source и вливайтесь в командную разработку. Умение работать с чужим кодом не менее важно, чем знание самого языка: это покажет, что вы разбираетесь не только в своем стиле, но вполне можете «адаптироваться» под другие.

Советы по трудоустройству

  • Будьте общительны. Обретая коммуникативные навыки и расширяя круг общения, вы набираете полезные контакты и новые знания. Активно участвуйте в собеседованиях, не замыкаясь в себе после очередного «провала».
  • Не засиживайтесь на одном месте. Меняйте работу, если в текущей компании повышение даже не светит. Это актуально для всех, в т. ч. для начинающих программистов, которые боятся потерять свое первое рабочее место: всегда лучше двигаться вперед.
  • Продолжайте учиться. Открывая для себя новые отрасли, технологии и фреймворки, вы дарите себе уйму возможностей пробиться дальше.
  • Умейте себя продать. Когда дело касается озвучивания желаемой заработной платы, многие банально стесняются, даже если это стеснение лишает половины того, что они могли бы получать. Здраво оценивайте свои силы и не бойтесь заявить о желаемом уровне зарплаты работодателю.
  • Посещайте семинары, хакатоны и прочие мероприятия, нацеленные на оттачивание навыков.
  • Читайте книги, пользуйтесь сервисами и решайте задачки (можно просто отвечать на вопросы Stack Overflow).
  • Отдавайте предпочтение валюте, работая на иностранные компании. Можете вообще переехать в другую страну, если хорошо владеете английским, и ваши навыки соответствуют заявленным в вакансии.

Дополнительные материалы по Java, которые вас заинтересуют:

РУБРИКИ В СТАТЬЕ

МЕРОПРИЯТИЯ

moscowcss №17
06 февраля Москва Бесплатно
Tender Hack.Spb
01 февраля Санкт-Петербург Бесплатно
Moscow Python Meetup №72
30 января Москва Бесплатно
Я ❤︎ Фронтенд 2020
29 февраля Москва Бесплатно

Комментарии 0

ВАКАНСИИ

Lead Unity Developer
по итогам собеседования
Audio Programmer (PUBG)
Амстердам, по итогам собеседования
Machine Learning Software Engineer
Париж, по итогам собеседования
Unity Developer
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

BUG