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

Я программирую с 2011 года. Я начал делать веб-сайты на WordPress, поэтому мои первые дни обучения кодированию в основном проводились в Barnes & Noble (тогда еще Borders), листая страницы PHP. В то время я действительно чувствовал, что читаю на инопланетном языке, и не было никаких сложных руководств на YouTube или Udemy, которые могли бы мне помочь. Поэтому обучение обычно занимало много времени. Я провел много дней в кафе рядом с книжными магазинами, читая и репетируя примеры часами.

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

Примерно в то же время я узнал о митапах — и я подумал, что они действительно крутые, поэтому я решил попробовать опубликовать некоторые для JavaScript на Meetup.com. Я не был уверен, кто «встретится» со мной, но я думаю, что пользоваться веб-сайтом весело, верно?

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

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

В те первые дни — если я хотел, чтобы талантливый спикер зашел к нам в группу, чтобы выступить с докладом о JavaScript; Я часто слышал, что мне придется «прилететь к ним и заплатить им». Я также помню, как спрашивал некоторых своих друзей детства, которые работали в таких компаниях, как Google/Amazon, и они просто проявляли незаинтересованность. Один «друг» сказал мне, что мне придется платить ему 100 долларов в час, так как он больше ничего не делает бесплатно, и хотя мы были друзьями, он не хотел тусоваться с такими «простыми», это подвело бы его.

Меня также довольно часто игнорировали люди, к которым я обращался, несмотря на то, что я писал действительно замечательные вступительные письма. Я помню, как ходил на другие встречи в этом районе, затем пытался поговорить с разработчиками там, и они раздражались, что кто-то вроде «меня» был допущен. Это было не весело — я чувствовал, что другие встречи в этом районе просто было не так весело присутствовать. Я был «самозванцем» для этих старших разработчиков, но лидером «слепых» для моих товарищей, сбитых с толку. Так что я просто продолжал делать «JavaScriptLA» вместо того, чтобы присоединяться к какой-то другой встрече и быть кем-то, кто затерялся в толпе. Для меня это было более познавательно, чем сидеть в аудитории с кучей других разработчиков, оценивающих друг друга.

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

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

Тем не менее, мне все еще сильно не хватало знаний о JavaScript. Вы думаете, что после всей этой работы по организации встреч я стал бы экспертом, верно? НЕТ, вовсе нет. Я все еще был слепым, ведущим слепого.

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

Наконец-то я устроился на работу. Я был так доволен собой, потому что у меня наконец-то появилась работа на полный рабочий день. Я чувствовал себя богатым и какое-то время наслаждался этим чувством. Я ходил в одни из лучших ресторанов Лос-Анджелеса, платил своим друзьям за то, чтобы они тусовались со мной, а также вложил много денег в группу Meetup. Я решил нанять ассистента, чтобы он помогал мне с группой, чтобы я мог больше сосредоточиться на учебной части, а не на информационно-разъяснительной работе. Наконец-то я смогла сосредоточиться и на других аспектах своей жизни, в том числе на том, чтобы стать лучше и получать удовольствие от свиданий. Жизнь была прекрасна, пока через год я не потерял работу.

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

Но мне не удалось легко найти работу. Это было ПРОСТО так же тяжело, как и год назад; если не жестче. Несмотря на то, что я думал, что много знаю о JavaScript, в то время экосистема JavaScript ВЗРЫВАЛАСЬ по сложности. То, что я изучал вчера, теперь было лишь базовым уровнем. На собеседованиях меня спрашивали, знаю ли я о Grunt, Bower, Gulp, Webpack, Angular, Yeoman, всевозможных совершенно новых технологиях, которые я не использовал в своей работе год назад — на тот момент это был минимум для приема на работу. просто знал JQuery и WordPress (что я и делал). Поэтому я сделал все возможное, чтобы изучить и попытаться изучить эти технологии, чтобы я мог говорить о них во время интервью.

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

Поэтому я снова впал в депрессию — и подумал, что мне следует просто перестать быть разработчиком. Мысли пронеслись у меня в голове, что я никто, мошенник, в лучшем случае любитель — просто возглавляю группу, когда не заслуживаю этого. Те разработчики из Силиконовой долины были правы, что уткнулись в меня носом и усмехнулись: «Почему ты здесь, кто тебя впустил?»

«Богатая жизнь», которая у меня когда-то была, ушла, и я снова оказался на мели / на фрилансе. Я чувствовал себя таким униженным.

Несмотря на все это, одно оставалось неизменным. Счета. А еще мое горе. И постоянная критика родителей. Никому не было дела до моих проблем, мне все равно приходилось ежедневно терпеть каждую из этих вещей. Я должен был найти способ оплачивать счета, и это была борьба. Мои родители напоминали мне, что я не инженер, и поэтому я безрезультатно боролся, я должен просто найти другую карьеру.

Я помню, как во время депрессии смотрел «Во все тяжкие», мне было очень жаль себя, как Уолтеру Уайту (который боролся с раком), и, думаю, во время просмотра этого шоу я подумал про себя: хочу ли я просто уйти, как слабак, и умереть? Хочу ли я просто быть в этой бесконечной боли и уйти от себя, как Аарон, принимающий героин в этом сериале? (Я знаю, что этот пост внезапно стал таким мрачным).

Я полагаю, однако, что, увидев, как Уолтер сопротивлялся всю свою жизнь и столько выиграл, заставил задуматься о себе; собирался ли я просто поддаться собственному «раку» (рак в моем сознании говорит о том, что я плохой разработчик/любитель), или мне интереснее просто использовать свой мозг, как Уолтер, и посмотреть, как далеко Я могу идти? Может быть, я все же умру в конце концов, но, по крайней мере, с каким-то ощущением, что я действительно прожил свою жизнь, а не умер сейчас.

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

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

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

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

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

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

Группа Meetup, JavaScriptLA, также с каждым годом становилась все лучше и лучше. Примерно в 2015 году мне пришлось прекратить делать презентации и уехать из Лос-Анджелеса ради моей новой работы в OC. Поэтому я решил создать отделение OC и преподавать в этой области. Youtube тоже был популярен, так что я тоже начал обучать и записывать митапы. Мы росли довольно быстро благодаря новому интересу к JavaScript со стороны новых студентов, изучающих этот язык. Из-за растущего интереса и того, что группа провела так много успешных встреч в прошлом, теперь было легко привлечь других спикеров, чтобы они выступили перед группой (наконец-то!). Заводить друзей со старшими разработчиками теперь было намного проще, и когда я разговаривал с ними по телефону или по электронной почте, чтобы поговорить о группе Meetup, у них также возникало ощущение, что я точно знаю, о чем они говорят, что заставляло их нравится мне и группе еще больше). Так что в некотором смысле я смог заставить группу работать на «автопилоте», что очень помогло мне, когда я учился быть отцом, а также продолжал усердно работать на своей работе.

— -

Я хотел бы сказать, что жизнь теперь «ложе из роз», но это все еще сложно. Я думаю, это моя точка зрения с этим сообщением в блоге. Жизнь разработчика НЕ ​​легка. Я не думаю, что это когда-либо будет легко, и я действительно сомневаюсь, что когда-нибудь снова смогу вернуться к той жизни, где я был «БОГАТИМ» и был загружен деньгами; где я, наконец, смогу сосредоточиться на других аспектах своей жизни и мне больше никогда не придется беспокоиться об «изучении программирования».

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

Сегодня есть еще чему поучиться, и это несколько кажется экспоненциальным или даже факторным с количеством материала, выходящего каждый месяц.

Вот список вещей, о которых наша группа хочет знать только в этом году на 2020 год:

  • React (средний уровень и выше)
  • Стилизованные компоненты
  • Редукс
  • Преобразователь
  • Крючки
  • Темы интервью
  • Вебпак
  • Построение комплексных конвейеров CI/CD
  • Реагировать на родной
  • Флаттер
  • Бросаться
  • Вью
  • ES2020
  • Оптимизация компилятора JavaScript (профилирование памяти JavaScript, низкоуровневые вещи)
  • Микро-интерфейс (добавление React на устаревшие веб-сайты)
  • WebAssembly (Rust и т. д.)
  • Веб-безопасность JavaScript
  • Лучшие практики Node.js
  • Машинопись
  • ГрафQL
  • Гэтсби
  • Синхронизация приложений
  • Gridsome (по сути, Gatsby для Vue)

Это довольно МНОГО вещей, которые нужно пройти, и если вы подумаете о том, что каждый элемент в этом списке является «узлом» в «графе», вы поймете, что каждый из этих узлов также имеет свой собственный набор зависимостей! В конце концов вы попадаете в эту огромную кроличью нору обучения и обучения; тем не менее вы обнаружите, что даже не закончили обход графа, есть еще кое-что, что нужно выяснить.

И тогда вы понимаете, эй, может быть, я не могу сделать все это! И ты будешь прав! Математически верно! У вас просто нет времени.

Но ты сдаешься? Вы просто говорите, эй, я не могу сделать это? Нет, совсем нет.

Как более опытный и мудрый человек, я бы сказал вам — делайте все, что в ваших силах. Речь не идет об изучении ВСЕГО ПОД СОЛНЦЕМ.

Я хотел бы сказать вам, что спустя столько лет работа экспертом по JavaScript — это то, за что вам платят большие деньги. Но это не так. Это что-то значит и помогает вам пережить увольнение с работы; но этого недостаточно. Вы должны также просто любить процесс.

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

Вот где я сейчас. Моя работа и управление группой, быть родителем, а также вести этот блог и изучать YouTube/снимать/монтировать/управлять деньгами (все аспекты управления группой, брошенные на меня) тяжелы. Но я просто наслаждаюсь этим, следовательно, это дает мне больше силы, и я люблю эту жизнь.

То, что я постоянно вижу в качестве шаблона, заключается в том, что поначалу вещи «сложны», но в конце концов вы достаточно сообразительны, чтобы понять, как свести их к чему-то менее сложному; и, возможно, с помощью вашей собственной «рекурсии» или «итерации» вы в конечном итоге сделаете ДЕЙСТВИТЕЛЬНО трудную вещь со временем легкой. Так что доверяйте своему собственному «циклу while». Ты можешь это сделать. Я могу сделать это. Жизнь прекрасна. И игнорируйте всех, кто пренебрежительно относится к вам/насмехается над вами, думает, что вы не принадлежите ему — правда в том, что они, вероятно, проходят через ту же среду «дедовщины», что и вы (и, таким образом, вероятно, вымещают это на вас). Честно говоря, им так же тяжело, как и вам. Для меня настоящий «старший разработчик уровня» — это тот, кто может получать удовольствие от всех частей процесса кодирования, даже от меньших, с такой же радостью, как и от более сложных частей». Поэтому, если вы столкнетесь с каким-то разработчиком, который огорчает вас, улыбайтесь и кивайте, возможно, дайте ему поблажку и займитесь своей собственной работой. Вы слишком заняты, чтобы увязнуть, просто продолжайте.

За ваш успех в 2020 году, и, как всегда, не стесняйтесь обращаться ко мне с любыми вопросами о программировании/JavaScript.

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

Виджей
Главный организатор,
JavaScriptLA
https://javascriptla.net