JavaRush /Java блог /Random UA /Як я став програмістом, або «Через терни до зірок» =)
provisota
33 рівень
Одесса

Як я став програмістом, або «Через терни до зірок» =)

Стаття з групи Random UA
Як я став програмістом, або «Через терни до зірок» =) Як я став програмістом, або «Через терни до зірок» =) - 1 Привіт Джаварашовець!) Хочу поділитися з тобою своєю історією, бо відчуваю на собі моральні зобов'язання перед чудовими людьми, які створабо цей ресурс, а також перед суспільством, яке він породив. Творців хочеться хоч якось віддячити, а джаварашовців ще поки що не досягли своєї заповітної мети підбадьорити, і підкріпити гарною порцією мотивації) Я багато разів уявляв собі як я писатиму цю статтю, які використовуватиму слова, і ось, нарешті відбулося, і як я в принципі і чекав усі слова кудись – то зникли, так що прошу не судити строго за стиль викладу) Загалом, про головне, ось уже два тижні я працюю програмістом, і це багато в чому завдяки джаварашу) Але все по порядку, розповім спершу трохи про себе. Мені 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» і здолає дорогу! Сміття за багато літер) то, принаймні, дуже впевненим. І все одно знання всіх цих технологій (нехай здебільшого поверхово) не гарантує того що на співбесіді тебе не запитають чогось — то про що ти взагалі мало не вперше чуєш) але, тут теж, як пощастить ... може і просто по Java core поганяють і все) Ще раз хочу подякувати творцям цього чудового ресурсу, зокрема Зеппа, Хьюберта та Діану! А тобі джаварашовець побажати наполегливості та терпіння на обраному тобою шляху, як казав дідусь Ленін: «Пгавільною догогою йдете товагищі!» =) і ще не потурати своєї лінощі, і головне «NEVER GIVE UP» і здолає дорогу! Сміття за багато літер) то, принаймні, дуже впевненим. І все одно знання всіх цих технологій (нехай здебільшого поверхово) не гарантує того що на співбесіді тебе не запитають чогось — то про що ти взагалі мало не вперше чуєш) але, тут теж, як пощастить ... може і просто по Java core поганяють і все) Ще раз хочу подякувати творцям цього чудового ресурсу, зокрема Зеппа, Хьюберта та Діану! А тобі джаварашовець побажати наполегливості та терпіння на обраному тобою шляху, як казав дідусь Ленін: «Пгавільною догогою йдете товагищі!» =) і ще не потурати своєї лінощі, і головне «NEVER GIVE UP» і здолає дорогу! Сміття за багато літер) Продовження
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ