Привет 👋 Меня зовут Вольфганг. Я живу в Вене, Австрия, и работаю в компании по разработке программного обеспечения в качестве разработчика веб-приложений с полным стеком уже 4 года. В основном я создаю большие мультитенантные веб-приложения с помощью React. Сегодня я хочу рассказать вам о своем пути от официанта до моей нынешней работы разработчиком.

Когда я рассказываю о своем путешествии новым коллегам, им всегда нравится моя история, поэтому я решил поделиться ею со всеми. Я надеюсь, что эта история поможет вам двигаться к своей цели в трудные времена. Может быть, это даже побуждает кого-то тоже отправиться в такое путешествие к работе своей мечты.

Я бросил среднюю школу и пошел подмастерьем на повара и официанта и проработал в гастрономии около 10 лет. Это было весело. Работал каждые выходные и праздники. Раньше я ходил по ночам и спал до полудня следующего дня. Когда я встретил свою жену и у меня впервые были серьезные отношения, я понял, что должен изменить свою жизнь. Мне было 26, когда я решил заняться чем-то другим. но что? 🤔 Я понятия не имел. Я подал заявку на несколько случайных вакансий, но большинство компаний просто проигнорировали меня. У меня было несколько собеседований в компаниях с финансовой пирамидой. Я не смог найти ничего разумного, и я был разочарован и потерял уверенность в себе. Я сдался и продолжал работать официантом.

Однажды я разговаривал с завсегдатаем пивного паба, в котором в это время работал. Он был 50-летним программистом на Коболе. Меня немного интересовало это странное волшебное ремесло программирования, но все, что я знал о компьютерах в то время, это как искать что-то в Интернете и как раскладывать пасьянсы. Когда я спросил его, как я могу попробовать это с помощью очень простого языка программирования, он посоветовал мне взглянуть на Java. Итак, в тот день я вернулся домой, посмотрел много видео на YouTube о том, как установить Java и Eclipse IDE. Я помню, когда я впервые нажал **Выполнить**, и консоль показала эти знаменитые 2 слова: «Hello World». Я думаю, что потратил целый месяц, просто пытаясь изменить или расширить эти несколько строк Java всеми возможными способами. В какой-то момент я смог получить ввод с консоли и отреагировать на ввод в моей программе. Я чувствовал себя Нео, теперь, когда все компьютеры подчиняются моей воле.

Предстояло открыть целую вселенную. Это был творческий процесс творчества. Вы создаете вещи, которых раньше просто не было. С таким микроконтроллером, как Arduino, вы можете создавать и программировать даже то, что существует в реальной жизни. Я был зависим. Я испробовал каждую идею, которая пришла мне в голову.

Так как программирование теперь было моим новым хобби, я хотел сделать это и своей основной работой. Поэтому мне было любопытно посмотреть, есть ли у меня талант к этому или, по крайней мере, я могу делать больше, чем простые программы вопросов-ответов. Я попросил у постоянного гостя из пивного паба небольшое задание по программированию. Он сказал мне реализовать алгоритм треугольника Серпинского.

Алгоритм:

  1. Случайным образом расположите 3 точки на экране.
  2. Выберите случайную точку на плоскости, чтобы установить ее в качестве текущей «фокальной точки».
  3. Выберите один из 3 узлов наугад
  4. Вычислите и отметьте среднюю точку (евклидово расстояние) между фокальной точкой и выбранным узлом.
  5. Установите отмеченную точку в качестве новой фокусной точки
  6. Повторите шаги с 3 по 5 много раз (10 000+)

Проблема заключалась в том, что я никогда не слышал о рекурсии, и я думаю, что это был первый раз в моей жизни, когда я услышал термин «алгоритм» за пределами фильма или сериала. Мне было рано браться за такую ​​сложную задачу. Я старался изо всех сил, но месяцами не мог решить эту проблему. Я оставил его, чтобы заняться чем-то другим, и возвращался к нему не раз. Все эти месяцы я был уверен, что никогда не получу работу программиста. Я снова был разочарован и потерял всю свою уверенность в себе. Однако однажды я понял это правильно, и этот красивый шаблон возник в приложении Java Swing. Я снова был Нео 😂. Я с гордостью показал его своему постоянному гостю после месяцев боли и борьбы. Он даже не помнил, что сказал мне реализовать этот алгоритм, но я был уверен, что хочу сделать это своей основной работой, и что я вложу все свое свободное время и энергию, чтобы это как-то произошло.

Через пару месяцев мне исполнилось 27 и у меня родился сын. Это резко сократило мое свободное время. Я не хотел тратить все свое свободное время на изучение чего-то, что может или не может сработать для меня. Я продолжала учиться, но старалась делать это, когда мой сын спал. Я хотел получить степень в средней школе, а потом я хотел изучать программную инженерию в университете, но я решил остаться самоучкой, потому что у меня оставалось больше времени для моего сына, и казалось, что я могу найти в Интернете все, что мне нужно. необходимость.

Мой прогресс действительно ускорился, когда я сменил свою дневную работу официанта на должность клерка службы поддержки в веб-хостинге и поставщике доменов. Теперь я был перед компьютером весь день и мог бы использовать время своей повседневной работы, чтобы узнать еще больше, но на этот раз о терминале, ssh, докере, администрировании серверов и DNS. Я начал понимать, как работает Интернет, и связался с ♥ javascript ♥. Я оставил Java и начал писать веб-приложения с помощью Node.js и Angular 1. Я связался с разработчиками этой компании и посетил свою первую конференцию разработчиков. Я был немного неуместен, но я познакомился со множеством новых фреймворков и библиотек, которые я мог найти и попробовать позже. Одним из них является React. Когда я изучил React, он с самого начала показался мне правильным. Компонентную модель и однонаправленный поток данных мне было намного легче понять, чем эту двунаправленную привязку данных в angular со всеми этими службами и контроллерами.

С этого момента я сосредоточился на React и Node.js. Оглядываясь назад, кажется, что это лучший выбор в лучшее время. Это было примерно в 2016 году. Примерно в 2017 году я почувствовал, что готов подать заявку на работу в качестве Frontend или Full-Stack разработчика. Я подал заявку в компанию, которая спонсировала встречу. Они пригласили меня на собеседование. Я пошла туда без резюме, потому что все мои предыдущие работы официантом им все равно были бы не интересны. Единственное, что я взял с собой, это мой ноутбук. Они задавали мне некоторые технические вопросы, и я мог ответить на большинство из них. Также я показал им проект, над которым работал. Проект был построен с помощью Node.js и React, имел небольшой фронтенд, хорошо протестированный бэкенд и файл `docker-compose.yml` для его запуска. Этот проект даже не был закончен, у него были только основные виды и формы, которые были связаны с API. 2 недели, которые мне пришлось ждать от них ответа, были самыми длинными 2 неделями в моей жизни. Когда мне сказали, что я получил работу, это было похоже на

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

Что я хочу сказать вам своей историей, так это то, что вы можете подать заявку на работу намного раньше, чем вы думаете. Не позволяйте перфекционизму встать у вас на пути. Иногда достаточно показать небольшое доказательство того, что вы знаете, как написать приложение с использованием технологического стека, который использует компания.

Работа в компании по разработке программного обеспечения позволит вам учиться намного быстрее. Когда вы учитесь самостоятельно в свободное время, у вас может быть 2 часа в день. В компании у вас есть 8 часов в день, и вам даже платят за это. Также вокруг вас есть более опытные коллеги, которые готовы помочь вам с вашими проблемами и укажут вам правильное направление, когда вы застряли.

Просто не сдавайтесь и верьте в себя. Если я могу это сделать, вы можете это сделать!