Чтобы устроиться джавистом, одного знания Java мало. Это лишь 10% того, что вам нужно знать, и сейчас мы разберемся с оставшимися 90%.
Мы собрали распространенные IDE, фреймворки, некоторые «фишки» по ООП в целом, а также подкрепили все полезным материалом в виде ссылок. Тем не менее, если вы посчитаете статью неполной, обязательно поделитесь своими соображениями в комментариях к ней: данная информация поможет тем, кто начал свой путь развития в области кодинга на языке Java.
Базовые теоретические знания
Все начнется с ООП. Это альфа и омега всех вопросов, которые затрагивают объектно-ориентированные языки программирования. Готовьтесь и к банальным вопросам из разряда «3 (а то и 4) принципа ООП», и к задачкам посложнее, например, объяснить, что происходит в коде, написанном на гипотетическом языке программирования.
Нередко звучат вопросы о принципах ООП, модификаторах доступа, коллекциях, etc. Но самое интересное начинается лишь тогда, когда вы переходите непосредственно к ЯП.
Java изобилует библиотеками, которые предоставляют больше гибкости, но споткнуться можно и о Java Core. Вот лишь малая толика вопросов по данному языку:
- Что произойдет, если при переопределении equals() не переопределить hashCode()?
- Почему метод clone объявляется как protected?
- В чем разница между final, finally и finalize()? Расскажите, что это такое.
- Что случится, если единственный конструктор класса будет объявлен как final?
- Расскажите про все методы класса Object.
- В чем отличие между equals() и ==?
- Абстрактный класс и интерфейс: есть ли разница?
- Когда лучше применять ArrayList, а когда – LinkedList?
И так до бесконечности. Чтобы стать хотя бы джавистом стажером, нужно хорошо знать Java Core. Зато когда вы поймете все тонкости этого языка, можно смело переходить к изучению фреймворков.
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»
Английский язык
Это обязательно. Если у вас все очень плохо – запишитесь на курсы. Если все нормально, но хотелось бы лучше – английские сериалы с субтитрами в помощь.
Не думайте, что он нужен только для умения прочесть что-то вроде «toString» или «valueOf». Документация, различные проблемы, решения которых давно заждались вас на Stack Overflow, полезные англоязычные материалы – это все действительно пригодится.
Но работодатель в первую очередь хочет, чтобы вы могли свободно общаться с иностранными коллегами. В общем, даже если ваша работа мечты находится в Германии, прежде чем научиться «Deutsch zu sprechen», освойте английский: это один из столпов IT-сферы, без которого вам не стать джавистом.
IDE
IntelliJ IDEA – всеми любимая, удобная, «ламповая» среда разработки. Но очень вредная, особенно для начинающего программиста. Привыкнув к «легкому» коду в IntelliJ IDEA, можно навсегда возненавидеть NetBeans и Eclipse (а опыт работы с последней IDE требуют отнюдь не редко).
Начали с IntelliJ? Что ж, постарайтесь «переломать пальцы» под Eclipse: это полезный опыт как для пользователя данной IDE, так и для программиста в целом. Но вообще, идеально, если вы освоите все 3 IDE: резюме расширит и в жизни пригодится. Параллельно учите хоткеи, с которыми написание/тестирование кода и отладка станут ускоренными.
Операционная система
Появился Docker, и все как-то сразу стало проще, но знание MacOS и/или Ubuntu все еще в приоритете, если хотите стать джавистом. Работать с ними легче и приятнее за счет нативной консоли с соответствующими командами. Стоит ли отмечать, что не под Windows все зачастую летает, а бесплатная операционная система – вообще на вес золота (нет, в компаниях пиратками не пользуются: либо лицензионка, либо свободная ОС)?
Если вы с ужасом смотрите на работу программистов с консолью и величаете их настоящими профессионалами своего дела, пытайтесь дотянуться до их уровня. Просто установите нужную ОС и пользуйтесь: со временем знания и навыки придут сами.
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»
Базы данных
Подавляющее большинство компаний делает упор на знание MySQL – универсального инструмента для работы с базами данных. Но знание – не значит однодневный опыт или «Да, я с этим когда-то сталкивался». Вы должны действительно понимать запросы и уметь оптимизировать структуру. Сложно? Начните хотя бы просто с установки СУБД и изучения CRUD (создать, прочесть, обновить, удалить).
Порой могут потребоваться знания PostgreSQL, MongoDB, SQLite, Redis, etc.
HTML, XML, JSON
HTML станет хорошим помощником в работе с сервлетами, GUI и не только. Java все еще используется в вебе, в сложных архитектурах, где приоритетнее стабильность работы. Правда, это уже больше относится к серверной части. Но все равно знание языка гипертекстовой разметки лишним точно не будет. Подробнее о HTML можно почитать здесь, а больше полезных материалов для его изучения найдете в данной статье.
Формат данных XML – вечный спутник парсинга и лог файлов. Умение работать с XML не критично, если обратное не заявлено в требованиях, зато покажет вас как программиста с лучшей стороны.
А вот JSON расшифровывается как JavaScript Object Notation. В отличие от XML, это компактный текстовый формат обмена данными, и он предназначен для легкого восприятия человеком. Часто используется при обмене информацией между сервером и веб-браузером. Интернет изобилует материалами о JSON, так что вы быстро поймете принципы работы с ним.
Фреймворки
Spring MVC – лидер современного рейтинга. Чтобы стать джавистом в большинстве компаний, требуется знание данного фреймворка. Главная причина – его универсальность. Грубо говоря, это целый набор фреймворков, которые позволяют решать различные задачи.
В JSF все немного иначе, и основная его фишка во взаимодействии с компонентами. Есть поддержка Oracle, уйма дополнительных инструментов, дружелюбное комьюнити и «человеческая» документация.
Vaadin также ориентирован на веб-разработку. Его главное преимущество состоит в работе без необходимости прикручивать дополнительные web-языки, такие как JS, XML, HTML. Здесь хорошо реализованы MVP и MVC. В вакансиях встречается реже перечисленных фреймворков, но порой требуется.
Умение читать чужой код
Да, чтобы быть джавистом, нужно думать как джавист.
Часто это работа в команде, и такой скилл, как чтение чужого кода, обязательно учитывается. Если данный опыт есть – указывайте его в резюме и рассказывайте о нем на собеседовании. В противном случае постарайтесь открыть для себя Open Source и вливайтесь в командную разработку. Умение работать с чужим кодом не менее важно, чем знание самого языка: это покажет, что вы разбираетесь не только в своем стиле, но вполне можете «адаптироваться» под другие.
Советы по трудоустройству
- Будьте общительны. Обретая коммуникативные навыки и расширяя круг общения, вы набираете полезные контакты и новые знания. Активно участвуйте в собеседованиях, не замыкаясь в себе после очередного «провала».
- Не засиживайтесь на одном месте. Меняйте работу, если в текущей компании повышение даже не светит. Это актуально для всех, в т. ч. для начинающих программистов, которые боятся потерять свое первое рабочее место: всегда лучше двигаться вперед.
- Продолжайте учиться. Открывая для себя новые отрасли, технологии и фреймворки, вы дарите себе уйму возможностей пробиться дальше.
- Умейте себя продать. Когда дело касается озвучивания желаемой заработной платы, многие банально стесняются, даже если это стеснение лишает половины того, что они могли бы получать. Здраво оценивайте свои силы и не бойтесь заявить о желаемом уровне зарплаты работодателю.
- Посещайте семинары, хакатоны и прочие мероприятия, нацеленные на оттачивание навыков.
- Читайте книги, пользуйтесь сервисами и решайте задачки (можно просто отвечать на вопросы Stack Overflow).
- Отдавайте предпочтение валюте, работая на иностранные компании. Можете вообще переехать в другую страну, если хорошо владеете английским, и ваши навыки соответствуют заявленным в вакансии.
Комментарии