JavaRush/Java блог/Архив info.javarush/Наконец стал разработчиком.
bazizdeg
33 уровень

Наконец стал разработчиком.

Статья из группы Архив info.javarush
участников
Добрый день. Вряд ли моя история похожа на остальные, везде есть свои нюансы. Пишу свой рассказ, поскольку отлично помню, как сильно меня мотивировали истории трудоустройства других людей. Надеюсь и Вам, мой дорогой читатель, поможет.
  • В образовании я продвинулся довольно далеко, закончил самый большой университет Санкт-Петербурга. Правда совершенно по другой специальности: механика деформируемого твердого тела. На момент начала прохождения JavaRush учился на 3-ем курсе аспирантуры РАН (специальность - численная механика).
  • Даже и не помню, почему я решил начать заниматься именно на JavaRush. Я давно хотел всерьез заняться разработкой, но чтение "талмудов" по языкам только отбивало охоту. Надо было найти принципиально другой подход, и я опробовал первые десять уровней курса. Видимо благодаря ним я и решился на незамедлительное приобретение безлимитной подписки с участием в реальном проекте.
  • Учеба шла довольно медленно, но я не переставая двигался вперед. Прошел 31 уровень с процентом решенных задач близким к 100. На это у меня ушел ровно один год.
  • Настало время стажировки. Тестовое задание я с треском провалил. Нужно было написать небольшое web-приложение, но сделать этого я не успел, поскольку на тот момент даже не знал слов типа "Spring", "Hibernate", "Tomcat" и т.п. Ждать следующего набора на стажировку мне не хотелось, и я самостоятельно написал 5-6 web-приложений аналогичных тестовому заданию. Их довольно много в сети, есть даже пошаговые видео-мануалы.
  • Отдельным и очень важным пунктом хотелось бы выделить рассылку резюме и прохождение собеседований. В первую очередь хочу сказать, что если Вы, дорогой читатель, рассылаете меньше, чем 10-15 резюме в день, то Вы - ленивая задница. Надеюсь с этим разобрались. Также надо быть готовым к тому, что Вам придется каждый раз напоминать о себе телефонным звонком в ту фирму, куда Вы выслали резюме. Что касается собеседований - то с вероятностью, близкой к 100 процентам, вы получите какой-нибудь хардкорный тест, аналогичный тем, которыми изобилует Quizful и прочие ресурсы. Я категорически рекомендую потренироваться на таких тестах. На поиск работы у меня ушло 3 недели. За это время я прошел четыре очных собеседования и два - по скайпу. Отказов были десятки. На последнем, заочном собеседовании, меня и взяли на работу.
  • Теперь немного о работе. Я попал в довольно крупную фирму (порядка 100-120 разработчиков). Очень широкий спектр задач и разнообразных проектов (в зависимости от заказчика), начиная от frontend'а и заканчивая суровым и беспощадным backend'ом и datamining'ом. Собственно, меня сразу задействовали в etl-проектах, и я занялся загрузкой и обработкой массивов данных для целого ряда зарубежных заказчиков. Платформа и все инструменты, которые я использую, являются opensource'ными. Почти все из них написаны на Java и Groovy (если кто-то не знаком с Groovy - замечательная штука, рекомендую). Конечно, периодически приходится копаться в исходниках, ибо все это дело очень тяжеловесное, и его нужно регулярно допиливать, оптимизировать и исправлять. Работаю я около месяца. За это время мне так интенсивно "ездили по мозгам", что я проглотил объем информации, на самостоятельное усвоение которой у меня ушло бы года 2-3 по меньшей мере.
  • И последнее. Этот пункт сэкономит Вам уйму времени, когда Вы будете готовиться. За время обучения я купил несколько книг: Философия Java (Брюс Эккель), Алгоритмы: построение и анализ (Кормен, Лейзерсон, Ривест, Штайн) и еще несколько по базам данных и архитектуре компьютера. Знаете что? Забейте. Я серьезно, забейте. Я не дочитал ни одной книги до конца. Чтение книг - очень полезное занятие, но не в этом случае. Я постараюсь объяснить свою точку зрения: в данный момент Ваша цель - устроиться работать программистом. Для этого не нужны глубокие знания в программировании, на развитие которых и нацелено прочтение книг. В данный момент Вам нужен вполне определенный набор практических навыков и умений. Выковыривать их из книг - занятие крайне неблагодарное и утомительное. Гораздо лучшими помощниками в этом деле будут JavaRush или, если есть возможность - участие в каком-нибудь opensource-проекте. Что-то полезное Вам вряд ли удастся сделать, но хотя бы послушаете умные разговоры коллег по проекту - может чего-нибудь нахватаетесь. Хотя участие в проектах вовсе не обязательно. А если потребуются глубокие знания в чем-нибудь, то вы спокойно найдете их в книге и сразу же используете для своих задач. При этом нет никакой нужды глотать всю книгу целиком.
Думаю, пора закругляться. Все, кто дочитал до конца - молодцы. Желаю всем сохранять позитивный настрой и уверенно двигаться к намеченным целям.
UPDATE (18.08.2017): По поводу последнего пункта я несколько изменил свое мнение. Правда не на противоположное, а на немного другое. Суть такова: на этапе подготовки к первому месту работы зарываться в книги категорически не нужно. Однако спустя некоторое время, уже после того как я поработал какое-то время, книги стали хорошими помощниками. И я естественным образом, постепенно проглотил почти все книги, которые купил, и даже парочку сверху. Это получилось само собой. К тому же это не потребовало таких уж больших усилий, поскольку опыта работы стало больше, и материал книг уже не показался таким сложным. На данный момент список такой: 1) Брюс Эккель "Философия Java" 2) Джошуа Блох "Effective Java" 3) Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. "Алгоритмы: построение и анализ" 4) Э. Таненбаум, Т. Остин, "Архитектура компьютера" 5) Хренова туча самых разнообразных статей, большинство - зарубежных авторов. Да и вообще, возьмите за привычку каждый день читать хотябы 2-3 статьи перед сном. Сгодится любая IT-тематика, даже не сильно связанная с разработкой. Не будьте круглым конем в вакууме, расширяйте кругозорчик. 6) Ну и конечно кучу всякой документации, в основном той, которая нужна для работы. С уважением Сергей Алещенко

Продолжение
Комментарии (33)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
bazizdeg
Уровень 33
14 марта 2017, 12:30
UPDATE1!
Написал продолжение истории в другом топике: Наконец стал разработчиком [volume 2] спустя девять месяцев работы.
bazizdeg
Уровень 33
27 мая 2016, 00:57
UPDATE!
Испытатательный период успешно пройден за два месяца (предполагалось, что продлится три). За это время я был задействован в двух проектах: ETL (пилю платформу transmart для Johnson & Johnson), и машинное обучение (пишу приложение распознавания объектов на изображениях и на видео).

P.S. Спасибо JavaRush за знания и умения, а также за уверенность в своих силах.
Docktor91
Уровень 40
27 мая 2016, 01:42
красава!)
Pegas
Уровень 34
5 апреля 2016, 13:46
Немного не по теме: а у кого опыт работы во фрилансе есть? Пусть много не заработаешь, но получишь реальный опыт. А это уже бесценно. А потом в хорошую компанию проще устроиться.
Byshevsky
Уровень 16
5 апреля 2016, 13:47
на джаву нет фриланса. учи пэхэпэ
Pegas
Уровень 34
5 апреля 2016, 14:01
Только php? Еще какие?
Pegas
Уровень 34
5 апреля 2016, 14:06
А как же удаленка? Не все ведь в офисах сидят разработчики.
Pegas
Уровень 34
5 апреля 2016, 19:23
Вот здесь ссылка много java-фрилансеров, например. И это не единственный сайт. Пусть мало платят, но то реальные проекты. Почему у java нет фриланса, может я что-то не так понимаю?
bazizdeg
Уровень 33
5 апреля 2016, 21:49
Фриланс на java могут себе позволить только программисты, у которых уже есть много опыта и они долго работали в команде. Что касается начинающих, то наличие команды категорически обязательно, потому что обучение происходит лучше всего только в командной разработке. Мне так думается.
Pegas
Уровень 34
5 апреля 2016, 21:57
Команда — идеальный вариант, согласен. Но сразу все бросить и пойти в прогеры стремновато. Вдруг не прокатит или прокатит, но не сразу. Хотелось опыта на фрилансе или неоплачиваемой реальной работе попробовать.
Joysi
Уровень 41
5 апреля 2016, 22:25
Если финансовое состояние позволяет, почему бы не устроиться в менее именитые фирмы где вас и работодателя устроит соотношение небольших требований с вас при меньшей зарплате. Например, чтобы разгрузить местных программеров — делать отчеты/формы и иные рутинные вещи. А со временем потихоньку принимать участие в более серьезных вещах (ибо рутину вы научитесь выполнять в 2-3 раза быстрее). Возможно дольше по времени и не вкусно финансово. Но тем не менее.
bazizdeg
Уровень 33
9 апреля 2016, 14:01
Зачем ходить вокруг да около? Так ведь можно и до старости зависнуть на какой-нибудь «околопрограммистской» работе. Пустая трата времени. Целиться надо сразу в десятку. Есть правда одна тонкость: до важных вещей вас не допустят с первых дней работы, это очевидно. Но прицел нужно держать на них, хотя бы для того, чтобы коллеги видели ваше желание заниматься важными вещами.
Pegas
Уровень 34
27 мая 2016, 11:52
Del
Pegas
Уровень 34
27 мая 2016, 11:52
Это отличный вариант. Я бы на такой с радостью согласился, думаю как и многие. Финансовые трудности — временные трудности, а любимая работа, которую ты сможешь получить в последствии — бесценно=)
ADron
Уровень 11
4 апреля 2016, 20:35
Мне 36 лет, интересно а с таким возрастом возьмут в джуниоры? )))))
IgorBrest
Уровень 33
4 апреля 2016, 21:02
Мне тоже интересно. Нет, я то конечно еще молодой. Мне до 36 лет еще… полтора месяца. ))) Но данный вопрос тоже интересует.
bazizdeg
Уровень 33
9 апреля 2016, 14:02
Возраст не важен. Если еще остались навыки просиживания целыми днями за учебой, то вперед и с песней.
llaerto
Уровень 21
14 марта 2016, 12:06
Автора я, конечно, поздравляю, но вы опустили реально важный момент. Могли создать ложное впечатление новичкам. Одного Core мало, это однозначно! Учите фреймворки с которыми хотите работать, это важно.
bazizdeg
Уровень 33
14 марта 2016, 20:34
Отчасти это верно. Но насколько я могу судить из тех собеседований, которые проходил, если претендент знает core «на отлично» и «от зубов отскакивает», то плохое знание дополнительных фреймворков ему скорее всего простят. Быть с ними знакомым — необходимо. Но хорошее знание — не является необходимым условием для устройства на работу.
А вот если претендент плавает в core — это стопроцентный отказ.
Heavy
Уровень 30
13 марта 2016, 15:57
Честно думаю — повезло. Каждый случай трудоустройства уникальный. Думаю в большинство не просунешься только с Core. В каждом городе свои условия. Разное количество потенциальных работодателей и работников.
Вообщем ездил пару дней назад в одну из крупных компаний в Кракове для устройства на СТАЖИРОВКУ. Пообщался с коллегами, говорят у них в универах Java нету, все учат сами, в интернете и еще как нибудь. Самый трудный этап — входа, потом после стажа даже джуниоров расхватывают очень быстро (для Кракова наверно имелось ввиду).
Далее — желающих попасть на ЭТУ стажировку было около 80 человек. Мест — около 14. И это не самое интересное.
Вопросы: Все вопросы написаны на английском. Из теста запомнились следующие: Что то про бинарный алгоритм(элементы массива в бинарном алгоритме а.Отсортированы, б.Не повторяются… на тот момент вообще не знал что за алгоритм), перевод из других языков (наверно код из Паскаля) какой будет результат после выполнения, not A or not B = а.not (A or B) б.A & B ..., еще куча разных, которых даже не знал, и не встречал, плюс к этому — читаешь материал на русском, а потом даже не узнаешь bubble sort или что нибудь подобное.
Ну и напоследок написать код. Можно гуглить. Мне попались все задачи по JUnit и assertEquals(). Все время хотел начать работу с JUnit, и пришлось этим начать заниматься прямо на тесте)))))
Еще хотелось бы про книги написать. Я тоже думаю что книги — это не то что надо. Я раза 3 начинал читать Экеля. Так ни разу и не дочитал. Получается пересекается с другими источниками, материал изучил, книгу не дочитал ну и т.п. Во время работы не думаю что будет время сидеть и читать книгу, а заказчик будет ждать пока вы изучите этот вопрос и напишете ему свой говнокод ну или несовсемговнокод. Сейчас начал читать Спринг в действии, т.к. не мог разобраться как там и что работает. Бывает материал который схватываешь на лету, а бывает что нифига не понятно (тогда читаешь книгу). Для этого и пишут книги которые можн
bazizdeg
Уровень 33
13 марта 2016, 16:52
Из-за высокого конкурса работодатели совсем обнаглели. С junior'ов спрашивают на уровне senior'ов. Наверно все зависит от города.
Должен сказать, что я много опустил в своем рассказе, полагая что это очевидно. Я довольно долго сидел на Linux и много работал с PostgreSQL и Oracle DB на нем. Как ни странно, навыки работы с терминалом и базами данных через терминал — очень пригодились мне в работе. Все хранилища разумеется работают на Linux, и ни о каком GUI там речи нет. Также работал с git, JPofiler, какими-то библиотеками для web-разработки и еще кучей всяких тулов.
Inspiron
Уровень 32
13 марта 2016, 21:04
нехило ты так опустил )) а сколько примерно времени нужно чтобы быстро освоить эти дополнительные навыки?
Adelaida
Уровень 34
14 марта 2016, 10:17
повезло — это когда сидишь сидишь и тут бац — позвонили с компании и пригласили на работу.
а когда рвешь задницу — то это логичное следствие
Heavy
Уровень 30
14 марта 2016, 11:40
Повезло — это когда ты уже родился или живешь в городе где это доступно. А если у вас в городе начинающий как я описал или все компании вместо того что б набирать народ — наоборот закрываются — тут да, не везет. Но я еще раз повторю с Core особо не всунуться… вот и автор нехило опустил и пояснил потом.
Да и запись — 10-15 резюме в день — это только для продвинутых городов (если вам повезло в нем родиться), ну или с переездом. Заспамить HRов не вариант, если в городе всего 30 контор.
bazizdeg
Уровень 33
14 марта 2016, 20:28
Чтобы овладеть этими навыками в совершенстве — не хватит и десяти жизней. Чтобы просто познакомиться (как сделал я) наверно месяц-другой. Точно уже не помню. Выписал на листочек то, что чаще всего упоминается в разделах «что нужно знать, чтобы получить должность разработчика». Получилось наверно пунктов 10, на каждый потратил по 2-3 дня.
bazizdeg
Уровень 33
14 марта 2016, 20:39
Это решается переездом =)) Я как в 17 лет уехал из родного города (очень небольшого) так больше не возвращался туда.
К тому же в моей команде несколько человек работают из других городов. Как минимум двое из Самарской области, а один петербуржец, но уже 2 года в офисе не появлялся. Ставишь remote desktop, skype и вперед =)
Smetchik
Уровень 15
13 марта 2016, 13:41
Слегка не соглашусь про книги, книги нужно читать, но не все сразу, а только вводные разделы, синтаксис как это запустить и прочее. Просто остальное нужно смотреть в контексте и вот тут JavaRush и помогает читать все приминительно к практике. Да и вы лукавите, так как вы сами посебе уже по роду образования владели материалом около программисткого толка, при этом вам реально повезло с работой, вас взяла компания на работу которая увидела в Вас потенциал, поэтому они вполне удовлетворились вашим уровнем знаний, так как были готовы поездить вам по мозгу и учить Вас. К большому сожелению на рынке таких компаний не так много и количество отказов вам об этом свидетельствкет. Но это мое личное мнение.
bazizdeg
Уровень 33
13 марта 2016, 15:32
Совсем не читать книги — это другая крайность. Это также плохо, как слишком надолго зарываться в них. Конечно, когда на JavaRush шла определенная тема и, скажем, в дополнительных материалах была ссылка на Философию java, то я пробегался по главе «по диагонали», затратив в общей сложности минут 20-30.

Что касается моего образования, то я иногда писал код. Но это была не java, а APDL (похож на Fortran 77). Насколько это можно назвать разработкой — сказать не берусь. Исключительно низкоуровневый код.

А на счет «повезло с работой» — это заблуждение. Я три недели с утра до вечера рассылал резюме, постоянно правил его, прочитал кучу форумов на тему «как составить резюме, если нет опыта работы», готовился к собеседованиям и т.д. Никакого везения здесь нет =))
32xlevel
Уровень 37
13 марта 2016, 09:29
Вы молодец =). Я же сижу на 10 уровне и «домашние» и бонусные задачи просто сносят на повал, из-за чего, порой, удручаюсь :C
Smetchik
Уровень 15
13 марта 2016, 13:46
Выше нос, почитайте побольше об ООП, Философию Java, прочтите книгу Смолтолк. Язык и его реализации. Есть переведенная книга, там вообще все на русском, про ООП становится гораздо понятние так как Java взяла очень много из Smalltalk.
bazizdeg
Уровень 33
17 марта 2016, 02:00
Так и есть, бонусные задачи ох как много крови выпили. До бросков клавиатурой в стену дело не дошло, но задачи решались исключительно с изобилием «непечатных слов и выражений». Могу помочь только тем, что скажу: некоторые задачи я решал неделями, а еще они мне иногда снились.
Bezlikii
Уровень 8
12 марта 2016, 20:55
Круто! Мотивирует! Такой вопрос, ты устраивался со знаниями только core? или те фреймворки, которые ты перечислил, ты уже знал на достаточно хорошем уровне? И как с фронтендом и английским? Его сильно требовали?
bazizdeg
Уровень 33
13 марта 2016, 00:43
Спасибо.
Я устраивался почти что только со знанием java core (при подготовке я делал упор на него). С фреймворками я познакомился самую малость, ни о каком хорошем владении речи не было. Почти на все вопросы на собеседовании, которые касались Spring и Hibernate я не ответил. Однако все написанные мной 5-6 приложений я закоммитил на github и вставил в резюме ссылки на репозитории.

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