JavaRush /Java блог /Архив info.javarush /Java Middle за 2.5 месяца.
novago219
34 уровень

Java Middle за 2.5 месяца.

Статья из группы Архив info.javarush
Приветствую всех читателей, подумавших, что за 2.5 месяца с нуля действительно можно стать Middle. Поспешу Вас огорчить - это возможно только при очень усердной работе над собой, а я знаю, как всем хочется всего и сразу причем - прямо сейчас и никак иначе. Да и фраза с нуля ко мне применима только в некоем условном статусе, ведь Java, как язык программирования, у меня действительно был абсолютно нулевой. Но кое-что я все-таки уже знал и умел еще до знакомства с JavaRush и пожалуй мне бы хотелось начать свой рассказ именно с этого, потому что мой карьерный рост - довольно странное сочетание знаний, умений и удачи в некотором роде. Итак, позвольте мне привести список, который создал для меня конкурентное преимущество перед другими, а также позволил пройти JavaRush (до 34 уровня) довольно быстро и без особых сложностей (по крайней мере они меня не удивляли). Список состоит из знаний, которым меня наделил университет, а также тем, что мне самому было интересно. Не буду разделять, где что лежит и называть университет тоже не буду. При желании стоит освоить все эти знания самостоятельно, если в Вашем университете их не дают.
  1. Алгоритмы и структуры данных: мой путь в этом направлении начался с изучения принципов построения алгоритмов, чтения классических книг (Кнут) и изучения языка программирования Pascal, а продолжился он языком C, реализацией всех структур данных и разбором преимуществ и недостатков каждого из них. Не буду говорить, что ко всему прочему я умею работать с Машиной Тьюринга и Алгоритмами Маркова, точнее я уже это сказал, но Вы можете пропустить это мимо ушей, хотя, на мой взгляд, понятие о бесконечной ленте памяти и движении указателя по нему, дает наиболее правильное представление о том, как же все-таки работает компьютер изнутри, но это только мое скромное мнение.
  2. Архитектура компьютера и Assembler: когда Вы решите, что полностью разобрались с принципом работы компьютера, попробуйте пописать программы на очень низком уровне (иначе как Вы оцените все прелести Java?), причем лично я рассматривал все учебные варианты с одним, двумя, тремя регистрами и понял, как приходится изворачиваться, когда регистр всего один, а программа работает (удивительно, правда?).
  3. Дискретная математика: естественно, параллельно вышеперечисленному стоит еще и взяться за этот предмет, так как он дает полное представление о логическом мышлении, а теория конечных автоматов расскажет Вам, как устроены внутренности процессора и как они организованы в интегральных схемах. Не будем забывать, что здесь также изучается Теория Графов, которая 100% лишней не будет.
  4. Высшая математика: решил выделить все остальные математические предметы в один пункт, чтобы не слишком забивать Вам голову. Здесь лежат: математический анализ, теория вероятностей и статистика, линейная алгебра - кстати, очень очень важная вещь, если Вы хотите заниматься трехмерной графикой (знаю, у всех мечта - писать игры, правда Вам для этого придется еще и пройти курс дифференциальных уравнений и численных методов, но это так - мелочи), ну и другие области.
  5. Архитектура ОС. Linux: после того, как освоитесь здесь - многопоточность в Java вызовет гораздо меньше вопросов, да и окажется, что сказку про философов Вы уже где-то слышали.
  6. ООП, язык C++: ну вот, почти добрались до вершины пищевой цепи. Не буду разъяснять здесь в подробностях и не буду говорить, почему реализацию ООП именно на C++ смотреть гораздо интереснее.
  7. Дополнительно: еще пара мелочей, которую я уже знал, были: компьютерная графика (OpenGL, Unity 3D) и C# (Core).
Причем тут JavaRush?
Ну вот, вместе со всем этим барахлом знаний, еще в сентябре прошлого года я наткнулся на JavaRush, пролистал пару уровней и забил, так как довольно просто нашел работу после университета (не программиста, но в IT, может кто догадается, что это могло быть?). Но вскоре обнаружил, что мне это стало совсем не интересно, за пару месяцев я почти достиг потолка и понял, что развиваться здесь не имеет смысла, хотя руководство компании предлагало почти занимательные варианты (среди которых был DevOps), которые я отверг. Параллельно я занимался подготовкой школьников к олимпиадам по информатике (забыл упомянуть - мне очень нравилось спортивное программирование), ну и после ухода с основной работы ушел туда с головой. Примерно 4-5 месяцев меня все устраивало, пока и это дело мне не надоело. Вопросы повторялись, все темы были пройдены и вот тут то я и вспомнил про JavaRush. Будучи рационалистом (жадиной), я сперва от корки до корки прошел 10 начальных уровней, затем заглянул подальше (хватило уровня до 15 вроде), понял, что это довольно интересно и в свойственной мне манере - занимался этим просто в любой свободный момент. Есть лишние 5 минут? Отлично, допишу логику метода. Итого: я купил две месячные подписки. За первый месяц прошел от 10 уровня до 28, за второй неполный (примерно 15 дней) - прошел от 28 до 34 уровня. По хронологии - это был апрель-середина мая, то есть потрачено 1.5 месяца (в рублях сами посчитайте). Не буду говорить, как стоит заниматься, а как не стоит - об этом уже очень много сказано.
Трудоустройство
Где-то на 30 уровне я просмотрел вакансии в своем городе и решил не торопиться и не рассылать резюме всем подряд, но точечно выбрать желаемую компанию, подготовиться к ней и только после этого отправлять свои каракули HR-отделу. Каракули я тоже очень старательно вывел и получилось очень даже ничего. Меня довольно быстро пригласили на собеседование и я прошел его очень уверенно (по крайней мере то, что касается Java Core). Не буду расписывать, какие были вопросы. Проблемы начались, когда у меня спросили, как работает Spring, и знаю ли я вообще какие нибудь Enterprise технологии. Собственно, я сказал, что не знаю, а с таким уровнем - Junior гарантирован (выше не прыгнете), но я все же прыгнул и вот тут, наверное, начинается самая интересная часть. В общем, когда мне объяснили условия (2 месяца - испытательный срок, позиция - Junior и вилка зарплат), я понял, что мне они не очень нравятся, но сказал, что согласен, и спросил, могу ли я приступить к работе позже, мотивировав тем, что мне необходимо было закончить дела на текущей работе, прежде чем приходить в новую компанию. Таким образом, я выбил себе почти месяц для подготовки. На собеседовании я был в начале мая, а приступал к работе 23 числа. Естественно, я еще раз изучил требования, узнал, какие используются технологии (Java EE 6) и готовился к работе.
Middle или не Middle?
Ну что же, я начал работу и обнаружил, что они набрали около 5 Junior-ов, среди которых, я конечно выделялся, но не сильно. Первым делом, я познакомился с непосредственным руководителем, подметил, что он курит и начал выходить курить вместе с ним (а так вообще я не курю). Также с нами ходил еще один программист, о нем расскажу чуть позже. В общем, за курением (3-4 раза за рабочий день) я общался с руководителем, более подробно рассказывал о своих успехах, невзначай упоминал свои знания (должны же были они пригодится) и вообще - входил в доверие, как только мог. Шашлык с пивом в конце первой неделе позволил установить более лучшие отношения, который я организовал. В офисе я оставался работать до 11 вечера (рабочий день до 18:30), пока меня не выгонял охранник. Со мной в офисе иногда оставались генеральный директор компании и CTO, с которыми я тоже общался, мы вместе ужинали и вместе выходили из офиса (мне CTO даже предлагал подвезти до дома, но я вежливо отказывался). Таким образом, я во-первых - установил хорошие отношения с непосредственным руководителем, во-вторых - показал высшему руководству, что я доделаю задачу, а только потом пойду домой. Естественно, все это еще не делает меня Middle. Так что же сделало? Напоминаю, что я не знал до собеседования ни одного фреймворка (кроме JUnit). Вот тут, как раз стоит вернуться к программисту, которого я упомянул выше. Это был очень мощный программист с 20-летним опытом, который проработал 5 лет в Москве, около 7 лет в Америке (в качестве главного архитектора проектов) и много где еще, включая правительственные проекты особой важности (все это я узнал, пока курил вместе с ним). Так вот, этому программисту дали очень серьезную задачу и он решил взять меня в помощники. После того, как ему дали эту задачу, оказалось, что ему нужно очень срочно уезжать из страны и работать он не сможет. Он написал каркас приложения и оставил меня за главного, сказав, что будет следить издалека. Именно этот момент помог мне стать Middle и закончить испытательный срок не за 2 месяца, а за один и претендовать на более серьезную зарплату. Потому что следить издалека у этого программиста не получалось и проект полностью остался на мне. За месяц я успешно его завершил, за что и получил свою должность и возможность претендовать на более высокую зарплату.
В чем мораль?
Вы можете сказать, что мне повезло учиться там, где дали все эти знания (но заметьте, я использовал их просто для упоминания перед начальством), что обстоятельства сложились так, что выпал такой проект на мои плечи, да и причем здесь, казалось бы JavaRush? Еще раз напомню, до JavaRush уровень владений Java у меня был 0 - это раз. Во-вторых, когда решаешь задачи с 52 попытки, что-нибудь да запоминается - у меня была набита рука на исключениях, проверках и прочем, что тоже было конкурентным преимуществом перед другими, да и в целом - JavaCore начинаешь понимать очень основательно (что подтверждает сертификат OCA, который я сдал за счет компании и набрал 94%), а без этого дальше двигаться смысла особого не вижу. На следующей неделе меня назначают на новый проект с нуля, который я буду вести сам (включая проектирование базы данных, выбор технологий, а также - набор команды). Также, я буду вести собеседования и рассматривать прогресс Junior-ов для определения: стоит, не стоит. Хочу сказать, что в этих вопросах мне помогли не только фактические знания, но и умение налаживать общение с командой, хорошо показывать себя перед руководством, умение произвести впечатление и доказательство того, что я все доведу до конца. Спасибо за внимание, желаю всем побольше упорства и внимания к деталям.
Комментарии (38)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
realcorwin Уровень 14
11 марта 2017
Притча про суп из топора на новый лад.
Mobila Уровень 17
11 марта 2017
Если это правда, то считаю, что парень молодчик! Расчетливый, конечно, и целеустремленный, немного заносчивый, но при этом готов пахать, но больше всего меня удивило, что парень-то не смотря на критику держится молодцом и достаточно вежливо отвечает на неприятные вопросы… за это еще раз молодец!
neogeowild Уровень 33
18 октября 2016
Мда… С самолюбованием проблем нет. В очередной раз убеждаюсь, что скромность украшает.
AlexandrRS Уровень 41
12 сентября 2016
Вы сделали мой день! :-)
CynepHy6 Уровень 34
5 августа 2016
Стеб или вранье
Smetchik Уровень 15
22 июля 2016
1. Кнут вы весь осилили, все тома изданные у нас или читали в оригинале? Каждый том Кнута это не 200-300 страниц.
2. Очень интересно рассматривать работу ЭВМ с одним регистром(кстати покажите как вы изворачиваетесь с одним регистром на примере операции сложения двух чисел, можете написать пример на псевдоАСМе условного процессора, да стека нет), с академической точки зрения, с практической точки зрения начинающего программиста прикладника, да еще на Java, абсолютно бесполезная вещь.
пп 3,4 и учитывая дальнейшие пункты, за 6 лет обучения вы либо осваиваете на хорошем уровне их, либо имеете очень поверхностное представление.
6. Чем же интереснее смотреть реализацию ООП С++ например по сравнению с Java?
JGosling Уровень 11
19 июля 2016
напомнило сказку про проголодавшегося мужика: купил полбулки съел — не наелся, еще купил съел — не наелся, купил бублик и сразу наелся.
«ЭЭЭх дурень, что ж я сразу бублик не купил»
мне б такого «снуля» чтоб за месяц с 10 по 28 уровень пройти )
Ну а так, мои искренние поздравления, и не забывайте отдыхать чтоб не перегореть
LenaR Уровень 16
19 июля 2016
Спасибо за пост, меня такие истории вдохновляют)) Когда начинала учить Java — думала 2 месяца и готово, ну… не совсем так, понимаю, что надо прочитать книжку не 1 и не 2, просмотреть сотни часов лекций, решить кучу задач и после этого всё равно это будет только самое самое начало, но если это реально нравится и реально прет, то в принципе всё не так страшно) А насчет начальства и удачного стечения обстоятельств — я думаю Вам в любом случае бы что то такое подвернулось (может просто на пару месяце подольше), если есть готовность учиться и достойный уровень знаний для проекта, то этот проект довольно быстро находит нужного человека) Радует такой грамотный, рациональный и четкий подход к поиску работы и тд!
TaInT Уровень 27
19 июля 2016
Оказывается и в IT сфере жопу лизать-дело приоритетное…
А уж начал верить что тут таких не встречу…
Naissur Уровень 40
19 июля 2016
Мораль истории в том, что нужно ходить курить с начальством, ездить с ним же на шашлыки, и работать по 12,5 часов в сутки.