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-ов для определения: стоит, не стоит. Хочу сказать, что в этих вопросах мне помогли не только фактические знания, но и умение налаживать общение с командой, хорошо показывать себя перед руководством, умение произвести впечатление и доказательство того, что я все доведу до конца. Спасибо за внимание, желаю всем побольше упорства и внимания к деталям.
Комментарии (31)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
realcorwin
Уровень 14
11 марта 2017, 18:49
Притча про суп из топора на новый лад.
AlexandrRS
Уровень 41
12 сентября 2016, 22:55
Вы сделали мой день! :-)
CynepHy6
Уровень 34
5 августа 2016, 23:33
Стеб или вранье
Smetchik
Уровень 15
22 июля 2016, 16:50
1. Кнут вы весь осилили, все тома изданные у нас или читали в оригинале? Каждый том Кнута это не 200-300 страниц.
2. Очень интересно рассматривать работу ЭВМ с одним регистром(кстати покажите как вы изворачиваетесь с одним регистром на примере операции сложения двух чисел, можете написать пример на псевдоАСМе условного процессора, да стека нет), с академической точки зрения, с практической точки зрения начинающего программиста прикладника, да еще на Java, абсолютно бесполезная вещь.
пп 3,4 и учитывая дальнейшие пункты, за 6 лет обучения вы либо осваиваете на хорошем уровне их, либо имеете очень поверхностное представление.
6. Чем же интереснее смотреть реализацию ООП С++ например по сравнению с Java?
JGosling
Уровень 11
19 июля 2016, 16:58
напомнило сказку про проголодавшегося мужика: купил полбулки съел — не наелся, еще купил съел — не наелся, купил бублик и сразу наелся.
«ЭЭЭх дурень, что ж я сразу бублик не купил»
мне б такого «снуля» чтоб за месяц с 10 по 28 уровень пройти )
Ну а так, мои искренние поздравления, и не забывайте отдыхать чтоб не перегореть
LenaR
Уровень 16
19 июля 2016, 16:52
Спасибо за пост, меня такие истории вдохновляют)) Когда начинала учить Java — думала 2 месяца и готово, ну… не совсем так, понимаю, что надо прочитать книжку не 1 и не 2, просмотреть сотни часов лекций, решить кучу задач и после этого всё равно это будет только самое самое начало, но если это реально нравится и реально прет, то в принципе всё не так страшно) А насчет начальства и удачного стечения обстоятельств — я думаю Вам в любом случае бы что то такое подвернулось (может просто на пару месяце подольше), если есть готовность учиться и достойный уровень знаний для проекта, то этот проект довольно быстро находит нужного человека) Радует такой грамотный, рациональный и четкий подход к поиску работы и тд!
TaInT
Уровень 27
19 июля 2016, 15:10
Оказывается и в IT сфере жопу лизать-дело приоритетное…
А уж начал верить что тут таких не встречу…
novago219
Уровень 34
19 июля 2016, 15:11
какой вы наивный)

а если серьезно, можно ставить и под таким углом, конечно, если б я сам не презирал заискивающих людей)

вот только ракурс был совершенно другой, впрочем, имеете право на свое мнение)
tanzwud
Уровень 34
19 июля 2016, 20:21
Да довольно похожая история есть и у меня в фирме. Человек за год с Junior прыгнул на Senior, работая c JS, парся json и изменяя цвет кнопок. А всего лишь надо с правильными людьми начать на обеде рубится в xBox и говоря на каждом собрании какой сложный компонент надо написать -).
Довольно интерестная история спс.
В IT довольно большая конкуренция, дураки есть но их мало, если себя не пиарить ничего путного не выйдет. Согласен нужно постоянно о себе напоминать, иначе выши достижения себе припишет кто нить другой и вас даже не вспомнит.
Naissur
Уровень 40
19 июля 2016, 13:57
Мораль истории в том, что нужно ходить курить с начальством, ездить с ним же на шашлыки, и работать по 12,5 часов в сутки.
novago219
Уровень 34
19 июля 2016, 14:48
именно так!)
Naissur
Уровень 40
19 июля 2016, 18:41
Тогда бросаю учить язык и фреймворки, закупаю книжки по прикладной психологии и начинаю изучать, как добиться расположения к себе :)
ArtTheft
Уровень 9
19 июля 2016, 12:39
Прям фантастика… После вот таких рассказов, появляются истории про ТЛ в 23 года.
Вы можете сказать, что мне повезло учиться там, где дали все эти знания (но заметьте, я использовал их просто для упоминания перед начальством),
Ну да спортивное программирование и тот список знаний, что выше описал ТС это же фигня полнейшая и простейшая, как сэмки с пацанами пощелкать и выпить пивка…

Ну и подлизывания к начальству, пиво там, шашлык… Ну и конечно правильно некоторые люди написали выше. В одной конторе ты Сеньор, а в другой даже на Джуна не пойдешь…
mrserfr
Уровень 33
19 июля 2016, 12:43
а потом собеседуют на джуна «мидлы\сеньоры\тл», которые знают меньше, чем джун, зато чсв овер 9000. знакомая история. автор не в обиду тебе.
novago219
Уровень 34
19 июля 2016, 15:03
так вы же не про меня, какие обиды?
читаю в день около 300 страниц релевантной литературы, помимо основной работы, так что — в плане знаний, через полгода я дам фору многим, а необходимый опыт будет набит шишками в работе над проектами. Тем более, что вся ответственность только на мне.

чсв еще не вырос до такого уровня) слишком много куда еще нужно расти, другое дело, что расту я быстрее других.
novago219
Уровень 34
19 июля 2016, 15:06
ну можно и так назвать процесс построения отношений и налаживания связей с нужными людьми. Я лишь хотел сказать, что работа программиста — весьма социальна, как бы она не претендовала на только техничность, поэтому стоит просмотреть любые возможности продвижения наверх (под любые — я не имею ввиду абсолютно любые, рамки уметь надо соблюдать).
thesn
Уровень 15
19 июля 2016, 16:01
Кстати, а статью можно переименовать «Как я стал тимлидом за 2.5 месяца в 23 года» и завирусить в интернетах. Тут автор пишет, что набирает команду и в аккурат указал возраст: 23года :) Все один к одному
Fatal
Уровень 14
19 июля 2016, 16:59
читаю в день около 300 страниц релевантной литературы, помимо основной работы,
У меня в детстве был словарик англо-русский. так вот, отличительная его особенность это размер страницы — примерно 4 х 8 см. Когда я вижу «300 страниц в день» я вижу этот словарик, только с размером шрифта 18. Когда я первый раз прочитал ваш рассказ, я тактично промолчал.Но теперь настало время угара! 300 страниц это четвертая часть Философии Джава Эккеля (и почти половина Headfirst Java), расширенного издания со всеми главами и заданиями. Чтобы читать вдумчиво, запоминать и разбирать примеры требуется минимум 3-5 минут на страницу, это если без поиска в гугле, когда возникают вопросы, и без решения задач. Т.е. вы тратите 900 минут на чтение? это 15 часов. простите. У вас в сутках сколько часов? Может больше, а я не знал что так можно! Конечно есть еще два варианта — например чтение по диагонали, от которого толку как от чтения инструкции освежителя воздуха.
так что — в плане знаний, через полгода я дам фору многим
Уверен, что Андерсон уважительно покачал бы головой, читая ваши опусы. Однако вы не дотягиваете до меня совсем. Ведь я читаю 1200 страниц в день, при этом жанглирую горящими бензопилами, дрессерую львов, работаю над созданием собственной операционной системы на основе FreeBSD, увольняю Билла Гейтса забирая себе его миллиарды, готовлю борщ и пью чаек. Но не нужно отчаиваться и завидовать моим успехам. Вам есть куда расти, это главное. Хотя конечно с датой регистрации 16 июля 2016 вы уже много достигли на JR. Даже я не могу похвастаться 34 уровнями за 3 дня. В прицнипе обладая скиллом читать по 300 страниц в день и работать. это норма. Учимся. конспектируем. внимаем.
novago219
Уровень 34
19 июля 2016, 17:00
Спасибо за направление, буду стараться)

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

И кстати, список для чтения у меня расписан на полгода вперед, а методика довольно проста — обед 1.5 часа? Читаю-разбираю книгу. Проснулся немного раньше? Стою в пробке? Ответ напрашивается сам собой. Вместо недоверия должна появляться мотивация, вместо насмешки — стремление достичь большего, вместо подсчета — думание о том, почему у него это получилось. Выводы делайте сами)
Fatal
Уровень 14
19 июля 2016, 17:16
Я понимаю что вы хотите сказать. Именно поэтому я тактично промолчал в самом начале. Мне показалось что ваш рассказа направлен на мотивацию учащихся… учиться больше. И это правильно, я это понимаю и одобряю. Но вы должны понимать так же еще одну вещь. Нереальные цифры вызывают, к ак мне кажется. два типа реакции:

1) Научный подход. Доказывается или опровергается реальность таких цифр, иногда в юморной форме, когда уж совсем.

2) Человек с другим психотипом посмотрит на это, почешит котелок и подумает — «Да-Ну-На! Видимо это не для меня.» такой человек даже не дойдет до момента, когда можно прикинуть эти цифры в голове, и понять, что что-то тут не тавота. т.е. произойдет обратная ситуация — демотивация.
novago219
Уровень 34
19 июля 2016, 17:30
Ну я писал не научную статью, а просто поделился своими мыслями. Возможно, стоило подойти более академично к написанию всего и оставить эмоции, которым свойственно приукрашивать (а вы не приукрашиваете, когда рассказываете что-то друзьям? особенно, если вас что-то очень впечатлило?).

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

Ну и естественно, мне хотелось похвастаться) но не в плане — унизить всех остальных. Впрочем, дальше расписывать не буду) в любом случае — замечания у вас ценными стали только после этих разъяснений, которых не было в изначальном комментарии, согласитесь?)
Fatal
Уровень 14
19 июля 2016, 19:44
Иногда я пишу свои мысли чистоганом, как для jvm, надеясь что хоть кто-то получит правильный байткод. В целом я итак вас правильно понял изначально (и происхождение этой статьи тоже). Просто ткнул пальцем в явный косяк, имхо. Радуют адекватные ответы
Kingpin
Уровень 31
19 июля 2016, 11:40
Чет я приуныл, после прочтения… И годы не те, и институт давно позади, и думаешь — о надо ли оно мне, наверстаю ли я так много, когда времени так мало? Впрочем, вопрос риторический.
Tigran
Уровень 30
19 июля 2016, 13:35
Так, давайте не унывать :)
Работы всем хватит, и молодым амбициозным олимпиадникам с физтехов, и так называемым «старым» товарищам, решившим переучиться вне институтов.
Вот вам картинка для успокоения:
демография россия 11-20
Это из доклада одного очень хорошего экономиста, о ситуации в России (кстати, рекомендую)

Как видите, количество молодого поколения к 2020 году упадет чуть ли не двукратно. Потребности айти к тем временам не упадут, а вырастут. Выводы? Компенсировать дефицит в отрасли «старичками» 30-40 лет, т.е. нами с вами :)
Так что давайте не вешать нос, и пойдемте уже заниматься.

ps, лично мне с автором истории работать было бы психологически неприятно — без обид.
novago219
Уровень 34
19 июля 2016, 15:08
ну бывает)
Насчет заниматься — поддержу) устраивались у нас и 30-летние, так что — все в ваших руках.
Denk
Уровень 27
19 июля 2016, 16:53
Мир тебе добрый человек за успокаивающую картинку. :)