Самые важные уроки, которые я усвоил.

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

Доверяй, но проверяй

Не верьте всему, что говорят люди. Я мог бы провести 3 месяца, читая случайные вещи в Интернете (у меня есть), и узнать больше в течение 5 минут из интервью Софи Уилсон или из первых 5 страниц книги Дональда Кнута.

Если вы хотите научиться БЫСТРО. проверьте свои источники. Единственная разница между людьми, которые учатся быстро, и людьми, которые учатся медленно, заключается в большом количестве шума и практики.

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

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

Если я соберу все техническое, что прочитал в Интернете, то с уверенностью скажу, что до 50% из них были абсолютно неверны.

Например, если кто-то скажет вам, что что-то нельзя решить без рекурсии… неверно. Каждую рекурсивную операцию можно представить в виде цикла со стеком.

Ваши Основы — ваше величайшее оружие.

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

Не совсем так.

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

HTML, CSS, JS, HTTP, SQL.

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

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

В конце концов, я наткнулся на авторитетный источник (статью, написанную Райаном Далем).

Оказывается, ответ все это время был спрятан прямо у меня под носом. HTTP удовлетворил все мои потребности и даже больше. Ответ на мою проблему был прямо в API браузера, и это заняло всего пару строк кода. Мне не понадобились тысячи раздутых зависимостей, чтобы разобраться.

Мы пишем слишком много кода

Я использую React около 6 месяцев на своей работе. Это создало проблемную привычку.

Когда меня попросили сделать что-то, например, провести домашнюю оценку кода, я подумал: «Как мне это сделать с React?»

К счастью для меня, я ходил на курсы по веб-разработке, так что у меня был опыт. Я создал несколько проектов с vanilla JS. Кроме того, большинство моих реактивных проектов были созданы с помощью ванильного CSS. Несмотря на это, все мои недавние проекты были связаны с React, так что я думал именно об этом.

Затем я получил эту оценку на дом. «Абсолютно никаких рамок»

Меня попросили сделать все как можно легче.

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

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

Оценка заключалась в том, чтобы сделать чистую, профессиональную и современную страницу входа. В итоге я сделал это полностью с помощью ванильного HTML и CSS. Не использовал ни javascript, ни машинописный текст, ни json.config, ни реакцию, ничего.

Что-то в моем мозгу определенно изменилось во время этого процесса. Было приятно и радостно сделать очень красивый современный пользовательский интерфейс с очень небольшим количеством кода и только базовыми инструментами. Мне позволили объединить многие свои знания и сделать что-то действительно элегантное и функциональное.

Если бы я сделал то же самое в React, это могло бы составить тысячи строк JS. С этой реализацией он был таким же красивым и функциональным с точки зрения пользователя и включал всего около 10 строк JS.

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

Есть большая вероятность, что это не так.

Ваши основы решат большинство ваших проблем

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

Я бы нанял парня по теории типов.

Почему?

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

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

Терпение

Саморазвитие и продвижение требует много работы, но не слишком много.

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

Слушать

Если вы нашли авторитетный источник хорошей информации. Боритесь с этим эго и слушайте.

Вместо кучи небольших проектов вам лучше заняться одним хорошим проектом.

Это верно для поиска работы или максимизации бизнеса. Дело в том, что повседневные процессы сложнее, чем вы думаете. Загрузка файла на веб-сайт имеет множество наворотов, которые перемещаются в бэкэнде. Создать новый не всегда легко.

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

Если вы откроете тренажерный зал в один год, затем магазин пончиков в следующем году, а затем автомагазин в следующем году… Крайне маловероятно, что какой-либо из этих бизнесов будет преуспевать.

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

То же самое можно сказать и о веб-сайтах. Если вы возьмете одну простую идею и несколько раз доработаете ее в течение 1–3 лет, она будет выглядеть намного лучше для клиентов и рекрутеров.

Я думаю, что нам всем было бы лучше, если бы мы вкладывали более последовательные и долгосрочные инвестиции.

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

Наблюдайте за тем, что люди делают, а не за тем, что они говорят

В любом конкретном действии есть скрытый фактор. Это стимул, и люди никогда не говорят об этом вслух, если только им это не выгодно.

Мне нравится представлять, что все происходит по какой-то причине. В принципе ничего не происходит случайно.

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

Иногда люди делают хорошие вещи, потому что пытаются стать более альтруистичными.

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

Если вы видите, как ваш генеральный директор идет на встречу и устраивает отличное шоу для своего клиента, вероятно, все это часть отработанной рутины, которая дает какие-то результаты.

Многие другие случайные явления будут иметь гораздо больше смысла.

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