Тарантино представляет: как стать Java-разработчиком

Меня зовут Святослав, я работаю в компании Luxoft на позиции Junior Java разработчика. Сейчас вы прочитаете небольшую историю моего пути в Java. Эта статья будет полезна всем, кто планирует попробовать себя в программировании на Java, или тем, кто уже начал учиться и ищет советы.

Часть 0. Hello, Java!

Итак, как все начиналось? Однажды, в 2018 году, сидя в маршрутке и смотря на забытые Богом улочки, я подумал:

А если быть точнее, в далеком 2018 году, когда я учился в 11-м классе, мой друг, который купил себе подписку на JavaRush, предложил мне попробовать себя в программировании и поучиться на этой платформе. Я подумал «А почему бы и нет?». Ведь программирование было у всех на слуху, и это было хорошей возможностью попробовать себя и понять, нравится ли мне.

Зима 2018 года, на носу ЗНО, а я сижу ночами, учусь-играю на JavaRush. По началу было ничего непонятно. Я проходил уроки очень медленно, вчитывался в материал по нескольку раз и все равно не всегда понимал. Но главное, мне было интересно, и это не давало остановиться. Ну и что тоже немаловажно — я смог сам написать и запустить приложение «Hello, world!». Стоит отдать должное платформе JavaRush, обучение построено в максимально понятной и игровой форме, очень хорошо помогает в начале.

Потому моим первым советом будет: попробуйте себя на какой-то бесплатной или недорогой платформе обучения, чтобы понять, интересно ли вам это. И только потом стоит идти и обучаться этому профессионально.

Часть 1. Высшее образование: быть или не быть

Моё обучение на JavaRush продлилось не так долго, всего месяц-полтора. Мне пришлось с головой погрузиться в подготовку к ЗНО, так как оставалось очень мало времени до этого веселого экзамена. И тут больше всего внимания я уделил английскому языку, и как оказалось, не зря.

Английский язык поможет в обучении, ведь большинство курсов и лекций по Java — именно на английском. Документация, работа — тоже на английском.

Я учил язык с помощью просмотра сериалов в оригинале с субтитрами, чтения статей и прослушивания музыки с разбором переводов. И сейчас мой уровень английского языка — C1. Выходит, что английский можно выучить самому, в домашних условиях.

Параллельно я присматривался к украинским ВУЗам, где есть специальности по программированию, и понимал, что тема гиблая. Единственный ВУЗ, который я отметил для себя — ХНУ (Харьковский Национальный Университет имени Каразина), так как там была программа по обмену студентами, сертификат котировался даже в Европе, а программа выглядела современной. Но возможности поступить в Харьков у меня на тот момент не было, и в свои 16 лет я решил не тратить пять лет на учебу, ведь был уверен, что смогу выучить программирование и без ВУЗа. Мои учителя, правда, чуть инфаркт не словили, узнав, что их отличник и олимпиадник никуда не поступает, ведь даже двоечники поступали.

Часть 2. Период забвения. И как я вернулся в Java

Я закончил школу с пониманием, что хочу выучить Java, и непониманием, как это сделать самому. Начался период забвения. Я пробовал обучиться программированию по разным видео, статьям, но это не увенчалось успехом (Java — не английский, и так просто дома этот язык не выучишь). Я понял, что полностью самостоятельно выучить Java у меня не получится, так как в доступных источниках довольно тяжело найти всю нужную информацию. И я начал поиск курсов, подходящих под мои требования.

Курсы должны обучать практическому использованию навыков. Преподаватель не должен зарабатывать на жизнь только обучением программистов. Потому что в 90% случаев преподаватели, которые работают только преподавателями, это те, кто не удался в роли программиста и пошел работать в ВУЗы или дешманские курсы. Цена за курсы должна быть адекватной (и не заоблачной, и не низкой).

И нормальные курсы ни в коем случае не будут брать с вас процент от вашей з/п на протяжении двух лет. Если есть такое условия, закрывайте сайт и удаляйте из истории поиска. Лично мне больше всего подошла компьютерная школа Hillel, на обучение в которой я и поставил себе цель заработать денег.

Потому некоторое время я подрабатывал на стройке, садовником, и везде, где платили деньги. И ближе к началу зимы 2019 года началось обучение на курсе Java Elementary, на котором мы должны были дойти до Spring (тут совсем капельку), работы с БД, Git-ом, и пройти весь Java Core. Этот курс был рассчитан на 4 месяца обучения. После него мне предстоял курс Java Enterprise: Spring, Hibernate, Docker, углубленное изучение Java. Итак, началось мое обучение.

Правда, с группой мне не сильно повезло: никто сильно учиться не хотел. 10 из 12 человек забросили занятия к 5-му уроку, причем 2-е из группы приходили на занятия, чтоб поиграть в Clash Royale вместе. К тому времени и мой друг, с которым я когда-то начинал учить джаву, так же забросил обучение. Потому здесь будет совет: в программировании важна усидчивость. Учиться будет тяжело, и это нормально.

Часть 3, короткая. Отрицание. Абсолютно-ничего-непонимание. И как с этим бороться

У вас точно будет время, когда ничего не будет получаться, и вы будете многого не понимать. Но если вы для себя решили, что хотите стать программистом — никогда не останавливайтесь, и через время вы об этом не пожалеете (звучит как-будто я какой-то Игорь Войтенко и пишу мотивационную речь для своего следующего видео). Посидите где-то дольше, почитайте разные статьи, разберитесь в теме, которая непонятна. Ответы можно найти на все вопросы, но ни в коем случае нельзя забивать и останавливаться.

Часть 4. Первые попытки попасть на галеру во времена великой пандемии. Или как я на время стал коллектором

Подходил конец обучения на первом курсе. Начался 2020-й год и карантин, мы перешли на дистанционное обучение на несколько последних занятий. По итогу курса мне удалось занять первое место в списке лидеров по оценкам (было бы странно, если бы не получилось с такой-то группой). Но из-за проблем с финансами попасть на второй курс у меня не получалось.

В это время я попробовал себя на двух собеседованиях, в одном из которых мне предложили перейти на другой язык программирования, что мне не очень понравилось, а во втором — предложили взять на себя проект и двух джунов в подчинение, создать архитектуру и начать писать приложение с нуля. На минуточку, это была вакансия Junior Java Developer. Работодатели в Украине, вот честно, вы иногда перегибаете палку.

Учитывая всё это, мне пришлось пойти на другую работу, и около полугода я работал в банковской сфере, вообще не связанной с программированием (да-да, работал с опасными должниками). В это время я уже съехал от родителей и начал самостоятельную жизнь. И все еще планировал попасть на второй курс программирования. Но то, что я учил раньше, понемногу начало забываться. Потому тут мой совет — не растягивайте обучение на долгие годы. Лучше сразу подготовиться, всё спланировать и иметь финансовую подушку на время поиска работы и обучения, чтобы потом не пришлось перекантовываться на разных временных работах, и заново учить то, что уже забыли.

В это время я пробовал подать свое резюме в ПриватБанк на позицию уровня Junior, где мое резюме сначала успешно рассмотрели, заинтересовались... а потом, узнав, что у меня нету высшего образования, обещали «перезвонить завтра». Да, даже в программировании не всегда берут на работу без «корочки».

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

Часть 5, большая. Новая жизнь. Первая желанная работа

В начале 2021 года, спустя больше полугода после окончания курса Hillel, в списке вакансий я наткнулся на предложение стажировки от Luxoft. Как раз то, что было нужно, ведь они набирали на трехмесячную стажировку с написанием проекта, а это опыт и дополнительное обучение. Я решил попробовать. На ± 10 мест в компании претендовали более ста человек, как я потом узнал.

Но никогда не сдавайся. И я советую: пробуйте себя, подавайте резюме в разные компании, ходите на собеседования. И хоть по началу вам могут отказывать, однажды вы не упустите свой шанс попасть на желаемое место работы.

Я подготовился к первому тестированию и успешно его прошел. Меня пригласили на интервью, к которому я готовился. Перед собеседованием вспоминайте ответы на, как кажется, простые вопросы. В интернете есть много примеров типичных вопросов и ответов на разные темы. На YouTube можно просматривать записанные интервью с разными уровнями программистов (вот один из каналов с такими примерами).

Собеседование было довольно сложным. На некоторые вопросы я ответить не смог, но, как вы уже поняли, я его прошел. И меня взяли на позицию стажера в компанию.

Весной 2021 года я начал работать в команде стажеров под руководством тимлида и двух техлидов над проектом, который включал в себя Spring, работу с базами данных, REST API, Docker и искусственным интеллектом. Как бы это весело не звучало, но я практически ничего из этого не понимал. Так что предстояло полное погружение в программирование.

Я смотрел много видео, читал статьи по темам. В программировании, даже когда уже работаете — вы должны учиться, конечно, если вы не хотите остаться вечным ждуном. Не пожалейте потратить время на полезную статью или хороший подкаст по пути на работу, выделить время и посмотреть лекцию. Ведь если вы не учитесь, ваша цена как разработчика падает.

И для только погружающихся в программирование на Java: думаю, вы уже понимаете, что Spring ждет вас. Все хорошие проекты сейчас работают со спрингом. Он собрал в себе реализацию лучших дизайн-паттернов программирования и делает жизнь проще.

Не рассчитывайте, что вас не спросят о Spring на собеседовании. Конечно, могут быть такие проекты, которые сидят на Singleton`ax и Object Factory, но Господи упаси, не идите туда. Помочь в изучении Spring могут лекции на ютубе, к примеру, Spring-потрошитель. В работе со Spring Boot может помочь канал letsCode, там много полезных видео и на другие темы. Внизу прикреплю ссылки на несколько видео и канал.

Обязательно стоит уделять время работе с REST API, чтобы понимать основные принципы. Это обязательно пригодится и во время собеседования, и на работе. Уже на стажировке мы вовсю работали с REST-запросами и REST API.

И, что очень важно, учитесь работе в команде. Когда меня брали в команду, плюсом для меня была хорошая коммуникация во время стажировки. Программирование — это работа в команде людей, важно иметь хорошо развитые софт скиллы, уметь договариваться и помогать, и просить помощь (но не переусердствуйте, ибо новой команде может не сильно понравится).

Не стесняйтесь спрашивать, если что-то не понимаете. Лучше спросить, чем сидеть, тупить, и ничего не сделать. На стажировке один парень из нашей команды брал задачки, сидел с ними неделями, потому что не мог спросить ни у кого совет, и даже отказывался, когда ему предлагали помощь. До конца стажировки он не дошел.

Часть 6. Трудности в работе и советики от Свята

Мне было очень сложно погружаться сразу в такой огромный проект, не зная многих технологий, с которыми надо работать. Но для себя вынес хороший урок: не стоит бояться сложных задач.

Может казаться, что если вы возьмете задачу, то никогда с ней не покончите. Но лучше взять что-то новое, чего вы не знаете, и научиться этому, чем сидеть и делать одно и то же (зато это будет легко и быстро, как думают некоторые), ведь, снова же, можно остаться вечным ждуном.

Постепенно стажировка подходила к концу и предстояло собеседование в реальную команду. И, как вы уже поняли, я его тоже прошел (раз пишу эту статью). Работа на реальном проекте — это интересно, сложно и увлекательно.

Уделите время на изучение инструментов тестирования. Будет очень полезно изучить технологию TDD, ведь некоторые проекты требуют работать с такой техникой. Будет полезно понимать, как работают интеграционные тесты, как их можно написать и для чего это нужно. Ну и, конечно же, JUnit. Ведь вам предстоит писать много Unit-тестов. А если в проекте не пишут Unit-тесты — бегите оттуда.

Так же выделю, что понимание Docker — must have. Большинство проектов работает с докером, и вам лучше знать его основные команды, что такое контейнеры, и зачем они в программировании. Та же история с Git.

Часть 7. Итог

Мне нравится, что у меня получается браться за задачи, которые всё сложнее и сложнее. Мне нравится, что команда помогает в моих вопросах. Мне нравится работа. И если вы решили стать программистом — не останавливайтесь.

👍ПодобаєтьсяСподобалось19
До обраногоВ обраному11
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Я учил язык с помощью просмотра сериалов в оригинале с субтитрами, чтения статей и прослушивания музыки с разбором переводов. И сейчас мой уровень
английского языка — C1.

Если точно по процитированному судить, то разговорной практики нуль?

Також варто зазначити, что вчитись через серіали, можна, коли в тебе вже є А2/В1

Скоріше, ви праві тут. Але я починав з знання декількох слів, алфавіту, і небагатьох правил, що запам’ятав зі школи.
Серіали дивився з подвійними субтитрами — на англійській і на знайомій мені мові, кожного перегляду виписував нові слова, записував їх значення, і доволі часто потім переглядав свої запаси. Продовжував так доволі довго. Потім використовувати ще декілька методів для вивчення мови, в тому числі — розмовну практику, в тому числі — з носіями

В статті я не зазначав всі моменти, що не стосуються Java. На момент написання статті у меня було більше року розмовної практики і в свободному, і в робочому стилях

Эту статью под копирку на все языки и направления переписывают:)))

И сейчас мой уровень английского языка — C1

Было бы интересно почитать о подготовке и сдаче экзамена/получении сертификата.

Я був би радий відилити час по свободі, й написати про це більше

Многие динамичные продуктовые проекты b2c написаны без спринга, многие занудные люксовые корпоративные b2b, которые убивают желание заниматся программированием написаны с спрингом. Спринг — не критерий.

Так, згоден, але буває дуже важливим на початку, особливо зараз

Все хорошие проекты сейчас работают со спрингом.

Сильне твердження )). Ну з поправкою на Українські реалії, може і так...
xperti.io/blogs/java-ee-vs-spring

Спасибо за статью! Было что подчеркнуть для себя

Правда, с группой мне не сильно повезло: никто сильно учиться не хотел. 10 из 12 человек забросили занятия к 5-му уроку,

Это почти норма на курсах с предоплатой (точнее, на любых курсах на которые берут всех подряд, без отбора).
По моим наблюдениям — обычно нормально учится примерно треть группы, и из этой трети хорошо если половина смогут работать программистами. Один из шести, а то и один из десяти.

И дело не столько в усидчивости, как в способностях.
Для большинства людей программирование это тяжело и неинтересно.
А очень многие даже при усидчивости, и потраченных сотнях часов времени — ничего не добьются!

А далі що, буде стаття як стати сінйором в 20?
Із свого досвіду проведення співбесід на різні види сінйорності скажу, що під час співбесіди відразу відчувається людина, яка пройшла через технічний вуз і в більшості випадків якісно виділяється на фоні (особливо кандидати, які закінчили КПІ).
Після технічних вузів люди мислять про задачу з багатьох сторін відразу (якщо не протирали штани в аудиторіях і не втоптували пивні корки на полянах) і як правило здатні запропонувати декілька шляхів вирішення.
Саме тому на багатьох вакансіях і пишуть в вимогах вища технічна освіта (хоча б бакалавр).
Як правило, після хорошого очного вузу, ти приходиш не тільки технічно обучений, але і з багажем софт скілів. Саме наявність таких в додачу до технічного багажу потрібні компаніям, якщо хочеш претендувати на щось вище мідла.
Ну і останній аспект — наявність корочки — більша зп і швидший ріст.

Не понял упрека с Вашей стороны на счет «сеньйора в 20». В моей статье и намека на такое не было — это раз.
Второе — я полностью согласен с мнением, что ВУЗы дают плюсы в софт-скиллах и помогают лучше подходить к решению задач. НО,- ВУЗы не единственные места, которые в этом помогут. Потому тут тоже не стоить смотреть слишком узко.
Кроме того, сейчас я прохожу курсы по алгоритмам от разных универов, я оттачиваю и другие тех-навыки и работа мне в этом не мешает, а наоборот — помогает практиковаться.
Потому, если Вас так триггерят сеньйоры в 20 — говорите им, что они ненастоящие. Я не такой

Я вот не пойму. Откуда столько хэйта? Судя по первому же вопросу, видно, что вы и статью толком не читали. Что у нас за менталитет тупой? Не дай Бог, чтоб кто-то не вставил подобного комента под подобной статьей. Что Вас так злит? Что кто-то может по другому, а не так как Вы?[предположение] Безусловно, есть у нас учебные заведения, которые готовят качественных специалистов. Но их на пальцах можно пересчитать. Но их окончание не дает нормальных гарантий. У меня отвращение иногда вызывают люди, закончившие ВУЗы. Самомнения огого. «Да у меня два высших». А толку? Такую чушь несут. Как сказал один человек из этой сферы: «Один год работы заменяет 5 лет обучения». Может преувеличено, но во многом правда. А другой не глупый человек говорил: "Если студент решил учиться, то профессор тут бессилен«(точно не помню). Лично я жалею, что пошел учится после школы. Мало того, что знаний не дали, так еще и по специальности работать охоту отбили. После, в другой сфере, за полтора года работы я приобрел столько знаний и навыков, что я не боюсь практически ничего. За что бы я не взялся, с разной скоростью, довожу всё до конца. Если бы у меня сейчас была возможность вернутся назад, ни за что бы не пошел учится. Это только потраченное драгоценное время. У кучи специалистов, у которых нет диплома о высшем образовании, есть действительно сильные скилы. И они вполне могут потягаться с теми, у кого оно есть. У нас значение образования сильно переоценено. Оно не на уровне штатов или Европы, где система образования действительно работает. А те, кто не готовы рассмотреть кандидата без «корочки», к сожалению не умеют приспосабливаться к рынку(ИМХО).
В заключение могу добавить, что аспекты, которые выделил ТС не расходятся с мнением бородатых дядек, которые в айти начали свой путь раньше, чем оно появилось в Украине, как таковое. Перечитайте статью повнимательнее и поймете, почему статьи типа

як стати сінйором в 20?

не будет.

И сейчас мой уровень английского языка — C1

Ты крут, получить уровень Pre-advanced просматривая сериалы))
PS Ты хоть иногда заходи в гости, не забывай друзей ;)

Привет-привет. Обязательно заскочу в гости)

Мои учителя, правда, чуть инфаркт не словили, узнав, что их отличник и олимпиадник никуда не поступает, ведь даже двоечники поступали.

И не зря. В ВУЗе, помимо корочки (которая вам уже аукнулась с приватом) самое главное — это новые социальные связи. Ну и фундаментальные знания (математика, алгоритмы и прочее).
Красивые истории как Джобс уходит с ВУЗа и ставит мир на колени это утопия. Таких случаев 1 на миллиард.

Курсы должны обучать практическому использованию навыков

Курсы НЕ НУЖНЫ! Открываете книгу по языку N (благо на Java такие есть для всех видов детей) и курите страницы, пока не вкурите.

предложили взять на себя проект и двух джунов в подчинение, создать архитектуру и начать писать приложение с нуля

Без комментариев

Спасибо за комментарий, дальше в статье я так же отметил пользу ВУЗов, и согласен с тем, что они не так уж бесполезны.
На счет курсов — сказал только для тех, кто не получал профильное образование. Часто курсы помогают быстрее обучиться практическим навыкам

Страшно и непросто сейчас входить в Джаву, она громадная и страшнючая))
я бы испугался. входил в версию 1.3, апплеты-сервлеты, гг. в 2004-м Было прикольно.

И нормальные курсы ни в коем случае не будут брать с вас процент от вашей з/п на протяжении двух лет.

Категорически несогласен!
По моему почти любые курсы которые берут предоплату — мошенники. Такие курсы не заинтересованы в результатах обучения, как минимум половина, а то и две трети учеников на таких курсах имеют мизерные шансы на трудоустройство.

Условно-бесплатные курсы (берущие процент от будущей зарплаты) — в результатах обучения заинтересованы. На таких курсах учат только тех у кого есть шансы на трудоустройство (безнадежных отсеивают).
Такие курсы назвать мошенническими не могу (хотя большинство тех кто на этих курсах учатся — вполне могут и самостоятельно обучиться).

А самые лучшие курсы — бесплатные! dou.ua/calendar или в левой колонке jobs.dou.ua/first-job

Я сталкивался и с теми курсами, которые берут процент, и слышал отзывы реальных людей, которые рассказывали, насколько эти курсы «заинтересованы». Во-первых — они далеко не «условно-бесплатные», а сдерут с тебя потом в 5, а то и в 15 раз больше курсов с предоплатой. По сравнению с теми курсами, которые прошел я — те курсы с процентом были намного хуже по качеству обучения, так ещё и бешеные деньги брали за это.
Я согласен, что бесплатные курсы — лучший вариант. Но нужно найти хорошие.
У каждого тут свой опыт, я поделился своим, и я не претендую на единственно-правильное мнение

Пішов би на курси, які беруть процент — почав би працювати на рік швидше і зп вже була б суттєво вищою. А так — молодець

Я пів року вчився вдома, потім пів року на безкоштовних курсах, які організовує IT-компанія. Весь цей час працював. Вчився тільки про вечорах і на вихідних. Через рік взяли на роботу (не на стажування, Java developer). Профільної освіти не маю, досвіду також не було. Працюю вже майже рік.
Головне не робити перерв і йти до кінця.
Згідний на рахунок задач — треба робити ті, які ще не робив.

крутий результат. вітаю.
а якісь подробиці можешь розповісти. )))
я бачу, по профілю лінкедин, ти англійську майже рік підтягував. на джава раш 37 рівень дійшов.
як вчитися було? важно не важко))

А які подробиці?)) Перших рівнів 20 на джава раш в основному була практика, потім зрозумів, що без теорії теж нікуди. Коли потрапив на навчання, то дуже круто додатково підтягнули і одне, і інше. Інколи бувало важко, інколи легко — нормальний процесс.
Тут головне наполегливість, нічого просто так не приходить. Завжди виникають моменти, коли хочеться прохалявити, десь відкласти на потім, потрібно намагатися з цим боротися.
Коли брали на роботу, англійська не була головним моментом, але без неї все одно нікуди. Тут треба комбінувати: серіали з субтитрами, книжки, технічна література, якісь спікінг клаби, якщо є гроші зайві — то знайти нормальні курси.

Сокращу до смысла: пацана взяли стажёром в Luxoft.

На данный момент, я уже давно не стажёр. В начале статьи писал, что на позиции Junior работаю. Да и на позицию стажёра со мной пробовались больше 200 человек. Из которых прошли только 10 на позицию стажера, и только 6 на Junior-разработчика.

Ой, да, ну это уже после второй стажировки, так шо не в счёт

Главное — результат. А количество попыток может зависеть от разных фаторов.

Чудова стаття, дякую! Лише додам, що важко знайти нормальні курси. Краще знайти нормального ментора.

Молодец. Я рад, что у тебя всё получилось!)

Дякую за дуже мотивуючу статтю !

Підписатись на коментарі