Java-джуниор в поиске работы. Как прокачать скиллы и получить практический опыт

Когда речь заходит о начале профессиональной карьеры для Java-программиста, часто все представляется в мрачном свете. Новичкам может показаться, что пробиться на рынок — это невероятно тяжелая задача. Сколько бы вы ни просматривали актуальные вакансии, на любую позицию требуются люди с опытом, причем иногда складывается впечатление, что даже от джуниор Java-кодера работодатели ожидают как минимум нескольких лет опыта работы, не говоря уже о порой сверхъестественных объемах теоретических знаний. Но как получить этот необходимый для реального трудоустройства опыт, если кодеров без опыта брать никто не хочет? Замкнутый круг? Нет, просто одно из типичных для начала карьеры затруднений, которое не так уж сложно преодолеть. В этом материале мы собрали несколько безотказных способов решить проблему недостатка практического опыта.
1. Независимые проекты
2. Личные проекты

Этот совет вполне может пригодиться не только новичкам в Java, но и довольно опытным профессионалам. Под “личными” проектами имеются в виду те, которыми Java кодер занимается в качестве хобби, для развития своих профессиональных навыков, из интереса и просто для развлечения, а не с целью заработать. Многие работодатели при изучении резюме кодеров обращают внимание именно на наличие у них собственных “pet projects.” Почему? Если они есть, это говорит о том, что человек действительно любит свою работу и стремится к профессиональному росту не на словах, а на деле. Вот что об этом говорит Орен Аини (Oren Eini), глава компании Hibernating Rhinos Ltd, которая разрабатывает программные решения в области инфраструктуры баз данных: “Когда мы ищем нового разработчика в нашу команду, одним из определяющих факторов для нас является страсть и интерес к работе. Мы обнаружили, что люди, которым действительно важно и интересно то, что они делают, как правило, помимо чисто рабочих задач занимаются и собственными проектами. Иными словами, у них есть домашние проекты и проектики. Это может быть личный сайт, участие в стартапе друга или просто какой-нибудь код, написанный с целью лучше изучить некую технологию. Когда же я вижу, что у соискателя совсем нет сторонних проектов или они остались в далеком прошлом, для нас это плохой знак.” Лучше и не скажешь.
3. Фриланс — безграничное поле для “прокачки” и набора опыта

Сразу отметим, что начинающему программисту очень сложно пробиться на фриланс-площадках, но попробовать можно. Переход к работе в качестве фрилансера может быть отличным промежуточным этапом на пути от совсем зеленого Java девелопера к поднабравшему опыта и “нагулявшему” скиллов уверенному Java джуниору. Казалось бы, между фрилансом и работой фулл-тайм Java разработчиком разница невелика. Но на самом деле на фрилансе можно найти намного больше перспективных возможностей для малоопытного Java джуниора. Все потому, что фрилансеров частенько нанимают для разовой или непродолжительной работы над какими-нибудь проектами. Например, им доверяют задачи, объем которых слишком мал для того, чтобы искать для них полноценного сотрудника. В английском языке для описания таких микропроектов есть термин “gigs” — “леваки”. Либо же проект сам по себе является экспериментальным, или для него требуются слишком специализированные навыки. Как бы то ни было, при найме фрилансеров работодатели бывают менее требовательны и осторожны, так как они несут значительно меньше финансовых рисков. Соответственно, и шансы получить первую оплачиваемую работу именно на фрилансе у Java джуниора возрастают. Фрилансеров часто нанимают представители малого бизнеса, которым требуется помощь программиста в решении относительно несложных проблем. Или предприниматели, работающие над какой-нибудь инновационной идеей с ограниченным бюджетом. Или даже сотрудники крупных ИТ компаний, в свободное время развивающие собственные экспериментальные проекты или концепты. Словом, вариантов масса, но в большинстве случаев это будет небольшая временная работа с четко сформулированными целями. А это — то, что доктор прописал для Java-джуниора без опыта, которому нужно “прокачать” свое резюме.
4. Гуртом и батьку бить легче. Разработка в составе группы

Если индивидуальная работа над проектами, будь то pet projects или задачи для фрилансеров, по каким-то причинам “не идет,” можно попробовать другой вариант — разработку в составе команды девелоперов примерно одного уровня. Совместная работа и решение проблем не только помогают быстрее учиться и прогрессировать, но и решают проблему с мотивацией, которая остро стоит для многих начинающих разработчиков, особенно когда они работают дома. Кстати, на форуме JavaRush периодически появляются темы, где кто-то собирает именно такие команды. Там же можно найти и небольшие оплачиваемые проекты для одного разработчика. Такие, например, как этот.
Как стать Java разработчиком за 1,5 года
Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.

Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.
Disclaimer
Скажу сразу, что всякие варианты «выучи яву за 10 дней» (21 день, 30 дней и т.д.) – это утопия. Нет никакой красной таблетки, чтобы быстро попасть в матрицу. Но за год-два параллельно с основным местом работы – вполне реально.
Что у меня было в активе, прежде чем я начал изучать Java
Сначала я хотел назвать статью «Как стать Java разработчиком за 1,5 года с нуля», но передумал. Я ведь пришел в программирование не из совершенно другой области, а из IT. Но работал я не в разработке, а в поддержке. Вероятно, дальнобойщику будет не так просто повторить мои шаги, чтобы стать программистом. Хотя, если у моей жены получится в свои 34 переквалифицироваться из чистого гуманитария в разработчика (или тестера), то напишу еще одну статью.
Стоит сказать о том, что я уже умел, когда решил стать разработчиком.
В университете в течение 2-х семестров мы изучали программирование на Си и С++. Ничего особенного или каких-то глубоких знаний. Сдали – забыли. Далее, будучи студентом, я писал какие-то простенькие программы на Delphi для себя. И всё. Это было более 20 лет назад.
Дальше моя карьера выглядела так:
- Системный администратор
- Системный инженер
- Зам. руководителя отдела
- Руководитель
- Инженер тех. поддержки
Непосредственно программированием я вообще не занимался.
Мой путь
Онлайн-курсы.
Я начал со следующих специализаций на coursera.org:
Java Programming and Software Engineering Fundamentals – 4 месяца
Я прошел следующие онлайн-курсы:
-
(4 недели) (4 недели) (4 недели) (4 недели)
- Java Programming: Build a Recommendation System (4 недели)
После этой специализации я уже более-менее разбирался в языке, но писать самому программы было еще нереально. Последний capstone-проект я не сделал. Мне было сложно. И у меня, честно говоря, пропал энтузиазм. Я сделал перерыв.
Object Oriented Java Programming: Data Structures and Beyond– 5 месяцев
Через месяц я решил всё-таки вернуться к занятиям снова. Я пошел на специализацию из пяти курсов:
-
(6 недель) (6 недель) (5 недель) (4 недели)
- Capstone: Analyzing (Social) Network Data (6 недель)
Последний capstone-проект я также не осилил. Но предпоследний курс в списке «Mastering the Software Engineering Interview» помог мне неплохо подготовиться к последующим собеседованиям. А еще я смог написать свой первый простенький парсер простого сайта на чистом HTML. Уже было неплохо, но не впечатляло.
How to Code – 3 месяца
Следующим шагом были эти два странных курса на edx.org:
-
(7 недель) (6 недель)
Я написал «странных», потому что там вообще речь не идет о Java. Авторы курса используют специальный язык программирования Beginning Student Language (BSL). Я где-то прочитал, что они мега-полезные. Наверное, эти два курса помогли мне лучше понять некоторые приемы написания программ и стали хорошим подспорьем для написания Unit-тестов в реальной работе. Но, если быть честным, их можно пропустить.
Data Structures and Algorithms – 2 месяца
Потом я снова вернулся на coursera.org и начал новую специализацию, сотоящую из следующих четырёх курсов:
-
(5 недель) (4 недели)
- Algorithms on Graphs (5 недель)
- Algorithms on Strings (4 недели)
Но осилил только первых два. На остальные даже не стал записываться. Параллельно с этими курсами я начал читать книгу OCA, о которой речь пойдет дальше.
Топтание на месте
В тот момент я понял, что топчусь на месте. Прохождение новых курсов не давало такого ощутимого количества новых знаний, как это давали первые. Т.е. знания вроде прибавляются, но это никак не приближает меня к получению работы. Я не понимал, как с такими знаниями можно вообще найти на работу. Я всё также не мог написать ничего, что было бы сложнее парсера. Ну как так-то. Я даже пытался написать свой сервис парсинга сайтов с блэк-джеком и путанами, но уже после недели разработки мой проект превратился в кашу из классов. И я уже сам не мог разобраться в том, что я там понаписал. Кроме того, мне всё ещё были непонятны некоторые аспекты функционирования языка. И это после того, как я уже потратил примерно год на все этих курсы. Двенадцать онлайн-курсов и целый год времени, Карл, вы только вдумайтесь в это. На самом деле, это был провал. Я был уверен, что за год я смогу стать разработчиком благодаря этим курсам. Я заблуждался. Мне нужен был план Б.
Альтернатива
Я стал искать курсы, которые бы помогли мне получить какие-то практические навыки, востребованные в реальной работе. Но ничего толкового не было, либо стоило приличных денег. Те же курсы от отуса стоят 50000 за шесть месяцев и отзывы на них противоречивые. Я не был готов к таким расходам. Я был готов впахивать самостоятельно и искал, как это можно сделать бесплатно или совсем недорого. В итоге все онлайн-курсы, которые мне попадались, делились на две категории:
- Первая рассчитана на новичков или людей с нулевой подготовкой. С их помощью ты достигаешь уровня «три с минусом». Это я! Это про меня!
- Вторая для «хорошистов» с опытом работы, которые хотят стать «отличниками». Вроде таких: «Как писать микросервисы на Java для высоконагруженных проектов с использованием WildFly Swarm». Что это вообще такое.
А между ними зияющая пустота. Ну где я и где все эти микросервисы. Получалось, что для «троечников» вообще ничего нет. Или есть, но за хорошие деньги. И как стать «хорошистом» бесплатно, без регистрации и СМС, вообще непонятно.
Сертификация Oracle
Тогда я решил стать сертифицированным разработчиком на Java. Потому как фраза «Я профессиональный программист на Java» звучит очень круто и должна сразить будущего работодателя наповал. Во всяком случае, тогда я так наивно думал.
OCA: Oracle Certified Associate Java SE 8 Programmer – 2 месяца
Для этого я купил книгу:
OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808
На освоение этой книги у меня ушло примерно 2 месяца. Она реально открыла мне глаза на многие аспекты и заставила понять, как работает язык в деталях. Это было хорошее продвижение вперед. Но не в поиске работы, а в понимании языка Java. На экзамен я шел с уверенностью, что сдам его хорошо, и я его сдал. Я набрал 84% при необходимых 65%. Я был безмерно горд собой.
Стоимость экзамена $245. В России он стоит немного дешевле.

OCP: Oracle Certified Professional Java SE 8 Programmer – 4 месяца
Я с энтузиазмом принялся за вторую книгу тех же авторов:
OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809
На освоение второй книги я потратил уже 4 месяца. И это оказалось реально сложно. Два раза я делал перерывы по одной неделе, потому как понять лямбда выражения или многопоточность мне было действительно непросто. Также меня убивало обилие классов для ввода и вывода. Все эти NIO и NIO2, которые так похожи и которые нужно было знать. Что там базовый класс, что производный? Это был настоящий кошмар. В итоге я назначил дату экзамена за месяц, потом перенес его на две недели, потом еще на две. Меня поджимали сроки, на горизонте маячило собеседование. И мне нужен был этот сертификат. Я не стал переносить экзамен в третий раз и пошел с тем, что имел. В отличие от первого экзамена, я уже не был уверен в хорошем результате. Я вообще не был уверен, что смогу его сдать. От былой гордости не осталось и следа. Объем информации для понимания и запоминания во второй книге раз в пять больше чем в первой. Но я сдал и этот экзамен. К счастью, тестовые задания в книгах оказались сложнее, чем те, которые были на экзамене. Но это был прорыв… для меня. Прорыв в плане знаний и понимания того, как работает язык и какие инструменты он предлагает.
Стоимость экзамена также $245.
Могу сказать, что эти две книги мне дали больше, чем все те онлайн курсы, что я прошел ранее. Но я не знаю, смог ли бы я вообще сдать эти экзамены, если бы не прошел предварительно курсы. С помощью этих экзаменов я перешел на уровень «три с плюсом». И это было уже что-то. Но я всё также не был способен самостоятельно реализовать какой-нибудь интересный проект. WTF.
Я понял, что я достиг максимума от того, что я мог получить сам, и изучать язык дальше было бессмысленно. Более того, я понимал, что мои знания, которые я с таким трудом получил, без практики очень быстро улетучиваются. Тянуть было нельзя, и я занялся подготовкой к собеседованию и приобретением навыков, которые могут потребоваться при устройстве на работу.
Что нужно, чтобы получить работу?
Нужно пройти собеседование и техническое интервью! Про подготовку к собеседованию писать не буду. Это тема для отдельной статьи. Напишу только про те знания, которые нужны, чтобы пройти техническое интервью.
Подготовка к интервью – 1 месяц
Я купил следующую книгу:

Настоятельно ее рекомендую. Она поможет подготовиться к техническоой части собеседования. На неё я потратил примерно месяц. Многие задания были непонятны, поэтому я нашел еще один экземпляр на русском, и когда мне было совсем непонятно, я смотрел в него.
Дополнительные навыки
К этому моменту я уже активно мониторил рынок вакансий в своём городе и выбрал компанию, в которой хотел бы работать. У них была вакансия Java Developer. В вакансии в числе желаемых навыков стояли знания Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. Мне не нужны были глубокие знания всех этих технологий, мне нужно было простое понимание, что это такое и как оно работает. Чтобы на собеседовании можно было сказать, мол да, я знаком, но не глубоко.
Oracle SQL – 1 неделя
SQL я уже неплохо знал, так как по долгу службы приходилось делать много произвольных отчетов для руководства. Но это был T-SQL от Microsoft, а тут требовался SQL от Oracle. Пришлось купить книжку, чтобы вспомнить основные моменты и понять разницу.

Эту книжку я пробежал быстренько за неделю. И понял, что я на 70% готов сдать еще один экзамен. Но мне было уже не до этого.
SVN – 1 неделя
SVN распределённая система управления версиями. GIT или SVN используется в большинстве компаний, которые занимаются разработкой ПО. Курсов по SVN я не нашел, поэтому решил взять короткий курс по GIT: «Version Control with Git», чтобы быть в курсе темы. Я даже подумал, что если спросят про SVN, то скажу, что имел дело с GIT. А потом на месте сориентируюсь. Если вдруг будет что-то непонятно, то всегда можно будет сказать, что в GIT это немного по-другому. И это, кстати, сработало.
GWT – 3 дня
Следующая технология из списка – GWT. Потратив несколько дней на поиски информации, я понял, что с этим Фреймворком от Google мне просто не разобраться. Если упрощенно, то можно писать сложные сайты на Java, а этот Фреймворк преобразовывает твой код в HTML + JavaScript и отображает в браузере без всяких надстроек и дополнений. Слишком всё круто. GWT я решил пропустить.
Eclipse – 3 дня
Eclipse — среда разработки, основной инструмент разработчика, с которым я имею дело каждый день. Каких-то специальных курсов я не брал. Посмотрел несколько видео на youtube, понял основные приемы. Попробовал всё сам руками.
Maven, Jenkins – 15 минут.
На эти две вещи времени просто не осталось. Собеседование было уже утром, поэтому я просто прочитал 2 статьи в википедии и лёг спать.
Время
Мной было потрачено примерно 18 месяцев, 2 недели, 6 дней и 15 минут на получение знаний и навыков, необходимых для получения места разработчика. Этим я занимался по вечерам, тратя 1-3 часа в будние дни. И около 5-6 часов на выходных.
Деньги
Я готов был тратить свое время и не готов был тратить деньги. Но потратить их всё же пришлось.
Курсы:
- Все онлайн курсы я прошел бесплатно Бесплатно. Как это сделать на coursera.org я писал тут.
Книги:
-
– 36€ – 34€ – 37€ – 45€
Экзамены:
Дополнительные расходы:
- Проезд в другой город на экзамены, т.к. в моем нет сертификационных центров – 120€.
Итого: 702€
Совсем бесплатно, к сожалению, не получилось. Книги покупал на английском, т.к. экзамен тоже на английском.
Результат
Этих знаний хватило, чтобы пройти собеседование и подписать контракт в достаточной крутой немецкой компании. Я бы даже сказал, что их хватило с запасом.
Их также хватило, чтобы пройти шестимесячный испытательный срок и получить постоянное место в штате разработчиков.
За эти 6 месяцев работы в качестве разработчика я закрыл более 200 заявок на разработку, доработку и исправление ошибок в коде совершенно разных подсистем и модулей. И ни от одной заявки я не отказался «потому что я не смог». Да, мне приходилось и сейчас приходится разбираться в новых вещах, искать информацию, вникать в детали. Что-то я делаю медленно, но мне это интересно и процесс идёт. А ещё за это хорошо платят.
Но не надо думать, что я очень умный. Я самый простой парень, который просто решил изменить свою жизнь к лучшему. Я такой же, как и ты. А если смог я, то сможешь, и ты!
Экспресс – путь
На самом деле, чтобы стать разработчиком, у меня ушло не 1,5 года, а два. Но это по моей собственной глупости (читайте об этом в моем телеграм-канале). Непосредственно на яву я потратил 1,5 года. Но необязательно повторять мои ошибки. Думаю, что можно достичь того же результата за более короткий срок. Выкидываем всё лишнее и получаем примерно такой путь:
Часть первая – 5 месяцев
-
(6 недель) (6 недель) (5 недель) (4 недели)
Параллельно читаем книжку:
По результатам сдаем экзамен.
Часть вторая – 2 месяца
Берем следующие курсы специализации Data Structures and Algorithms:
-
(5 недель) (4 недели)
Параллельно читаем книгу:
Часть третья – 4 месяца
По результатам сдаем экзамен.
Часть четвертая – 1 месяц
Смотрим, что конкретно хочет работодатель от соискателей, и тратим по одной неделе на каждую из 4-х самых нужных технологий, программ или Фреймворков (Git, Eclipse, Maven, Spring и т.д.). Плюс изучаем предметную область, в которой работает работодатель, его продукты, если есть и т.д.
Итого год. За год – вполне реально.
Будьте на связи
О том, как я изменил свою жизнь в 40 лет и переехал с женой и тремя детьми в Германию я пишу в своем телеграм-канале @LiveAndWorkInGermany. Пишу о том, как это было, что хорошо и что плохо в Германии, о планах на будущее. Коротко и по делу. Присоединяйтесь – будет интересно.
Как заработать Java программисту: варианты профессионального развития

От автора: здравствуйте, друзья! Сегодня у нас на повестке дня — варианты заработка для людей, знакомых с программным кодом Java. Если вы сочетаете в себе, как поговаривал академик А.П. Ершов, «аккуратность бухгалтера, проницательность разведчика, фантазию автора детективных романов и трезвую проницательность экономиста», но при этом, вкалываете много, а зарабатываете мало, то эта статья вам очень даже может пригодиться. Давайте же узнаем, как заработать Java программисту.
Почему Java?
Сегодня Java — это один из самых востребованных и популярных языков программирования. На нем можно написать программу под любые ОС, в том числе, и мобильные. Если учесть, что рынок мобильных устройств в последнее время растет в геометрической прогрессии, то можно сделать вывод, что язык Java — это золотая жила. Если не «тормозить», конечно. Кроме востребованности на IT-рынке, к преимуществам этого языка программирования также относятся:
хорошая оплата. О деньгах, которые может заработать Java-программист, мы поговорим ниже. Не переключайте Скажу только, что зарплата очень и очень достойная, особенно у Senior Developer. Особенно, если она привязана к курсу доллара;
легкость изучения. Несмотря на то, что прародителем Java является великий и могучий C++, он интуитивно прост и не обладает таким уж «замудренным» кодом. Тем более легко на нее перейти после языков CИ-группы;
распределенность. Как я уже говорил, Java заточена под все операционки;

Профессия Frontend-разработчик PRO
Готовим Frontend-разработчиков с нуля
На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…
безопасность, которая обеспечивается четырёхступенчатой защитой, проверяющей код на вредоносность;
устойчивость. Благодаря тщательной проверке кода во время трансляции и интерпретации, множество синтаксических ошибок можно выявить еще на стадии разработки приложения.
Померяемся зарплатами!
Порой интересно понаблюдать за тенденциями развития разных языков программирования. Но еще интереснее — мониторить зарплаты, которые предлагает современный рынок труда программистам, ведь амбициозный специалист всегда находится в состоянии непрерывного поиска более перспективной работы.
Средний уровень предложений по зарплате напрямую зависит от уровня позиции и языка программирования, которым владеет кандидат. Посмотрим, сколько зарабатывает ведущий Java программист: в среднем, 155 000 рублей. И это самый высокий показатель среди всех специальностей, представленных в таблице от портала Superjob (май 2015 г.):
Вообще, тенденция к повышению заработной платы прослеживается по мере снижения конкуренции. Среди Java программистов конкуренция меньше всего — спрос на хорошие кадры превышает предложение.
Практические советы по поиску работы
Составьте грамотное резюме.
К составлению резюме следует отнестись максимально ответственно, даже дотошно. Проверьте каждую буковку. Если сомневаетесь в своей грамотности — не стесняйтесь попросить о помощи знающего человека.
В резюме особо выделите знание тех технологий, которые указаны в требованиях к вакансии. Опишите проекты, в которых принимали участие, и ваши обязанности в рамках этих проектов. Только не стоит приукрашать действительность — скорее всего, вам на собеседовании придется ответить за каждую технологию, указанную в резюме.
Подготовьтесь к собеседованию.
Независимо от используемых на проекте фреймворков, вы должны показать твердые знания Core Java, ну и, само собой, JDBC и JEE. Изучение Java Enterprise лучше начинать с понимания того, как работает JSP и сервлет.
Кроме этого, вы должны знать один из самых простых и хорошо задокументированных серверов приложений — Tomcat. Попробуйте разобраться в нем с настройкой производительности, SLL и удаленной отладкой.
Также вам, скорее всего, понадобятся хотя бы поверхностные знания SQL, XML, JSON, XPath, HTML, CSS, JavaScript, понимание SOAP и REST. Что касается JavaScript, то здесь нужно уметь читать (а еще лучше, писать) AngularJS или jQuery.
И если вы серьезно задумали связать свою жизнь с Java, то изучайте английский язык. Во-первых, появятся шансы получить работу в международной компании, а во-вторых, сможете читать полезную литературу на английском. В любом случае, ваша ценность как специалиста существенно увеличится.
Найдите работодателя.
В интернете есть множество ресурсов для поиска работы. Можно также просмотреть разделы с вакансиями на форумах программистов. И не забудьте поспрашивать у друзей — вдруг они как раз работают в компании, которая ищет Java программиста.
Выбрав компанию, почитайте отзывы о ней в сети. Вакансия, которая вам приглянулась, могла стать результатом текучки кадров, а не расширения бизнеса. В больших компаниях существует риск получить скучную, монотонную работу. Да и заметить ваш неоценимый вклад там будет сложнее. А маленькие компании — это больший уровень творчества и риска. В любом случае, в любой компании можно многому научиться, особенно, если это ваша первая работа в Java программировании.
Не «ударьте в грязь лицом» на собеседовании.
Изначально воспринимайте собеседование не как допрос, а как беседу между двумя специалистами. Если задали вопрос, на который вы не знаете ответа, не паникуйте. Если вы не сталкивались с чем-то в своей практике, честно об этом скажите и пообещайте, что восполните пробелы в знаниях. Главное, избегать ответов «я не знаю». Перед тем, как капитулировать, попробуйте решить вопрос логически, подумайте, как бы вы решили эту задачу на месте разработчиков.
Перед собеседованием проиграйте в памяти все проекты, в которых вам приходилось участвовать. Вас по-любому об этом спросят, поэтому подготовьтесь к данной части заранее.
Обдумай возможность фриланса или удаленной работы.
Чем отличается удаленная работа от фриланса? В первом случае вам придется пройти собеседование, скорее всего, по телефону или скайпу. На собеседовании вам придется убедить работодателя, что вы самостоятельная личность, которая может самоорганизовываться и саморазвиваться. Удаленная работа зачастую предполагает заключение контракта на год.
На фрилансе обычно не нужно ни перед кем отчитываться — пишешь себе код, когда хочешь и где хочешь. Однако, заработок менее стабильный, чем при удаленной работе. Кроме этого, приходится постоянно мониторить форумы, биржи фриланса и соцсети в поисках новых заказов.
Чтобы получить ценный опыт, можно присоединиться к команде разработки open source. Там вы сможете потренировать свои навыки самоорганизации и научитесь быстро вникать в чужой код.
Еще один вариант того, как можно заработать Java программисту — создать собственное, востребованное приложение под Android. Для этого придется пройти примерно такой путь:
Даже если у вас не получится заработать на своем приложении, это существенно повысит вашу карму Java-разработчика при трудоустройстве, ведь реальный опыт лучше всяких книг по программированию.
В довесок к Java вы можете попробовать выучить другие языки и стать полноценным full-stack разработчиков. Как я уже упоминал выше, лучше всего изучить JavaScript, HTML и CSS.
Подводя итоги. Java-программисты были и в обозримом будущем будут самыми востребованными IT-специалистами. Профессионалы ценятся по всему миру, часто работают на благо зарубежных компаний и получают достойные зарплаты, привязанные к курсу доллара. А это, согласитесь, лучшая защита от экономического кризиса.
Способов заработать Java программисту много, и зачастую приходится много и усердно трудиться, чтобы начать получать хороший доход. Однако, при большом желании и целеустремленности, можно получить перспективную работу в любой точке земного шара.

Профессия Frontend-разработчик PRO
Готовим Frontend-разработчиков с нуля
На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…
На этой вдохновляющей нотке буду заканчивать. Надеюсь, вам понравилась моя статья. Если не жалко, то поделитесь ею с друзьями. Желаю достойных заработков Java программистам и спасибо всем за внимание!
Как начинающему Java-разработчику получить первый оффер: мнение Альфа-Банка
Какие навыки потребуются для успешного прохождения собеседования на Java-разработчика? Сколько разрабы получают на старте и за какое время можно вырасти до middle? Вместе с IT-архитектором Альфа-Банка Максимом Чернухиным разобрались, как новичкам прокачать образование и карьеру, чтобы получить работу. А также посмотрели на особенности трудоустройства junior-джавистов в Альфа-Банк.
Еще во время пандемии спрос на IT-специалистов сильно вырос — многие компании стали стремительно осваивать онлайн. Параллельно на этот тренд наложился демографический спад среди поколения миллениалов и зумеров, на которых приходился основной массив разработчиков. В итоге с середины 2020 года и по сей день на рынке ощущается нехватка «свободных» middle-специалистов. А потому компаниям пришлось задуматься о взращивании собственных айтишников.
Если говорить о плюсах такого подхода, то инвестиции в начинающих специалистов помогают повысить лояльность команды. Сотрудники, которых обучила компания, показывают высокий уровень вовлеченности и дольше остаются в коллективе. А удержание кадров является одной из ключевых задач в высококонкурентном сегменте IT.
Другое преимущество — возможность вырастить узконаправленного специалиста под задачи компании. Если вам на постоянную основу нужен разработчик с редким стеком, чаще бывает выгоднее обучить его внутри коллектива, чем искать на рынке.
Найти сотрудников на перегретом рынке тяжело: опытные специалисты часто или запрашивают слишком много, или не хотят менять комфортное место работы. Здесь на помощь приходят и джуны. Они могут взять рутинные задачи сеньора, разгрузить более производительного сотрудника. К тому же, джуны зачастую привносят в устоявшиеся коллективы новый критический взгляд. В попытках приручить хаос они задают много вопросов и могут помочь найти организационные пробелы. Важный момент заключается в готовности компаний нанимать начинающих разрабов: потребуются выстроенные процессы онбординга и менторинга. В противном случае каждый новый сотрудник только добавит проблем.
Самое главное для junior-разработчика — наличие базы технических навыков в Java. Вот список стартовых hard skills:
- Знание основ языка и ООП (объектно-ориентированное программирование);
- Базовые знания одного из популярных фреймворков Java, например, Spring;
- Понимание принципов работы микросервисов и умение упаковывать их в контейнеры;
- Умение работать с базами данных: знание PostgreSQL будет плюсом.
Если говорить о soft skills, то логическое мышление и непрерывное образование — действительно необходимые для развития требования. Новичку важно набрать как можно больше теоретических и практических основ: с этим могут помочь популярные онлайн-курсы и стажировки.
Начинающие разработчики могут получить оффер с помощью одного из этих способов:
- Стажировки
Это оплачиваемая возможность получить опыт, который помогает в будущем попасть в штат. Для попадания на стажировку необходимо пройти скрининг, то есть соответствие кандидата уровню джуна, и техническое интервью. В среднем стажировки длятся до полугода. Даже если новичок в итоге не получит оффер, он сможет понять, какие навыки нужно прокачивать. - Обучающие проекты
Это образовательные программы от компаний для тех, кто только закончил вуз, начинает прокачиваться в IT или хочет сменить индустрию. В Альфа-Банке это проект Alfa Campus — трехмесячные курсы по тестированию, системной аналитике и микросервисной архитектуре. На всех программах студенты работают с Java. Первый поток мы запустили в апреле. Набор на продвинутый курс по микросервисной архитектуре стартует в июле. Лучшие студенты кампуса будут приглашены в штат. - Образовательные платформы
Стереотип о том, что выпускники образовательных платформ и программ дополнительного профессионального образования обладают недостаточными для полноценной работы навыками, уходит в прошлое. Напротив, для многих крупных компаний упоминание курсов в резюме соискателя становится показателем высокой мотивированности и искреннего интереса к профессии. Кроме того, компаниям удобно взаимодействовать с кузницами кадров внутри EdTech. Например, в Skillbox существует Центр карьеры. Профессиональные HR-консультанты начинают общаться с пользователями на шестом-седьмом месяце обучения, помогают подготовить резюме и портфолио, организовывают собеседования. - Собеседования
Проверить свои навыки можно через прохождение собеседований на открытые позиции. Многие крупные компании выкладывают вакансии на специальных лендингах. Вот наш: job. alfabank. ru. Как правило, для начинающих специалистов отбор состоит из тестового задания, технического интервью и общения с командой. Не бойтесь пробоваться на позиции в крупных компаниях, ведь даже отказ — шанс получить обратную связь и прокачать навыки. Главное — составить подробное описание резюме. Расскажите, чем вы уже занимались, что умеете. Пусть даже навыков немного, но честность и детали уже выделят резюме среди других для HR. Покажите, что вы готовы учиться и умеете это делать: например, можно рассказать, как изучили какой-то блок языка самостоятельно. Покажите, что можете отдавать много времени Java: тогда ваши шансы на трудоустройство сильно вырастут.
Поиск работы стоит начать с анализа рынка — так вы исследуете требования разных компаний и стек, с которым они работают. Полезными здесь будут профессиональные чаты и форумы. Можно также посмотреть размещенные и архивированные вакансии на работных сайтах. На них можно найти базовые требования и вопросы, которые соискателю будут задавать на собеседовании. Тестовое задание, скорее всего, будет соответствовать этому стеку. Важно выполнить тестовое самостоятельно, даже если вы нашли решение в интернете. Так как в устной беседе техлид может задавать вопросы по его выполнению.
Что нужно, чтобы повысить шансы на попадание в штат? Теоретическая и практическая база. Показать ее можно, например, с помощью личного IT-проекта из портфолио — реализованные программы, код. Желательно, чтобы он был создан в команде — так соискатель подтвердит, что у него все в порядке с soft skills. Сегодня, если у кандидата отличные hard skills, но он не умеет работать в команде, высока вероятность, что его не возьмут.
А вот наличие диплома о высшем образовании по специальности уже не является критерием отбора. Для начинающих разработчиков важнее умение и желание учиться — в резюме эти навыки можно показать, например, другими стажировками или пройденными курсами по Java.
Как и в случае со стажировками, после найма к junior-разработчику приставят ментора. Обычно это опытный специалист, который поможет с погружением в проект и отследит эффективность работы и обучения. Наставник даст советы для прокачки и hard, и soft навыков. Но здесь важно отметить, что на старте карьеры разработчика основной фокус будет идти именно на технические навыки и исполнительность.
Junior-специалисты занимаются теми же проектами, что и другие, но задачи для них прописаны детальнее или декомпозированы. У нас в Альфа-Банке они, как правило, связаны с микросервисами — небольшими блоками, из которых состоят приложения. Со временем уровень сложности по проекту растет. Появляются задачи, по которым нужно провести ресерч и попробовать несколько способов решения.
Раз в квартал разработчики проходят сессии с руководителем, на которых он оценивает результаты проделанной работы. В Альфа-Банке мы выработали целую систему, которая позволяет определить зоны роста. На сессии обсуждаем со специалистом, на какие навыки ему нужно обратить внимание, и смотрим динамику его прогресса.
Рост до следующей ступени, middle-разработчика, в среднем занимает год. Это медианное значение — скорость повышения зависит от мотивации и опыта начинающего специалиста. При этом получить повышение по зарплате можно и без перехода. Например, если junior-разработчик решил важные для компании задачи, его могут наградить премией или увеличением ставки.
В Москве зарплатные ожидания у разработчиков в среднем такие: джуниор специалист может рассчитывать на сумму от 60 до 140 тысяч рублей в зависимости от компании. Специалист уровня middle может получать до 250 тысяч рублей, а у senior-разработчиков зарплата доходит и до 350 тысяч. В регионах эти суммы стоит умножить на коэффициент 0.8
Чем дальше растет специалист, тем больше увеличивается время, необходимое для перехода на следующий уровень. На то, чтобы получить навыки senior-разработчика, точно уйдет больше года. С повышением грейда на передний план выходят soft skills: умение управлять командой, мотивировать и вдохновлять, ставить задачи, прорабатывать архитектуру и мониторить процесс. Эти навыки нарабатываются опытом и практикой.
Самое важное для старта в IT — это личное желание человека. Тогда не будет страшно пробовать, совершать ошибки и совершенствоваться. Горящие глаза обязательно оценят HR-специалисты и будущая команда. Рынку нужны разработчики. Поэтому с каждым днем появляется все больше инструментов и каналов для быстрого старта и профессионального роста ньюкамеров.