Мой путь Java программиста

Я более 8 лет занимаюсь профессиональной Java разработкой. На данный момент я возглавляю исследовательский отдел в крупной Европейской компании в качестве Ведущего Java Архитектора.

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

Помню молодого себя, только получившего диплом о высшем образовании. За годы обучения я так и не научился программировать ни на C++ ни на Java. Нас заранее учили по устаревшим учебникам и книгам, мы прыгали с одного языка программирования на другой.

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

После очередного проваленного собеседования на должность Junior Java разработчика, я встретил своего старого знакомого. Тогда он как раз поделился со мной радостью, что получил оффер от Американской компании и собирает документы на релокацию.

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

Так я начал читать книги и прочую литературу по Java программированию. Но чем больше я читал, тем больше вопросов у меня появлялось, непонятных терминов и аббревиатур, а потом голова шла кругом ). Ведь большинство книг для начинающих написаны так, как будто читатель должен быть профессором или обладать 10-ти летним опытом работы в программировании.

Я перечитал с десяток различных книг и статей, доходил до определенной главы и понимал, что ничего не знаю и забрасывал обучение. Учиться я мог по 16 часов в день, пока не выгорал, затем забрасывал обучение на пару дней, накапливал мотивацию и заново продолжал обучение. Так, продолжался месяц, пока я не набрал критическое массу знаний, чтобы пройти собеседование на должность Junior Java разработчика.

Так, в чём же залог успеха?

  • Обучение по 16 часов в день, двумя спринтами по 5 дней. Очень важно иметь полноценный отдых, желательно по 2-3 дня межу спринтами.
  • Не пытайся учиться на сложных примерах и туториалах. Я наступил на все эти грабли, пытаясь создать сайты, мессенджеры, игры. Не чем хорошим, это не заканчивалась, на половине пути я понимал что ничего не знаю и в голову приходи мысли, что наверное программирование это не моё. Лучше писать очень простые программы, но на 100% понимать как они работают.
  • Не пренебрегай тем, как работает виртуальная машина Java, что такое стек, куча, типы переменных. Мне казались эти вещи не важными, ведь я учусь программировать, а не теорией заниматься. Каково же было мое удивление, когда на собеседовании я полностью завалился на теории, даже не приступив к программированию.
  • Последовательное изучение материала, очень важно. Перед тем как переходить на следующую лекцию, будь на 100% уверен, что ты полностью понял текущую.
  • Не бойся отказов на собеседованиях, я завалил около 8 собеседований, прежде чем найти работу. После каждого проваленного собеседования, я становился только уверенней, выписывая на листочек все вопросы на которых я завалился.
0
47 комментариев
Написать комментарий...
greg chudnoff
 Обучение по 16 часов в день, двумя спринтами по 5 дней. Очень важно иметь полноценный отдых

1) Мне одному кажется, что здесь явная логическая нестыковка?
2) У всех джавистов такая упоротая логика?

Ответить
Развернуть ветку
Alexey Pomogaev

По моему это фантазии копирайтеров джавабрейнс, а не реальная история.

Ответить
Развернуть ветку
Андрей Деревянко

На обучение был потрачен месяц, неясно зачем его на спринты надо было делить)
Так то ничего такого нет, чтобы месяц позаниматься зубрежкой, обычная сессия

Ответить
Развернуть ветку
javabrains.ru
Автор

Очень тяжело, как физически так и морально долгое время сидеть по 16 часов в день, изучая java core. А когда ты заранее знаешь, что твое обучение ограничено спринтом в 5 дней, как то легче и стараешься максимально выложиться в это спринт.

Ответить
Развернуть ветку
Андрей Нивинский

Поделюсь моим опытом изучения Java. 
Я занимался с августа по декабрь 2019 года. Я работал с 9 до 18, работал в Москве, жил в МО, чтоб успеть на работу к 9 утра, мне приходилось вставать в 6 утра, а домой я заходил в 20:34. Получается, что домой я приезжал чисто поспать. Я вставал в 5 утра, и занимался 1 час, потом собирался на работу, бывало, занимался в электричке еще час, но внимание было рассеяным, т.к. обстановка в толкучке была некомфортной. Так же, если я не занимался утром, я не ложился до 23 часов вечера/ночи, занимался. Шло немного туго, т.к. с прохождением материала обучение становилось более сложным, и хронический недосып так же давал о себе знать на усваиваемости материалов. Потом случился новый 2020 год, я сделал перерыв на 2 недели. И после перерыва я не смог продолжить, потому что я не смог выполнить ни одну задачу, я просто напросто за эти 2 недели все забыл. В голове была четкое понимание "я же это делал 2 недели назад, я же знаю как это!", но пальцы уже не могли написать рабочий код. В итоге, поняв, что я не могу сейчас нормально учиться, и нынешняя работа по доходу меня устраивает, я забросил обучение... Вчера, я опять вернулся к мысли, что нужно осваивать программирование. Времени свободного у меня сейчас стало значительно больше.

Ответить
Развернуть ветку
javabrains.ru
Автор

2 - 3 часа в день тоже неплохо, но ни в коем случае нельзя останавливаться или сбавлять темп. По себе заметил, как только даешь небольшую слабину, вся мотивация пропадает и очень тяжело заставить себя что-то делать. Даже сейчас, я не могу позволить себе, не учится, иначе просто устарею, как по знаниям так и по технологиям. Бывает приходишь часов в 7 после работы, включаешь
компьютер и продолжаешь изучать что-то новое, параллельно кушая (благо супруга понимает и не мешает мне), итак может продолжатся до часу — двух ночи.

Ответить
Развернуть ветку
В А

Так ты никогда не научишься. Все что ты делаешь - это просто играешься и это тебе уже надоело

Ответить
Развернуть ветку
Ученик Властелина

По 16 часов в день конечно хорошо учится, правда если не работаешь) Когда работаешь на основной работе (которая не связанна с программированием) , то максимум 3-4 часа получается (

Ответить
Развернуть ветку
Андрей Деревянко

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Дмитрий Соколов

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

Как закономерное следствие — через несколько лет обязательно будет статья «как я сильно выгорел в IT», где тот же автор будет плакаться, какой он крутой, но всё равно совершенно не может выносить творящийся в отрасли ужасный ужас.

Ответить
Развернуть ветку
Илитный Иксперт
За годы обучения я так и не научился программировать ни на C++ ни на Java
Обучение по 16 часов в день, двумя спринтами по 5 дней

Назвал бы эту статью исповедью неудачника, если бы она не была тупой рекламой курсов

Ответить
Развернуть ветку
Екатерина Попова

ну а вдруг кто-то поверит в себя и купит курсы

Ответить
Развернуть ветку
Алексей Бобр

Чота все эти кейсы про "стопиццот часов в пет-проектах, а потом я -программист" есть бредятина первостатейная. После самоудовлетворения со своими импотентными стартапами не стать программистом. Можно изучить какие-то практики, да, но в энтерпрайзе тебе не дадут ничего кроме джунских задач под присмотром. Можно получить понятие о командной разработке участвуя в опенсорсе, да, но никак не стать разработчиком. 
Единственная верная тема для входа вайти - попасть во внутреннюю Гуглу какого-либо интегратора. Там и поднатаскают в практиках современного энтерпрайза, и дадут первое место в команде крупного заказчика = допустят до живого кода. Да, скорее всего придется отдать интегратору 1.5-2 года, работая за еду, но начинающий дев получает билет в самостоятельную жизнь в виде практических знаний и боевого опыта.

Ответить
Развернуть ветку
Григорий

Согласен. Через интегратора проще всего устроиться джуном. Многие ещё устраивают свои курсы, где подтягивают потенциальных кандидатов и оценивают их навыки на дистанции. Сам так начинал, и это было проще простого, если есть хотя бы базовые знания в области, потому что больше половины твоих конкурентов за место там - овощи какие-то, которые даже не удосуживаются домашку сделать. И не надо платить не за какие вшивые курсы: тебе сами все покажут и первую работу дадут при должном усердии. А уже потом, отработав хотя бы год, все двери открыты. 

Ответить
Развернуть ветку
Алексей Бобр

Не удосужился перепроверить текст после набора. Речь у меня шла про внутренние школы интеграторов. Я так же прошёл одну такую, но повезло, что наш поток не подписывал кабальное соглашение об отработке. И, через пару месяцев на проекте Сбера от этого интегратора я свалил в нормальную компанию.
PS Откуда у автозамены вылезла "Гугла" - я не знаю))

Ответить
Развернуть ветку
Artem Zabrodskii

А что за кабальные соглашения?

Ответить
Развернуть ветку
Алексей Бобр

Об обязательной отработке n месяцев на позиции, куда они тебя посадят, с зп, которую они тебе дадут, либо компенсации их затрат на обучение курсанта в размере 600 тысяч. Могут и 1 600 000 написать.
С нашим потоком интегратор поступил не очень честно - при наборе обещали одно, в итоге - другое. Поэтому многие решили, что и со своей стороны можно не быть хорошим и не работать на дядю за еду.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Алексей Бобр

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Алексей Бобр

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

Ответить
Развернуть ветку
Елена Ковальчук

Это не Java Mentor? 

Ответить
Развернуть ветку
Алексей Бобр

Что? Не знаю что такое Java Mentor. В посте же написано, что речь про внутренние школы интеграторов, читайте внимательнее.

Ответить
Развернуть ветку
Roma Pokrovskiy

Можете по подробнее рассказать как устроится через интегратора? Я в этой теме новичок.

Ответить
Развернуть ветку
Agent Ingress

А подскажите примеры внутренних интеграторов а то что то не гуглится

Ответить
Развернуть ветку
Алексей Бобр

Иннотех у ВТБ, рт-лабс у РТК из тех что я вспомнил на вскидку.

Ответить
Развернуть ветку
Alex

Ну да. Всё просто и банально. Долбать долбать долбать долбать долбать

Все уже устали и спят. А ты долбать долбать долбать долбать долбать

Блять во настырный! Долбать долбать долбать долбать долбать

Это любой язык программирования так. Плюс конечно интерес адовый и горящие глаза. Или горящий анал (нет денег, занищебродил, экстренная смена работы).

Я по второму пути прошел)). после универа. Зарплата инженера в моих ебенях была 3 тыщи рублей после дефолта 1998

Ответить
Развернуть ветку
greg chudnoff

Не, фиговый кейс. Лучше потратить месяц по 5 часов в день, чем неделю по 16 часов. В небольших дозах гораздо лучше усваивается. Есть время на эксперименты. Есть время на ошибки. Есть время на усвоение материала, а не на тупо зазубривание материала.

Ответить
Развернуть ветку
Bulat Ziganshin

у меня была тыща или полторы - и до дефолта и после. ещё и задерживали. 3 тыщи - это в казани было

Ответить
Развернуть ветку
Alex

да. и задерживали))

Ответить
Развернуть ветку
Витя Николаев

Я бы "языки программирования" поменял бы на "среды, где запускается программа и стандартные библиотеки". Когда я был школьником от состояния "пишу маленькие тулзы для себя и решаю задачки на олимпиадках на делфи/вижуал бейсике" к "то же самое, только на си с плюсиками" за ночь зубрения синтаксиса/операторов/стл перешёл (и выдохнул , ибо синтаксис паскаля мне совсем не нравится, а с вб расстался просто чтоб освободить место на харде). Я это к тому, что надо "уметь программировать", а не "уметь программировать на каком-то конкретном языке"

Ответить
Развернуть ветку
Николай Кузнецов

Картинка для привлечения внимания - огонь)

Ответить
Развернуть ветку
Финансист в Китае

Я вас поздравляю, такие как вы-герои, ведь самое сложное-это победить себя. Больше-то нам никто не мешает в жизни))

Ответить
Развернуть ветку
Max B

Я считаю, что главное в этом деле - искренний интерес. Причем интерес именно к программированию, а не к статусу и не к "войти-вайти". Если он есть, то выбор любой методики изучения не будет фатально ошибочным. Откровенно плохую вы смените на ходу, не лучшая просто сделает этот путь чуть длиннее, чем он мог бы быть. К тому же "лучшие" у всех разные. Но если интерес отсутствует или быстро заглох, то не надо мучаться.
И еще на мой взгляд важный момент. На начальном этапе обучения надо исключить среды разработки. То есть для Java это редактор с подсветкой синтаксиса и запуск в терминале javac Abc.java && java Abc (начиная с Java 11, можно сразу java Abc.java, но только если программа в одном файле). Как только придет уверенное понимание как Java-программы собираются и выполняются, можно переходить к IDE. И еще, весь код на начальной стадии нужно набирать своими руками. Никакой копипасты!

Ответить
Развернуть ветку
Алексей Бобр

Что за фигня про "без IDE"? Как программа собирается и выполняется достаточно понять один раз и забить на это. А вручную собирать мало-мальски приличный проект, вручную прописывать зависимости, а потом искать опечатки, когда строки валится - это мазохизм. Меня так один ментор посадил JLS читать, когда я решил в программисты вернуться и за джаву взялся.

Ответить
Развернуть ветку
Григорий

И параллельно ещё лишать себя опыта работы с системами сборки. Ну и плюс хоткеи в иде очень сильно помогают и делают работу более продуктивной. Изучение среды - это тоже важный процесс обучения. Один раз поюзал javac и хватит.

Ответить
Развернуть ветку
Алексей Бобр

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

Ответить
Развернуть ветку
M J

 Свои проекты надо делать параллельно.  Тогда быстрее дело пойдет и интереснее будет!

Ответить
Развернуть ветку
greg chudnoff

Свои проекты надо делать перпендикулярно. Поверь.

Ответить
Развернуть ветку
M J

Возможно даже по диагонали.  

Ответить
Развернуть ветку
Алексей Бобр

Я бы предложил проект Мёбиуса..

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Александр Бычковский

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

Ответить
Развернуть ветку
Benz.inn

Вы часы таймтрекером считали?

Ответить
Развернуть ветку
Александр Бычковский

Да, вот этим

Ответить
Развернуть ветку
Max bax

Все очень индивидуально и у каждого человека свой рецепт успеха

Ответить
Развернуть ветку
Nick Verdi

Все просто. Надо читать толковые книги и программировать. Если что-то непонятно, читать еще раз. Писать код надо с полным пониманием для чего так делается. Java совсем не сложный ЯП. И C++ просто... 

Ответить
Развернуть ветку
44 комментария
Раскрывать всегда