JavaRush /Java блог /Random UA /Альпініст-програміст
Илья Альтерович
33 рівень
Одесса

Альпініст-програміст

Стаття з групи Random UA
Досьє
  • Хто: Ілля Альтерович
  • Ким працював: промисловий альпініст
  • Вік на момент старту навчання: 35
  • Місце проживання: Одеса, Україна
  • Перша робота програмістом: через 1 рік та 8 місяців (лютий 2015 року) – у 37 років.
  • Ким працює зараз: як і раніше програміст, змінив одну компанію =)
  • Оригінал історії
Альпініст-програміст - 1
Якщо вам уже 35 років, це ще не привід не починати навчання! Звичайно, коли в тебе за спиною роки цінного досвіду в іншій галузі це не так просто, але не безнадійно. У нас є чудовий приклад — Ілля з Одеси вирішив перекваліфікуватися з промислового альпініста на промислового програміста саме у цьому віці. І йому це вдалося. Читайте одну з найцікавіших і найґрунтовніших історій успіху на JavaRush!

Передісторія

Хочу поділитися своєю історією, бо відчуваю на собі моральні зобов'язання перед чудовими людьми, які створабо цей ресурс, і перед суспільством, яке він породив. Творців хочеться хоч якось віддячити, а «джаварашовців» , які ще не досягли своєї заповітної мети, — підбадьорити, і підкріпити гарною порцією мотивації! Суть: вже два тижні я працюю програмістом, і це багато в чому завдяки Java Rush .
Мені 37 років, одружений, двоє дітей 6 та 3 років. Останні 15 років я працював промисловим альпіністом (висотником). Робота, як знаєте, пов'язана з програмуванням трохи менше, ніж ніяк.
За великим рахунком – робота непогана, свіже повітря, змушує підтримувати себе у формі , вистачає вільного часу, сам собі господар. Та й по грошах непогано ( в сезон ). АЛЕ :
  • Має яскраво виражену сезонність. Тобто 3-4 місяці на рік роботи практично немає .
  • Перспектив НІ. Пропрацювавши 15 років на цій ниві, я зрозумів, що в наступні 5 - 10 років дуже навряд чи щось зміниться ( принаймні на краще ).
  • Діти почали підростати, і грошей стало явно не вистачати.
  • Просто стало набридати… 15 років — дуже великий термін, тут що завгодно набридне.
Отже, у травні 2013 року я зважив усі « за » і « проти » дійшов висновку, що час міняти роботу… Причому на ту, що позбавлена ​​недоліків попередньої. Тобто:
  • робота є цілий рік;
  • добрі перспективи зростання;
  • значно вища зарплата ( як і не відразу, то в перспективі );
  • цікава робота, до якої маю схильність.
У мене були схильності до програмування. Правда на практиці це виявилося лише в тому, що я в школі трохи писав на бейсику, ще менше - на асемблері ( на ZX - Spectrum , він же Sinclair був колись такий культовий комп ). Мінуси « висотки » під час навчання для мене ваболися в плюс: весь вільний час, якого в мене було надміру навесні і особливо взимку, я міг витратити з користю на вивчення програмування. Програмування - поняття розтяжне. Я «погуглил», зважив перспективи ... і мій вибір впав на її величність Java .

Навчання

Першою моєю книжкою по Java стала " Програмування на Java для дітей, батьків, дідусів і бабусь " Якова Файна . Не впевнений, чи рекомендувати цю книгу початківцям, можливо, є і краще, але на той момент читати її було цікаво і досить зрозуміло. практичні приклади, наведені там, я ретельно пропрацював, що дало мені необхідний мінімум практичних навичок для подальшого просування. Книжку дочитав, вирішив пошукати курси. Очні курси були дорогими, та й не було впевненості, що вони того варті. І в цей момент я згадав, що під час роботи над книжкою десь (на habrahabr, здається) натикався на статті про JavaRush. І все закрутилося… Після прочитання та опрацювання книжки перші 10 – 12 рівнівя відібрав як насіння, було навіть занадто легко. Але все одно цікаво. Далі стало складніше та ще цікавіше.
Проходив рівні я суворо послідовно, тобто. читав лекцію, і поки свіжо її розуміння вирішував завдання до неї, і до наступної лекції не переходив до тих пір, поки всі попередні завдання були вирішені, за дуже рідкісним винятком. Так я дістався до 20 рівня з 3-5 невирішеними завданнями.
При виникненні проблем із вирішенням завдань, звичайно, дуже допомагає спілкування на форумі, і водночас, допомагаючи іншим форумчанам, ти сам прокачуєш свої навички! Десь через півроку я вирішив, що пора вже спробувати щастя і спробувати себе на співбесіді. Погуглив приклади резюме, кілька прикладів резюме надіслали мені знайомі, також написав Зеппу ( розділ Java Rush , прим. ред. ) і він мені дав кілька порад та шаблонів для резюме. Я його склав і переслав на перевірку Зеппу; він високо оцінив його. Далі я розмістив резюме на популярних сайтах пошуку роботи, склав список адреса HR-відділів найбільших IT-компаній Одеси , в яких були вакансії Java Developer ( не тільки»). Їх виявилося близько 20 . Половину я про всяк випадок одразу відклав на випадок, якщо скрізь облажаюсь, а на іншу половину розіслав резюме.

Перші співбесіди

Не скажу, що мене засипали запрошеннями, але зрештою за місяць-півтора я сходив на півдесятка співбесід. Якісь виявабося більш-менш вдалими, якісь не дуже. Було два або три тестові завдання, які я виконував зі змінним успіхом і одна співбесіда з розмовної англійської. Його я пройшов успішно, але до технічної співбесіди не дійшло: випередив інший претендент. Ще я ледь не потрапив на так званий «бенчмарк» у Luxsoft: пройшов тести, співбесіду, але в останній момент, коли прочитав контракт, схаменувся і відмовився. Якщо коротко, то три місяці вони тебе вчать, і платять стипендію 300 $ . Якщо ти їм сподобаєшся, вони пропонують роботу джуном ( 500 $). Через 9 місяців вони можуть підняти зарплату, але, як з'ясувалося з договору, якщо ти не відвідуватимеш курси або після курсів захочеш протягом чи року, чи двох, змінити місце роботи, ти зобов'язаний виплатити їм компенсацію за навчання у розмірі 2500 $ . Я вважав такі умови неприйнятними, і відмовився. Ще від однієї вакансії я теж сам відмовився: мені здалося, що там не матиме перспектив.
Але головне: я набув дуже цінного досвіду проходження співбесід. Після кожної співбесіди я вже набагато краще уявляв, що мене чекає на наступному, які приблизно запитання мені будуть ставити, і яких чекатимуть на відповіді… Не те, щоб на всіх співбесідах ставлять ті самі питання, але багато питань ставлять майже завжди.
Та й після кожної співбесіди я складав собі маленький списочок питань, у яких я «плавав», і потім знаходив на них чіткі відповіді. Загалом ходити на співбесіди — справді корисно, незалежно від результатів...

Стажування

Приблизно в цей же час ( осінь - зима 2013 ), мені написали в особу Java Rush з пропозицією взяти участь у « Реальному проекті ». Чесно кажучи, після того як мені перерахували технології, що використовуються в ньому ( Spring , Hibernate , GWT , MySQL , Maven , Git ), я злегка злякався, оскільки здебільшого я чув ці слова краєм вуха, а то й зовсім уперше . Я подумав, що гаяти мені нічого, час на участь є, і погодився.
Спочатку було справді Важко, але через тиждень-другий, я, почитавши книжки та статті, вник у роботу вже наявного коду досить глибоко, щоб вже самому щось написати, і зробити свій перший коміт.
Із хлопцями на проекті мені дуже пощастило. Нас було четверо Тимур (Timur), Женя (Groomsh), Серьога (SergeyKandalintsev) та я . Курували наш проект безпосередньо з JavaRush. Тимур займався здебільшого бекендом, Женя - фронтендом , Сергій - базою даних , я - трохи фронтендом , трохи - бекендом . Через пару місяців ми стали першою командою, яка успішно виконала справжній «Реальний проект» , яким зараз користуються всі джаварашівці – це проект «Рейтинги» ( у новій версії JavaRush цей проект вже не використовується). Сказати, що "Реальний проект" дав мені дуже багато - це нічого не сказати! Крім очевидного приросту цінних знань, до мене прийшло ще важливіше розуміння: Java — далеко не єдина необхідна навичка, хоч і основна. Java - це абетка програмування, але крім абетки потрібно знати правила правопису, граматику, синтаксис, правильно будувати речення, мати багатий словниковий запас ... А в програмуванні необхідно знати і вміти застосовувати безліч фреймворків, патернів та інструментів розробки, а ще знати, де шукати вирішення проблем і відповіді свої питання. Після реального проекту я став цікавитися більш сучасними технологіями, і поглиблювати своє розуміння вже відомих мені… Мої інтереси вийшли за межі «чистої» Java Core. А ще — в моєму резюме з'явився новий, солідний пункт у графі «Досвід роботи» з описом крутих і модних технологій, які були використані в проекті.

Подальші поневіряння

Стажування закінчилося, у мене розпочався новий трудовий сезон за висоткою… Вільного часу стало мало, питання зміни професії відійшло на другий план. Тим не менш, майже весь вільний час я приділяв програмуванню: писав різні «міні-проектики», іноді вирішував завдання на Java Rush , моніторив вакансії, а наприкінці осені записався на безкоштовні курси в IT-конторі DataArt . Cамі курси виявабося надто оглядовими: майже нічого корисного я там не впізнав. Натомість у рамках цих курсів студентам запропонували розбитися на команди та написати «Проект» . Проект полягав у написанні онлайн-системи тестування, з реєстрацією користувачів, частиною користувача ( проходження опитувальників ), і адмінкою (створення опитувальників та управління акаунтами ). Я опинився в одній із чотирьох команд, а згодом вийшло, що проект писав практично сам. Приблизно за місяць ( паралельно працюючи на висотці ) я сам написав цілком стерпний, як мені здається, веб-додаток, заснований на тих же технологіях і патернах, які ми використовували на стажуванні Java Rush ( плюс jsp, Spring Security, і ще дещо ). Якщо комусь цікаво, можу кинути посилання на відкритий репозиторій із вихідниками проекту…

Висота взята!

У грудні мене запитабо на співбесіду до однієї контори. Мені сказали, що зателефонують, коли приймуть рішення… « Ну ось, як завжди, — подумав я тоді. – Якщо одразу не взяли, то надії мало ». Але через місяць, після Нового року, я написав HR-менеджеру цієї компанії, і поцікавився моєю долею. На мій подив вона відповіла, що вакансія ще відкрита і рішення ще не прийнято.
Пройшов ще місяць, і ось, вже наприкінці січня, вона зателефонувала мені з питанням, чи актуальним для мене є пошук роботи, на що я «вимушено» відповів, що так, поки що шукаю. На що вона мені відповіла, що я вже її знайшов, бо я їм підходжу!
Відчуття, звичайно, невимовне, коли тобі повідомляють таке телефоном, просто крила виростають! Щоб це зрозуміти, потрібно самому випробувати. Чого вам і бажаю у найближчому майбутньому! Моя перша робота – участь у розробці великого проекту ERPдодатки , довгобуду. У додатку виявилося дуже багато специфічних нюансів, тому київській компанії-розробнику знадобився програміст неподалік замовника — в Одесі , де я живу. Додаток написано на GWT + ExtGWT + Spring + Hibernate + MySQL, і ще купа допоміжних другорядних бібліотек. Так вийшло, що це саме той стек технологій, які я вивчав і маю якийсь досвід. З мінусів згадаю, що проект старий, і в ньому використано старі версії бібліотек та застарілі підходи проектування, причому застарілі настільки, що оновленню вже практично не підлягають. А ще виявилося, що допилювати результат 3-4 роківроботи інших програмістів я буду на самоті! Зрозуміло, я очікував, що до мене, як до будь-якого джуніора буде приставлений досвідченіший тимлід, він же наставник-порадник, який мене спрямовуватиме і проводитиме ревью мого коду. Але доля розпорядилася інакше, мені довірабо роботу, розраховану на досвідченого самостійного розробника. «Якщо така справа, — подумав я, — то непогано б відразу й прибавку до зарплати попросити». І підняв початкову цифру на 200 $ . Жодних обурень з їхнього боку це не викликало. конкретних цифр не називатиму, лише згадаю, що розмір зарплати відчутно перевершив мої очікування. До того ж у мене вийшов лише один ( а не три, як завжди ) місяць випробувального терміну. Оформабо мене, як завжди, через СПД (для програмістів це звичайна практика) .

Технології, які стануть вам у пригоді в роботі: особистий досвід

Дуже бажано, навіть мабуть НЕОБХІДНО знання баз даних, SQL ( MySQL ), jdbc , Hibernate , Jpa , мережевих технологій html , jsp , servlets , xml , Tomcat . Обов'язково знання основних JavaSE-патернів ( так звані GOF патерни ), так само ВЕЛИЧЕЗНИМ плюсом буде хоча б поверхове знання Spring , SpringMVC , збирача проектів Maven, логування log4j, юніт-тестування JUnit . Потрібно вміти працювати з системами контролю версій, наприклад Git . Іноді запитують або дають тестові завдання з веб-сервісів ( SOAP, REST ). Поряд з цим знання Java core має бути якщо не бездоганним, то, принаймні, дуже впевненим.

Перші враження

Після перших двох тижнів я почав вникати в код, і тепер знаю, що все вийде.
Хочу одразу помітити, що робота програмістом – це все-таки не курорт, це перш за все робота, на яку потрібно зранку вставати та ввечері повертатися. Але ця робота — набагато краща за багатьох інших. У ній є і інтерес, і гроші, і перспективи. А особливо приємно, коли ти зміг цього досягти сам, своїм розумом, працею та наполегливістю. Зміг змінити своє життя, що таки багато в чому ти сам господар своєї долі.
Єдине чого я боюся, це того, що наді мною візьме гору лінь. Що досягнувши певного результату я зледа, і перестану рости в професійному сенсі. Але все-таки дуже сподіваюся, що цього не станеться. Ще раз хочу подякувати творцям цього чудового ресурсу! А тобі, джаварашовець, хочу побажати наполегливості та терпіння на обраному тобою шляху, як казав дідусь Ленін: «Пгавільною догогою йдете товагищі!» =) і ще не потурати своєї лінощів, і головне «NEVER GIVE UP». Дорогу здолає той, хто йде!

Післямова: через два роки…

…вирішив написати продовження моєї «Історії успіху». Причин тому три:
  • мене попросила адміністрація =);
  • Я, як і раніше, вважаю, що саме цей ресурс відіграв ключову роль у моєму «увійти в айти»;
  • Я, як і раніше, впевнений у тому, що мотивація — це так само один із ключових факторів у цій справі, а один із найкращих мотиваторів — це історії успіху реальних людей, які були в такій самій ситуації, як і ти, джаварашевець. Бо знаю, що часом просто руки опускаються... і в багатьох уже більше не піднімаються. Це справді непростий шлях, але він того вартий!
Тож ось мої відповіді на запитання: Як взагалі змінилося ваше життя після того, як ви влаштувалися на нову роботу і що ви відчували на той момент? Нуу, змінилася звичайно… Насамперед змінився споконвічний баланс «час-гроші». Грошей стало відчутно більше, часу - значно менше ... На "хліб насущний", нарешті, стало вистачати, але відкладати на "чорний день" поки не виходить. Хоча, впевнений, якщо трохи напружитися, то вийде відкладати 200-500 $ на місяць (це при тому, що я один працюю в сім'ї з 4 чоловік, дружина може спокійно займатися дітьми). Стабільність, впевненість у завтрашньому дні, або, принаймні, хоч якась їхня ілюзія з'явилася… Опишіть свою роботу. Чим ви займаєтеся, що вивчаєте, як відбуваються процеси взаємодії з командою?  В даний час я працюю вже в другій компанії, Electric Cloud. Це американська компанія, продукт — непростий — інструмент DevOps для Continious Integration/Continious Delivery, щось на зразок Jenkins, тільки набагато більший і суто комерційний продукт. До того ж, вже досить древній, повний легаси-коду (застарілий код, прим. ред.), який потрібно підтримувати, фіксувати баги, іноді писати нові фічі. Словом, зоопарк технологій такий, що мама не журись! Доводиться мати справу більшою чи меншою мірою з Java8, GWT, JS, PHP, Perl, HTML, CSS, Spring, Hibernate, JUnit, Mockito, Maven, Perforce і це лише основні… Перші кілька місяців прозрівав просто, потім звик. Умови роботи – стандартні. П'ять днів на тиждень, 18 робочих днів на рік – відпустка (плюс усі державні свята). Графік за великим рахунком вільний, якщо є бажання, можна працювати з дому. Однак я віддаю перевагу офісу, там ситуація більш робоча. Найчастіше працюю з 12 до 19-20 години. Щодня у нас проходять Scrum-апдейти (Scrum - методологія гнучкої розробки ПЗ, прим. ред.), раз-другий на тиждень - мітинги вечорами з нашим американським тимлідом. Яких висот у кар'єрі ви вже зуміли досягти та які ще гори плануєте згорнути? Час від часу поглядаю на хороші вакансії, в конторах, що мене цікавлять. Дуже рідко, але все ж таки буває, ходжу на співбесіди. Я вже зрозумів, що знайти місце із гарною зарплатою простіше, ніж місце з гарним проектом. А щоб і те, й інше — то треба дуже постаратися. А ще, я все частіше усвідомлюю, що в цю професію не по випадковому збігу обставин, а заслужив це своєю працею і наполегливістю, хоча певний ступінь удачливості, особливо спочатку, напевно повинен мати місце, і ще: я дуже сумніваюся, що її мінятиму. . До лютого моєму досвіду комерційної розробки стукне два роки. Якщо оцінювати мій рівень за загальноприйнятими поняттями, мені здається, що це на кшталт Strong Junior або Regular Middle. Однак ця оцінка дуже суб'єктивна, хіба що я впевнений, що поки що не Senior. Які напуття тим, хто ще на початку (або середині) шляху? Всім, хто вірить у свої сабо, щиро бажаю досягти своєї мети, і, сподіваюся, мій приклад тому посприяє. Повторюся: це не простий шлях, що б вам хто не говорив, і досягають своєї мети, напевно, дуже мало хто з тих, хто почав. Але здатне це зробити набагато більше людей! Просто більшості чогось у середині шляху не вистачає: мотивації, бажання, наполегливості, віри у себе та свої сабо. Багато хто вигадує витончені виправдання і мети вже не досягають ... Так що вірте в себе, не здавайтеся на півдорозі (невеликі перепочинки звичайно не в рахунок =)), і все у вас вийде! Як казали стародавні греки, «Не боги горщики обпікають». "Програмістами не народжуються", пам'ятаємо про це (девіз JavaRush, прим. ред.)? І насамкінець — ще одна порада: проходьте СОБІСИ! Це найпряміша дорога. Якось я чув на ІТ-івент фразу: «я жодного разу не зустрічав людину, яка сходила на 20 співбесід і її нікуди не взяли». На скільки співбесід уже побував ти? Я знаю, що ти можеш мені відповісти:
  • Я ще не готовий, потрібно ще підучитися.
  • Та, мене щось ніхто не кличе.
Так ось: це теж гнилі відмазки! Я влаштувався на свою першу роботу (на з/п 1100$) після 21 рівня! Правда, у мене на той момент вже був невеликий досвід з GWT, Hibernate та Spring, почерпнутий зі стажування JavaRush. Але на співбесіді про це не питали, майже всі питання були по Java Core і трохи SQL. Тож не бійтеся, шукайте вакансії, ходіть на співбесіди! Зареєструйтесь на LinkedIn, на «Джині», сайтах з пошуку роботи — скрізь, де тільки можна! Слідкуйте за новими вакансіями, відгукуйтесь на них! «Стукайтеся — і вам відкриють», заваліть усі IT-контори у своєму місті листами зі своїм резюме, і довго чекати на запрошення на співбесіду не доведеться. Варіантів маса! Отже, найкоротший план дій такий:
  1. Закінчив 20-30 рівнів JavaRush, плюс навчив трохи SQL, JDBC. якщо ще й основи Spring та Hibernate є, то ти взагалі у шоколаді.
  2. Накатал резюме за прикладами, зареєструвався на профільних сайтах, виклав його, потім засинав усі IT-контори спамом зі своїм резюме. Повір, без зворотного зв'язку ти не залишишся, багато хто просто відпишуться що матимуть тебе на увазі, а хтось обов'язково запитять на співбесіду.
Кожна співбесіда, навіть цілком провальна, значно наближає тебе до мети! Бо на кожному наступному ти почуватимешся більш підготовленим та впевненим. А питань відсотків 80% майже скрізь ставлять ті самі.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ