Это будет короткая серия, в которой я расскажу о том, через что мне пришлось пройти на протяжении всей моей профессиональной карьеры, чтобы стать профессиональным разработчиком, которым я являюсь сегодня. От безработного до разработчика-самоучки, работавшего в двух компаниях-единорогах, а теперь работающего на руководящей должности в стартапе.

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

Код везде

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

Из-за моего интереса к компьютерам мой друг предложил мне пройти курс программирования в старшей школе. Я любил видеоигры, но не мог представить себя на работе с 9 до 17 «в IT». Я предполагаю, что в моей голове это означало сидеть за столом, смотреть на внутренности компьютера и пытаться исправить причину, по которой он загружался с синим экраном, что в то время звучало для меня ужасно… Хотя я скептически отнесся к моему долгосрочному интересу к карьере, связанной с компьютерами. Я рискнул.

«Проблемы человечества проистекают из того, что человек не может спокойно сидеть в комнате в одиночестве» — Блез Паскаль

Во время курса я впервые столкнулся с кодом на языке программирования Pascal.

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

В первый раз, когда я закодировал базовую математику, чтобы она возвращала результат суммы двух значений, мне казалось, что я взламываю мейнфрейм. И однажды я сделал «приложение», которое запрашивало у пользователя его имя и возвращало «Привет, ‹имя пользователя›!» Я знал, что я один из Матрицы 😎

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

Ощущение, что пользователь инициирует действие, которое вызвало реакцию, которую я ожидал и к которой был готов, было захватывающим! Это было похоже на видеоигру-головоломку, в которой мне давали кусочки и кусочки, но я должен был сложить их вместе, чтобы прогрессировать и получить свою награду.

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

Домашнее задание

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

Я спросил своего друга, который втянул меня в эту неразбериху, чему я должен научиться, чтобы сделать что-то действительно полезное и продуктивное. Он такой: «Вы знакомы с HTML? Может быть, вам следует изучить это. И CSS. О, и JavaScript, пока вы в нем. Также можете попробовать PHP, если хотите».

Теперь, если вы новичок, я уверен, что вы тоже слышали именно эти слова (возможно, не часть PHP, PHP был более популярен в мое время👴). И хотя это может звучать как много, все это довольно хорошо сочетается друг с другом.

Веб-анатомия

Всякий раз, когда мне приходится объяснять, что такое HTML, CSS и JS для «нетехнических людей» и почему они так переплетены — даже несмотря на то, что это разные языки — я привожу аналогию с человеческим телом, чтобы помочь визуализировать их назначение:

💀 HTML: это скелет нашей страницы. Это основа сети. Если все остальное разваливается, мы все еще можем видеть костяк страницы и иметь некоторое представление о том, чего она пытается достичь.

💅 CSS: Ах, какая красивая сторона любой веб-страницы. Это была бы кожа, покрывающая наши холодные уродливые кости. Любой скелет выглядит намного дружелюбнее с кожей и гримом, если мы хотим пофантазировать.

🧠 JavaScript: JS — это мозг всей операции. Конечно, страница здесь, стоит на двух ногах, гладкая, красивая и готова очаровать любого, кто пройдёт мимо. Но как мы можем приветствовать наших посетителей без мозга? Если мы хотим понять наших арендаторов, мы, вероятно, должны попытаться узнать их немного, может быть, попросить их заполнить информационный бюллетень или даже войти в систему. Вот где вступает в действие логика большого мозга.

Мой первый «большой шаг»

В конце моего курса программирования мне пришлось объединить все, что я узнал, в окончательный проект.

Являясь настоящим водопадом творчества, которым я, естественно, являюсь, я решил сделать приложение для заметок 😎

Но дело было не только в заметках, нет-нет! Он уделял большое внимание планированию задач и уведомлений для ваших заметок. В то время уведомления не вызывали такой ненависти, как сегодня…

Поскольку я не знал, как разрабатывать на мобильных устройствах, я не мог делать push-уведомления на телефонах. Я мог бы отправить уведомление в браузере, но тогда у меня был бы шанс, что TaskPal сообщит кому-то, что они должны были уехать в аэропорт 6 часов назад, потому что они не остановились, чтобы посидеть перед компьютером, открыли свой браузер и проверили приложение TaskPal. .

Это ограничение заставило меня искать альтернативные решения. В конце концов я нашел несколько API, которые позволили бы мне автоматически отправлять электронное письмо или SMS с пользовательским сообщением. Это было далеко не лучший пользовательский опыт, но работа была сделана.

На это ушли месяцы исследований и разработок. Мне пришлось изучить HTML для структуры страницы; CSS для стиля; SQL (язык базы данных) для управления пользователями; PHP для обработки логики взаимодействия с внешним интерфейсом, базой данных и API уведомлений; Photoshop для некоторых изображений и значков; как интегрировать API уведомлений и JSON для чтения данных из них.

В то время это было много, но в конце концов я смог завершить проект и получил 19 баллов из 20. В итоге я не стал размещать проект в Интернете. После этого я немного забросил проект и на этом TaskPal закончился 🪦

Мир был моей устрицей

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

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

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

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

Я вернулся в дом своей матери — к счастью, она могла содержать меня в течение нескольких месяцев — и решил учиться дома и, в конце концов, устроиться на работу.

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

Вскоре я понял, что мне, вероятно, следует больше сосредоточить свои исследования на JavaScript — поскольку он был так востребован, и я также имел базовое понимание и удовольствие — и на этой среде под названием AngularJS.

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

Самореклама

Я никогда не был очень хорошим учеником, когда дело доходит до того, чтобы просто сидеть и читать то, что я должен был выучить. Я всегда чувствовал необходимость применять вещи на практике. Вот как я учусь, как я понимаю, как работают вещи, их назначение, их преимущества и ограничения. Поэтому всякий раз, когда мне нужно было выучить что-то новое и большое (будь то новый язык или новый фреймворк), я создавал сторонние проекты.

Когда я изучил HTML, я сделал веб-формы; когда я изучил php и sql, я сделал TaskPal; когда я изучил Vue, я сделал небольшое приложение мастера установки, чтобы помочь людям ускорить процесс установки своих приложений для повышения производительности — всякий раз, когда они получают новый компьютер — как можно быстрее.

Это были не блестящие идеи, но все они помогли мне найти цель тому, что я узнал, и некоторые из них оказались полезными для моего личного использования.

Теперь, почему я говорю вам это? Потому что просмотр такого количества объявлений о работе заставил меня кое-что понять: мне нечем было похвастаться на собеседовании. У меня не было ни диплома колледжа, ни каких-либо «свидетельств клиентов», которые помогли бы мне получить мою первую работу! Я умел программировать, поэтому мог ли я доказать это потенциальному работодателю? Я решил, что мне нужно создать портфолио. Если я не мог показать оценки или сертификат, который ручался за меня, я должен был показать настоящую работу, которая могла.

Я не был достаточно смелым, и у меня не было сильной жилки предпринимателя, чтобы начать взимать плату с людей за мои неквалифицированные услуги, но я начал спрашивать идеи. (Не)удивительно спрашивая: «Какое веб-приложение сделает вашу жизнь проще?» это не то, что большинство людей могут легко ответить на месте.

Итак, я начал с себя: я фронтенд-разработчик. Я должен по крайней мере практиковать то, что проповедую. Поэтому я разработал онлайн-страницу обо мне, чтобы по крайней мере иметь профессиональное присутствие в Интернете.

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

Скала вешалка

Имея личную страницу в сети и несколько проектов за плечами, я был готов! Я не был уверен в себе (честно говоря, уверенность никогда не была моей сильной стороной), но я знал, что должен представить что-то конкретное на возможном собеседовании.

На протяжении многих лет я подавал заявки на десятки объявлений о вакансиях, десятки собеседований и множество отказов. Я так и не привык к собеседованиям при приеме на работу, так как всегда нервничаю, заикаюсь и иногда даже саботирую себя, но я многому научился на них: как подготовить резюме, как подготовиться к собеседованию , как поговорить с кем-то, кто знает намного больше вас, как справиться с отказом и как договориться о предложении. .

Но об этом позже 😉

Спасибо за чтение!

Скоро будет больше™