provisota
33 уровень
Одесса

Как я стал программистом, или «Через тернии к звёздам» =)

Пост из группы Архив info.javarush.ru
2638 участников
Как я стал программистом, или «Через тернии к звёздам» =) Привет Джаварашовец!) Хочу поделиться с тобой своей историей, ибо чувствую на себе моральные обязательства перед замечательными людьми, создавшими этот ресурс, а так же перед сообществом, которое он породил. Создателей хочется хоть как – то отблагодарить, а джаварашовцев ещё пока не достигших своей заветной цели подбодрить, и подкрепить хорошей порцией мотивации) Я много раз представлял себе как я буду писать эту статью, какие буду использовать слова, и вот, наконец свершилось, и как я в принципе и ожидал все слова куда – то улетучились, так что прошу не судить строго за стиль изложения) В общем, о главном, вот уже две недели я работаю программистом, и это во многом благодаря джаварашу) Но всё по порядку, расскажу сперва немного о себе. Мне 37 лет, женат, двое детей, девочка – 6 лет, и мальчик – 3 года. =) Последние 15 лет я проработал промышленным альпинистом (высотником), работа, как вы понимаете связанная с программированием чуть меньше чем никак. Но, в общем – то работа неплохая, свежий воздух, поддерживает тебя в «форме», довольно много свободного времени, сам себе хозяин, да и по деньгам в принципе достаточно неплохо (в сезон), НО: - Имеет ярко выраженную сезонность, т.е. 3 – 4 месяца в году работы практически НЕТУ. - Перспектив НЕТУ. Проработав 15 лет на этом поприще я понял что в следующие 5 – 10 лет очень навряд ли что - то измениться, по крайней мере в лучшую сторону. - Дети стали подрастать, и денег стало всё – таки явно не хватать… - Стало надоедать)… 15 лет всё – таки очень большой срок, за который наверное любая работа начнёт надоедать… И так, годика два назад, а если быть точнее где - то в мае 2013, я поразмыслив и взвесив все за и против пришёл к выводу что пора что – то менять… а именно пришло время менять работу… Ну, долго думать на какую именно не пришлось, если уж менять, то на такую работу которая лишена недостатков предыдущей: - Работа круглый год. - Хорошие перспективы роста. - Значительно выше зарплата (если и не сразу, то в ближайшей перспективе) - Интересная работа, к которой у меня имеются склонности. Склонности к программированию у меня имелись, правда на практике это выразилось в лишь том что я ещё в школе немного писал на бейсике, ещё меньше на ассемблере (на ZX – Spectrum, он же Sinclair был когда – то такой можно сказать культовый комп, люди моего поколения должны помнить), а так же я легко мог установить / переустановить винду, дрова, ну, вообщем можно сказать «продвинутый юзер» =) Да и с английским у меня тоже всегда было неплохо, можно даже сказать что это было моим хобби… Минусы которые имели место на «высотке» имели и положительные стороны, а именно, всё свое свободное время, которого у меня имелось в избытке весной и особенно зимой (в межсезонье) я мог потратить с пользой на изучение программирования. Ну вот, значит программирование… а что именно? Программирование – понятие растяжимое, погуглил, какие языки на сегодняшний день наиболее востребованные, перспективные и высокооплачиваемые… и выбор мой пал на её величество Java =) Так как начинал можно сказать с нуля, старался найти источник знаний соответственный, первой моей книжкой по Java стала «Программирование на Java для детей, родителей, дедушек и бабушек» Якова Файна, которая подкупила меня прежде всего своим названием =) Не могу сказать, рекомендую я эту книгу начинающим, или нет, может есть книги и получше для новичков, это сейчас я уже понимаю насколько там «детский сад», но на тот момент мне было читать её интересно, и довольно понятно, и практические примеры приведённые там, которые я все тщательно проработал, дали мне необходимый минимум практических навыков для дальнейшего продвижения. Книжку дочитал, нужно двигаться дальше, решил поискать нормальные курсы, очные курсы немного дороговато для меня было, да и не было уверенности что они того стоят, и вот тут, я вспомнил что ещё когда работал над книжкой, я где – то на хабре кажется читал статейку про онлайн курсы JAVARUSH, на тот момент бесплатные =) Ну, вообщем тут пошло поехало)… после прочтения и проработки книжки первые 10 – 12 уровней я отщёлкал как семечки, было даже слишком легко, но всё – равно интересно, дальше уже стало сложнее и ещё интереснее, но я старался решать ВСЕ задания подряд, и не решив всех заданий на следующий уровень не переходить, и вот тут на джавараше ввели оплату за обучение выше 10 уровня… первые два три месяца я платил помесячно, но потом на Новый Год объявили акцию, 50% скидки, вместо 200$ можно было купить безлим за 100$, признаюсь честно, что на тот момент 100$ у меня конечно были, но лишними их никак назвать нельзя было… т.к. всю зиму я не работаю, жена тогда тоже не работала, и «каждая копейка была на счету», ибо накопленные за сезон деньги нужно было растянуть до марта – апреля, когда у меня опять начнётся работа… Но я чувствовал что эти 100$ будут может самым удачным и выгодным капиталовложением за всю мою жизнь. У меня есть родной брат, лет 10 назад он с семьей переехал на ПМЖ в Германию, у меня тоже была такая возможность, но я ей не воспользовался, т.к. люблю свой город Одессу, своих друзей, свой образ жизни, и не готов был от всего этого отказаться, а так же я верил что и здесь смогу достойно обеспечить себя и свою семью, и вообще, наверное я просто оптимист по жизни. И хоть у него там с финансами всё обстоит довольно неплохо, я старался никогда у него без крайней необходимости помощи не просить, но знал, что если всё же придется, то он мне не откажет, тем более что 100$ сумма для него смешная. Я обратился к нему, и он с радостью перевёл Зеппу на paypal 100$, за что ему конечно же большое спасибо. И я спокойно, вдумчиво, без спешки которая всегда присутствует если платишь помесячно, продолжил «грызть гранит науки» =) Проходил уровни я в той же «манере», строго последовательно, т.е. читал лекцию, и пока свежо её понимание решал задачи к ней, и к следующей лекции не переходил до тех пор пока все предыдущие задачи не были решены, за очень редким исключением. Так я добрался до 20 уровня с 3 – 5 нерешёнными задачами. При возникновении проблем с решением задач, конечно очень помогает общение на форуме, и в то же время помогая другим форумчанам ты сам прокачиваешь свои навыки! Где – то через пол – годика, ближе к концу 2013 года я решил что пора уже попытать счастья и попробовать себя на собеседовании, погуглил в нете примеры резюме, несколько примеров резюме прислали мне знакомые с джавараша, так же написал Зеппу, он мне дал несколько советов, а так же несколько шаблонов для резюме. Я написал своё резюме, отправил его на оценку Зеппу, ему понравилось. Дальше я разместил своё резюме на нескольких наиболее популярных сайтах поиска работы, затем составил себе список е-майлов HR отделов наиболее крупных IT компаний в Одессе, в которых есть вакансии Java Developer (не только джунов), получился список где – то из 20 компаний. Половину я на всякий случай отложил сразу на потом, на случай если везде облажаюсь что бы был запасной вариант, а на половину разослал своё резюме, и стал ждать приглашений на собеседования =) Не скажу что прямо засыпали меня приглашениями, но в конечном итоге за месяц – полтора я сходил на 3 – 5 собеседований, какие - то более или менее удачные, какие – то не очень, где – то меня опередили конкурирующие претенденты, так – же было два – три тестовых задания, которые я тоже выполнял с переменным успехом, а так же одно собеседование по разговорному английскому, которое я прошёл успешно, но до тех. собеседования не дошло, т.к. как меня опередил другой претендент. Так же я чуть не попал на так называемый «бенчмарк» в Luxsoft’е, прошёл тесты, собеседование, но в последний момент, когда прочитал контракт, одумался и отказался, уж больно хреновые, как мне показалось, они предлагали условия. Если вкратце, то три месяца они тебя учат, и платят стипендию 300$, по окончании обучения, если ты им понравишься они тебе предлагают работу джуном, за 500$, через 9 мес., они тебе может быть поднимут зарплату, НО главное НО, как выяснилось уже из договора, заключалось в том что с момента его подписания если ты не будешь посещать курсы например, или после курсов захочешь в течении то ли года, то ли двух, сменить место работы, то ты ОБЯЗАН будешь выплатить им компенсацию за твоё обучение в размере 2500$. Я счёл такие условия неприемлемыми, и отказался. Ещё от одной вакансии я тоже сам отказался т.к. мне показалось, что на той работе у меня не будет перспектив. Но главное что я приобрёл очень ценный опыт прохождения собеседований, и после каждого собеседования я уже гораздо лучше представлял что ждёт меня на следующем, какие приблизительно вопросы мне будут задавать, и каких будут ждать от меня ответов… ну не то что бы на всех собеседованиях задают одни и те же вопросы, но многие вопросы задают почти всегда, да и после каждого собеседования я составлял себе маленький списочек вопросов в которых я «плавал», и потом находил на них чёткие ответы. Вообщем ходить на собеседования – это действительно очень полезно, независимо от результатов… Приблизительно в это же время (осень - зима 2013 года), мне написала в личку Диана и спросила не хочу ли я поучаствовать в «Реальном проекте», я сказал что вообщем – то не против… И ещё где – то через месяцок написал уже Хьюберт с более конкретным предложением участия в уже начавшемся недели две – три назад проекте. Предложили именно мне наверное просто потому что я на тот момент был в числе лидеров по решённым задачам. Честно говоря после того как Хьюберт перечислил мне технологии используемые в нём (Spring, Hibernate, GWT, MySQL, Maven, Git) стало как – то немного стремновато, т.к. по большей части я слышал эти слова просто в первый раз, а что – то может и слышал где – то когда – то «краем» уха, но только краем уха… Ну, я так подумал что терять мне всё – равно нечего, время на участие есть, по – любому это будет полезный опыт, и согласился. Признаюсь, по началу было действительно ТЯЖЕЛО, но уже через недельку – полторы – две, я почитав книжки и статейки в нете, немного пообвыкся и вник в работу уже имеющегося кода настолько что бы саму уже что – то написать, и сделать свой первый коммит. С парнями на проекте мне ОЧЕНЬ повезло как я считаю, всего нас было четверо Тимур (), Женя (), Серёга (), и я. Курировали наш проект и . Тимур занимался по большей части бек – эндом, Женя – фронт – эндом, Серёжа – базой данных, я – немного фронт – энд, немного – бек – энд, но больше наверное всё - таки фронт – энд. Через месяца два – три мы стали первой командой, которая успешно выполнила настоящий «Реальный проект», которым сейчас пользуются все джаварашевцы – это проект «Рейтинги» =) Ну, сказать что «Реальный проект» дал мне очень многое, это ничего не сказать!) Помимо очевидной пользы (огромного количества новых ценных знаний), гораздо важнее то пришло понимание того что даже для «Джава программиста» знание исключительно только Java - это далеко не единственный необходимый навык, хотя и основополагающий. Джава – как азбука программирования, но кроме азбуки ведь ещё нужно знать правила правописания, грамматику, синтаксис, умение правильно строить предложения, иметь богатый словарный запас, ну вообщем аналогия я думаю ясна. Так же и в программировании необходимо знание и умение применять множество фреймворков, паттернов и инструментов разработки, а так же умение искать решение возникающих проблем и ответов на свои вопросы. После реального проекта я стал интересоваться более продвинутыми технологиями, и углублять свое понимание в уже известных мне… Мои интересы вышли за пределы чистой Java Core. А ещё в моем резюме появился новый, солидный пункт в графе «Опыт работы», с описанием крутых и модных технологий, которые были использованы в проекте =) Но проект закончили, и у меня по – тихоньку начался новый «трудовой сезон» по высотке… свободного времени стало гораздо меньше, и вопрос смены профессии отошёл на второй план, но всё равно почти всё свое свободное время (по вечерам после работы и по выходным) я уделял программированию, писал для себя всякие «минипроектики», иногда решал задачки на джавараш, мониторил вакансии, а в конце осени ещё записался на бесплатные курсы в IT контору DataArt. Ну, сами курсы оказались фуфловые, в основном обзорные, так по «вершкам прошлись» почти ничего полезного я там не узнал, но зато в рамках этих курсов студентам предложили разбиться на команды и написать «Проект» =) Проект заключался в написании онлайн системы тестирования, с регистрацией пользователей, пользовательской частью (прохождение опросников), и админкой (создание опросников и управление аккаунтами). Я оказался в одной из четырёх таких команд, и так уж в последствии получилось что проект я писал практически сам. =) И где – то за месяц (параллельно работая на высотке) я уже сам написал вполне сносное, как мне кажется, веб приложение основанное практически на тех же технологиях и паттернах которые мы использовали в Реальном проекте с ребятами на джавараше, ну, плюс ещё jsp, и Spring Security, и ещё кое что =) Если кому сильно интересно могу кинуть ссылку на открытый репозиторий с исходниками проекта… Так же где – то в декабре меня пригласили на собеседование из одной конторы, как потом выяснилось Киевской. Собеседование проходило по скайпу. А после этого ещё было собеседование с одним из менеджеров крупной компании - Одесского клиента этой киевской IT конторы. Мне сказали как примут решение позвонят… ну как обычно, подумал я тогда, если сразу не взяли, то надежды мало… но всё – таки где – то через месяц, уже после Нового года, я написал этой HR-менеджеру и поинтересовался на счёт моей кандидатуры, как не странно она ответила что вакансия ещё открыта и решение ещё не принято… ну, значит надежда ещё есть. И вот, ещё почти через месяц, уже где – то в конце января она позвонила мне с вопросом «ищу ли я ещё работу», на что я «непринуждённо» ответил «да, ищу пока ещё», тогда она сообщила мне что я её уже нашёл, т.к. я им подхожу!))) Ощущение конечно непередаваемое, когда тебе сообщают такое по телефону, просто крылья вырастают =) что бы это понять нужно просто это самому испытать, чего вам в ближайшем будущем и желаю) Ну, затем приехал сюда менеджер из Киева, мы с ним встретились, познакомились, я узнал поподробнее о проекте над которым мне предстоит работать. Если вкратце, то эта Киевская фирма разрабатывает для своего корпоративного клиента в Одессе крупное ERP приложение и разрабатывает уже очень давно, я так понял что в общем счёте 3 – 4 года уже =) писалось оно уже многими, но багов в нём всё ещё немерено. Кроме того, приложении очень много специфических нюансов, и постоянно требуется общение с клиентом, а постоянно командировать сюда людей из Киева сильно геморройно, да и на телефонах сутками просиживать тоже не вариант, и решили они что им требуется человек здесь, на месте, в Одессе. И вот мне предстоит это приложение допиливать. Приложение написано на GWT + ExtGWT + Spring + Hibernate + MySQL, и ещё куча вспомогательных второстепенных библиотек. Так уж получилось что это как раз тот стек технологий в которых я развивался и имею более или менее сносный опыт. Из минусов то что проект старый, и в нём использованы старые версии библиотек и устаревшие подходы проектирования, причём устаревшие на столько что обновлению уже практически не подлежат… или переписывать половину кода… так же оказалось что допиливать я буду его САМ =) это конечно немного не та работа на которую я рассчитывал, я предполагал что ко мне как к любому джуниору будет приставлен более опытный тимлид, который будет меня как – то направлять, делать ревью моего кода, и с которым я смогу в случае затруднений посоветоваться =) Но судьба распорядилась иначе… мне доверили работу рассчитанную на опытного и самостоятельного разработчика, и в этом есть как плюсы так и минусы. Ну, раз такое дело подумал я, то неплохо бы сходу и прибавку к зарплате попросить =) и поднял первоначальную цифру на 200$. Никаких возмущений с их стороны это не вызвало. Ну, конкретных цифр не буду называть, но скажу что размер зарплаты ощутимо превзошёл мои ожидания. И к тому же всего один (не три как обычно везде) месяц испытательного срока. И вот уже прошло две недели, с первого взгляда конечно страшно смотреть на такой огромный проект, но я то теперь знаю что первое впечатление зачастую обманчиво, и по началу всегда тяжело, но как говориться «горшки тоже не боги обжигают» и «вода камень точит» =) И вот по тихоньку я начал вникать в код и теперь знаю что всё получиться… Оформить официально правда они меня не захотели, сказали что бы оформлял СПД, но это, как я слышал, для программистов обычная практика. Ещё хочу заметить что работа программистом – это тоже всё – таки не курорт, это тоже прежде всего работа, на которую нужно утром вставать и под вечер с неё возвращаться, но это работа гораздо лучше чем многие другие, по ряду причин уже перечисленных выше, и интерес, и деньги, и перспективы, всё в ней есть. И особенно приятно, когда ты знаешь что смог этого добиться сам, своим умом, своим трудом, своей настойчивостью, что смог поставить перед собой серьёзную цель, и достичь её. Смог изменить свою жизнь, что всё – таки во многом ты сам хозяин своей судьбы. Единственное чего я теперь боюсь, это своей лени, что добившись этого результата я обленюсь и перестану расти в профессиональном смысле, но очень надеюсь что этого всё - таки не произойдёт =) В заключении продолжу традицию и коротко перечислю технологии которые для меня были, и остаются ключевыми в обучении и теперь уже и в работе) ОЧЕНЬ желательно, даже пожалуй НЕОБХОДИМО знание баз данных, SQL (MySQL), jdbc, Hibernate, Jpa, сетевых технологий html, jsp, servlets, xml, Tomcat, ОБЯЗАТЕЛЬНО знание основных JavaSE паттернов (так называемые GOF паттерны), так же ОГРОМНЫМ плюсом будет хоть поверхностно разбираться в Spring'е, SpringMVC, так же желательно сборщик проектов Maven, логирование log4j, юнит тестирование JUnit, работа с системами контроля версий, Git например, ещё бывает спрашивают, или дают тестовые задания по веб-сервисам (SOAP, REST)… но наряду со всем этим знание Java core должно быть если не безупречным, то по крайней мере очень уверенным. И всё равно знание всех этих технологий (пусть по большей части поверхностно) не гарантирует того что на собеседовании тебя не спросят чего — то о чём ты вообще чуть ли не в первый раз слышишь) но, тут тоже, как повезёт… может и просто по Java core погоняют и всё) Ещё раз хочу поблагодарить создателей этого замечательного ресурса, в частности Зеппа, Хьюберта и Диану! А тебе джаварашовец пожелать настойчивости и терпения на избранном тобой пути, как говорил дедушка Ленин: «Пгавильной догогой идёте товагищи!» =) и ещё не потакать собственной лени, и главное «NEVER GIVE UP» и осилит дорогу идущий! Сори за много букав)

Продолжение