Закінчився випробувальний термін і настав час розповісти “як я став програмістом”. У листопаді 2014 року я припинив свою півторадесятирічну діяльність ніяк не пов'язану з IT і почав шукати себе. В наявності були вміння та інтерес працювати з даними. До цього моменту вже кілька років я робив безкоштовно і за гроші, невеликі, нескладні сайти зібрані на СMS Modx і це було швидше хобі. При цьому не згасало бажання писати код, яке з'явилося ще в школі, але не реалізувалося через багато причин. До нового Нового Року я точно визначився, що хочу працювати програмістом і залишалася справа за малим: вибрати мову. Я вже бачив до цього такі мови як Java і C++, а в далекі 90-ті писав на Pascal'і і Basic'е. У результаті, глянувши на коло завдань, що цікавляться, кінцевий вибір впав на Java. І пішов процес навчання…
Перший захід
Основи програмування були зрозумілі, синтаксис простих програм теж був давно вивчений - за спиною була пара найпростіших Android додатків, зібраних за уроками та кілька класів Java, які вирішували мої побутові питання (один із них перераховував параметри покришок для різних розмірів дисків). Насамперед було підібрано книгу і пішов процес навчання... Через 3 тижні у мене не стало сил взагалі читати про програмування - це було сумно і нудно. Я надто переоцінив свої таланти та старанність. Ще близько місяця я намагався читати мануали Oracle, що теж не вселяло оптимізму. До кінця лютого я почав розуміти, що мені потрібен комп'ютер... (Т.к. я вже кілька місяців не працював, вибір упав на старий лептоп претендує на звання ультрабука, що має на своєму борту SSD, i5 першого покоління та 3Gb оперативної пам'яті). На початок березня у мене все було готове до навчання і я зустрів сайт JavaRush.ru... Зараз мені здається, що це було 7 березня.З цього моменту мене не можна було відірвати від комп'ютера. , зовнішні бібліотеки і... ...30й рівень.До нього я підійшов до початку серпня.За спиною були сотні годин кодингу і багато тисяч рядків коду.Підійшов етап реального проекту, який входив у вартість пакета придбаного на JR.До цього моменту я вже об'єктивно розумів вимоги до програміста Java та ілюзій не мав.
Проект
Тестове завдання відразу позначило мій рівень програмування на рівень трохи вище за нуль і я з нетерпінням чекав перших лекцій і завдань. Не заглиблюватимуся в стек технологій та опис курсу - все саме те, що зараз вимагають від претендентів і правдивий огляд самого курсу пропонує сам автор. Це найцінніший набір знань, який перетворює Java на Enterprise інструмент. Вже більше трьох місяців пройшло з закінчення курсу, а я досі розумію що саме показував цей, і справді, майстер. Найголовніше, що Ви отримаєте від стажування – це заряд інтересу та вміння вчитися новим технологіям у програмуванні. Проект, який Ви отримаєте за підсумком - це вже й не найголовніше, але дуже корисне.
Додаткові знання
Не можу не доповнити уявлення про моє навчання. Крім того, що я сидів від 8 до 15 години на день за комп'ютером і вирішував завдання, я дивився навколо і ось перелік того, що треба хоча б доторкнутися: mysql, postgresql, mongo, js, html, css, linux (debian, mint , ubuntu - вибирай будь-який), spring boot, freemarker. І, звичайно, за базу треба приймати Java Core і всі технології проекту. В інтернеті є величезний список питань для підготовки до співбесід. Дуже часті теми: колекції, винятки, багатоточність. Вчіть англійську мову – почніть прямо зараз. Наприклад, спробуйте читати документацію. У добрій компанії, де пишуть на Java - іноземні замовники. Можливо, вам доведеться з ними спілкуватися - я був на загальному мітингу через півтора місяці. У міжнародних компаніях у багтрекерах вся інформація також англійською мовою. Читайте книги. Будь-якою мовою, але краще в оригіналі.
Співбесіди
Для мене найпізнавальніший етап. Тут я дізнався що саме хочуть отримати від претендента, підтягнув знання відповідно до вимог. Намагався потрапляти на співбесіду Middle розробників і уникав Junior, але вони траплялися. На Senior не був жодного разу. Перше, що позначилося в мозку: незалежно від позиції, на яку ти претендуєш, питання на співбесідах різних рівнів однакові і відрізняються лише глибиною. Колекціями цікавляться скрізь. Іноді ставлять каверзні питання. В етапі ходіння по співбесідах треба усвідомлювати, що їх має пройти чимало, перш ніж ти знайдеш ту роботу, яка влаштує тебе і де влаштуєш ти. Усі співбесіди до цього ключового – твій шлях, який треба пройти, пережити розчарування, зробити висновки та піти далі. На цьому етапі важливо не забувати про це ні на мить.
Зараз
На даний момент закінчився третій, заключний місяць випробувального терміну у великій компанії-аутсорсері, і я багато разів згадав добрим словом проект. У мене немає градації, але, як на мене, у мене рівень Middle. Запитань я не ставлю - дається взнаки досвід участі в реальному проекті, завдання отримую великі і рішення про реалізацію приймаю сам. За час роботи застосував усі знання технологій вивчених раніше та ще більше для мене нових. Мій випробувальний термін закінчився рівно через рік, день у день, з початком навчання JavaRush. За 3 місяці комерційного прадакшна, звичайно ж, прийшло дуже багато нового досвіду та нових знань і все, що було до цього, здається вже зовсім не складним, але від цього анітрохи не менш важливим.