Як я з програміста 1С став Java-розробником. Мій кар’єрний шлях, виклики, поради

Усі статті, обговорення, новини для початківців — в одному місці. Підписуйтеся на телеграм-канал!

​​​​Привіт. Мене звуть Євген, я працюю в компанії Digicode бекенд-розробником на технології Java. Вже виповнилось 4 роки, як я мігрував з платформи 1С на Java. До моменту міграції я пропрацював 10+ років розробником 1С в різних компаніях, останньою з яких була корпорація «Кернел».

Після повномасштабного вторгнення росії майбутнє 1С в Україні стає все більш ілюзорним. Тому ця стаття може стати корисною для тих, хто планує мігрувати, як і я до цього, з 1С на якусь іншу платформу. Можливо, мої поради як мігрувати найлегшим шляхом у кінці статті стануть комусь у пригоді. А для тих, хто переходить на Java, є окрема частина з мінімально необхідними знаннями, які знадобляться.

Відразу скажу, що зараз все ще гарний час для міграції, оскільки спеціалістів не вистачає. Хоча попит на недосвідчених розробників на ринку праці дещо впав. Проте я все ще вважаю, що хто хоче знайти роботу і докладе зусиль — той все одно її знайде. Отже...

Про себе і кар’єру 1С. Де, як, чого досяг

Загалом, програмуванням я почав цікавитися ще у школі, але замість фахової освіти з інформаційних технологій отримав вищу технічну інженерну освіту. Програмістом став випадково, це була перша робота в одному з полтавських франчайзів 1С. Ми домовились про те, що вони мене усьому навчать (курси бухгалтерії, платформа 1С 7.7) натомість я маю пропрацювати у них певний період. А в період стажування платили мінімальну зарплату.

З тих часів у мене в голові засіла фраза одного з програмістів, який звільнявся, що «на комп’ютерах багато не заробиш». На той час це якось так і здавалось.

Через рік я все ж таки змінив роботу і став працювати на одного з ритейлерів канцтоварів, де загалом пропрацював 3 роки. Під кінець був керівником маленького відділу IT з зарплатою $200. Виконував функції напівадміна, напівпрограміста. Завжди бісило.

Потім перейшов на роботу в одну з приватних газодобувних компаній, де пропрацював програмістом 1C 7.7 ще 3 роки до кризи 2008 року. Ця компанія мала зовнішнє фінансування, почалися скорочення, під які потрапив і я. Далі рік вільних хлібів з шабашками, почав вчити 1С 8.1.

З новими знаннями я влаштувався на «Нову пошту», де пропрацював рік на посаді «програміст платформи 1C 8». Це була перша робота, де я, як програміст 1С, не працював адміном. Загалом працювати на НП було цікаво, але надзвичайно виснажливо. Також мене не дуже задовольняла зарплата (на той момент у компанії не було чіткої політики й кожен отримував те, на що був спроможний домовитись), я домовитись не зміг, тому почав шукати інші пропозиції.

Отже, через рік перейшов на роботу в корпорацію «Кернел», якій присвятив 6 років. Наприкінці своєї кар’єри там я був керівником групи розробників бухобліку маслопереробних заводів. Я не певен, що можу розповідати внутрішню кухню, оскільки підписував папери про нерозголошення. Якщо без конкретики, то там був чудовий колектив, програмісти, бухгалтери — усі професіонали своєї справи. Ми писали різні облікові системи, робили інтеграції з іншими системами.

Корпорація велика, використовує багато сучасних програмних комплексів. Ми проходили купу курсів з підвищення кваліфікації. Я отримав значок «професіонал 1С», на «спеціаліст 1С» я вже не готувався, бо збирався мігрувати з 1С.

Чому вирішив йти з 1С

Насправді причин декілька. Все почалось з 2014 року, коли росія вторглася на територію України. Почались перші санкції і я зрозумів, що 1С рано чи пізно під них потрапить, бо є російським продуктом, де б вони себе не реєстрували. У деяких інших країнах також використовують 1С, але навряд чи я зможу знайти там роботу на цій платформі. Працювати на РФ я не збирався.

Наступною причиною стала сама корпорація, де я тоді працював. Коли я йшов на роботу, керівник мого відділу на співбесіді казав, що зарплати умовно прив’язані до курсу долара. Якщо станеться зміна курсу, а тоді він ще був фіксований, то зарплата в гривні буде скорегована.

Коли прийшла війна, цього не сталось. Це стало вагомою причиною. Надалі, коли я став вже керівником, то спробував домовитись з директором IT-департаменту про підвищення зарплатні для своєї групи. Це не дало жодних значних результатів. Програмісти там були і є дуже кваліфіковані, тому я вважав свої вимоги більш ніж справедливими.

Треба розуміти, що в моєму місті, Полтаві, можна вважати я досяг чи не вершини того, що міг досягти програміст 1С. Ця корпорація тут вважається найкращим роботодавцем. Ремоуту тоді ще не було. Переїздити у Київ не хотілось зовсім, хоча тоді б отримував у 2 рази більше за ту ж саму роботу.

Перехід на Java

Я вже писав, що не мав профільної освіти, але завжди цікавився програмуванням. 1С же давало відчуття якоїсь професійної неповноцінності. Хоча зараз я розумію, що насправді все було добре, ми вирішували складні завдання, з професіоналізмом все ок. Просто це закрита екосистема та існує багато подібних рішень типу Salesforce.

А ось Java цікавила давно. Познайомив мене з нею мій товариш років 10 тому. Щось я вчив, щось читав. Але це проходило у фоновому режимі, та й вкрай нерегулярно. Проблема в опануванні будь-чого — це почати використовувати те, що вчиш.

Якось я натрапив на анонс безкоштовного курсу університету Берклі з основ алгоритмів штучного інтелекту, який мене дуже зацікавив. Тож, я негайно подав заявку та успішно пройшов його, чим дуже надихнувся.

Сталось дві важливі речі. По-перше, я програмував на Python в Eclipse IDE, що відкрило для мене інший світ. По-друге, цей курс був англійською мовою. Раніше я, звісно, брав приватні уроки англійської, але щось вже забулося, — і це допомогло мені знову повернутися до вивчення мови. Я опанував терміни, почав краще сприймати англійську на слух.

Без бажаної зарплатні, росла мотивація. Я почав шукати, що б його написати на Java. Якось до мене звернувся мій товариш і попросив написати тести на проєкт, який він не встигав робити. Тоді я вперше побачив Spring Boot і вперше побачив професійно написаний живий проєкт, побачив код, технології, що використовуються. Побачив, як використовуються NoSQL бази даних.

Далі стався вірус Petya, що зніс купу інформації в корпорації, включаючи мої особисті архіви вдома. Тоді я вирішив спробувати Linux, щоб більше ніколи ні від кого не залежати й ще більше почав віддалятися від екосистеми 1С. Робота в «Кернелі» велась на серверах розробки. Використання Windows як терміналу, по суті, було не обов’язковим. Вміння працювати на Linux мені дуже знадобилось надалі.

Ну, і нарешті, мої давні знайомі запропонували мені написати для них програмний комплекс для аналізу ставок на спортивні події у різних букмекерів для виявлення ситуацій sure bet. Це ще називається арбітражними ситуаціями. (Ну, а хто з нас безгрішний?..)

Дуже спрощено — це коли можна виявити між пропозиціями (коефіцієнтами) на одну подію двох різних букмекерів таку ситуацію, що дає можливість виграти, поставивши певну суму незалежно від того, яка команда виграє. Наперед скажу, що букмекери також не дурні й все це знають, але не суть.

Це була не тривіальна задача, яку лише на 1С написати малоймовірно, хоча б тому, що вона не спроєктована для обробки інформації у реальному часі, але маючи величезний досвід, я не міг її не використати. Маючи проблеми зі здоров’ям і, спираючись на це, я домовився працювати на пів ставки з добровільним пониженням до рядового програміста, з метою реалізувати новий проєкт.

Не вдаючись у подробиці, я його реалізував. Це був гібрид 1С з використанням механізму платформи «зовнішні джерела інформації», плюс мікросервіси на SpringBoot. Без досвіду такої розробки — це був нетривіальний виклик. На етапі обкатки я встиг заробити 40 євро перш ніж мене забанили у кількох букмекерів.

Врешті цей проєкт мені набрид і я перейшов до плану Б, вже маючи хоч якийсь досвід розробки.

Я почав шукати роботу джуніором, розсилати анкети. Ідея була зачепитись хоч десь, хоч кимось, але на Java. В проєкті я використовував web-driver від Selenium (цей інструмент насправді використовують тестувальники) і перше, що спало на думку, спробувати влаштуватись тестувальником для написання автоматичних сценаріїв.

Зараз я розумію, що це була не вдала ідея і, на щастя, в першу компанію я не підійшов. Я викладав резюме на якомусь з порталів і того ж дня до мене звернувся HR з компанії Digicode.

Далі все проходило вкрай швидко. Проєкт, на який мене брали, був дотичним до гемблінгу, що мені й допомогло, бо про ставки на спортивні події я знав на той момент усе. Загалом я пройшов п’ять різних інтерв’ю, але повністю провалив технічну співбесіду англійською з представником замовника проєкту, на який я йшов, бо мій рівень англійської не дав мені аудіально зрозуміти, що від мене хочуть в умовах стресу.

Тоді за мене вступився мій теперішній шеф, і якимось чином пропхнув мене на наступну співбесіду з Product Owner’ом, котрий якраз приїздив до нашого офісу у справах. Я наслухався там чимало усього — і про відсутність в мене профільної освіти, і про відсутність професійного досвіду Java. Зрештою, він сказав, що дуже ризикує наймаючи мене, і не дуже вірить в цю історію.

Але ми з моїм босом домовились, що я протягом чотирьох місяців продовжую працювати половину дня в корпорації, а іншу половину — працюю на новому місці без вихідних, стараюсь на максималочках. Було непросто, але мені вдалось пройти випробувальний період. Це стало кінцем історії з 1С для мене.

А тепер про те, як правильно переходити з 1С

  1. Англійська мова. Ось прямо зараз варто почати шукати собі наставника з англійської, дивитися YuuTube англійською, виписувати слова, тренувати мову у побуті. Обов’язково читати книжки про технології, що вивчаєш, лише англійською.
  2. До 1С-ників відносяться скептично. Твій досвід з 1С мало кого буде цікавити. Що тоді писати в резюме? Знайти й пройти хороші курси з технології, на яку збираєшся мігрувати. Там тобі повинні показати інструменти, з якими будеш працювати. Після основ спробувати складніші курси. Не зайвим буде пройти сертифікацію з цієї технології. Сертифікати в резюме цінні. Можна не мати досвіду, але мати сертифікати — й ти вже будеш цікавим кандидатом. Всі вкладені кошти згодом окупляться, але на початку доведеться вкладати власні гроші й час. Якісь курси, звісно, можна знайти і безкоштовно, але частіше — ні.
  3. Почати проходити співбесіди. Проходження співбесід — це окремий вид мистецтва. Ще працюючи в корпорації, мені колись довелось відстоювати досвідчену кандидатку, яка, на перший погляд, здавалась не дуже зацікавленою в отриманні роботи. Але виявилося, що вона сама по собі не дуже емоційна людина. Задача — це отримати досвід, подивитися, що цікавить роботодавців, які питання вони ставлять, як реагують на твої відповіді. Гарні роботодавці завжди дають фідбек з описом, що потрібно підтягти в знаннях. Не бійтеся провалювати співбесіди — це не має значення на цьому етапі.
  4. Важливо почати писати на тій технології, на яку бажаєш мігрувати. Розв’язання реальних проблем змушує думати у правильному напрямку. Може, вдасться комусь допомогти писати тести в реальному проєкті. Мати досвідченого ментора — велика вдача на цьому етапі. Можна вигадати реалізацію якогось інструменту для себе. Як варіант, взяти участь в опенсорсному проєкті, пофіксить баги тощо. Це складно, але потрібно шукати. Можливо в організації, де ти зараз працюєш, знайдеться можливість перейти джуном на іншу технологію.

Поради щодо переходу на Java, якщо зібрався на бекенд-розробку

  • Все те саме, що я написав у попередньому розділі. Можна пройти сертифікацію Java в Oracle. Є книжки з підготовки до сертифікації Oracle. Є ресурси з пробними тестами. У сертифікації кілька рівнів. Щодо курсів по Java, то є FoxMinded Нємчинського (для початківців точно є). Вони, по-моєму, і фідбек роботодавцю можуть дати, якщо потрібно.

Ще є круті чуваки з Bobocode для більш досвідчених. Про останніх я дізнався лише цього року, і зараз час від часу дивлюсь їхні лекції, що є у відкритому доступі. Дуже подобаються, змістовні, дають практику, правильний хід мислення, от прямо дуже рекомендую їх також. Для зовсім початківців поки що не підійдуть, але варто поспілкуватись, може, щось і для вас знайдеться у них.

Мабуть, є ще хтось — треба шукати. Це були українські, кого знаю.

  • Потрібно опанувати Spring Boot і технології в ньому: Dependancy Injection, Spring Data, AOP і т.п.. це окрема тема, окремі курси, книжки і т.п..
  • Розібратися з шаблонами проєктування і методами розробки: 24 шаблони «банди чотирьох», SOLID, GRASP, KISS, DRY і т.д.. В архітектуру поки що не лізьте, вчіть Spring. Буде нудно, побудуйте щось на Spring Cloud за якимось з курсів, але краще на потім.
  • Книжки: Clean Code, Robert Martin; Clean Architecture, Robert Martin; Refactoring Improving the Design of Existing Code, Martin Fowler.
  • Вивчити й знати супутні інструменти: GIT, Intellij Idea, Docker. Є лекції на YouTube, купа матеріалів в статтях, книжки.
  • Я б ще рекомендував працювати на Linux, не обов’язково, але точно знадобиться.

Відмінності у робочому процесі

Скоріше за все, ви потрапите в більш демократичну атмосферу, де не буде прискіпливих бухгалтерів і пережитків з постсовєтською ментальністю у робочому спілкуванні та світогляді. Це будуть молоді команди, люди зазвичай відкриті до спілкування з купою різних інтересів. Комунікація на першому місці.

Рівень заробітної плати буде залежати від досвіду, навичок, вміння спілкуватись, можливостей компанії, іншими словами — договірна.

Скоріше за все, ви будете час від часу спілкуватись із закордонними партнерами/ розробниками/ замовниками. Курси англійської мови компанії зазвичай забезпечують. Знову ж, софт-скіли, іноземці думають не так, як ми, це потрібно вивчати та розуміти. Перш за все, вони більш чутливі до того хто, що і як каже. Але часто роблять знижку на рівень володіння мовою.

Зазвичай роботодавець забезпечує соцпакет на випадок хвороби, компенсацію навчання, спортзалу і т.п. Рівень і якість залежить від конкретної компанії й буде озвучений на співбесіді.

Наразі, вірогідно, потрібно буде оформитись як ФОП, але це не точно, з огляду на проєкт Дія City, що вже стартував.

Буде важко, але цікаво також буде. Щасти!

👍ПодобаєтьсяСподобалось16
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі