paint-brush
Не существует коротких путей к получению работы разработчика: научитесь программировать медленнок@wagslane
2,954 чтения
2,954 чтения

Не существует коротких путей к получению работы разработчика: научитесь программировать медленно

к Lane Wagner5m2023/09/13
Read on Terminal Reader
Read this story w/o Javascript

Слишком долго; Читать

Мне нужна работа разработчика через 3 месяца; какой лучший способ это сделать? Не существует короткого пути к получению работы.
featured image - Не существует коротких путей к получению работы разработчика: научитесь программировать медленно
Lane Wagner HackerNoon profile picture
0-item

С момента запуска Boot.dev меня завалили тем, что я называю «вопросами из зыбучих песков». На первый взгляд вопрос, зыбучий песок, кажется хорошим вопросом. Если бы вы могли ответить на него, это перебросило бы вас с того места, где вы находитесь (ночная смена у Венди), туда, где вы хотите быть (рассказывая друзьям, что вы работаете в Нетфликс, кстати).


Вопросы «Зыбучих песков» направлены на поиск кратчайших путей.


Мне нужна работа разработчика через 3 месяца; какой лучший способ это сделать?


Я вижу, что вы заложили 20 курсов в свой курс обучения серверной части, но *подмигивает* какие из них я могу пропустить?

Что не так с ярлыками?

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


Теоретически мини-максимизация образования кажется надежной стратегией, но на практике она просто не работает.

Почему? Потому что пункт назначения неизвестен .


Алгоритм Дейкстры хорош, если вы знаете, куда идете. Если нет, то вам нужно что-то другое.

Никто не знает, куда они идут

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


Я проходил собеседования по всякой ерунде, от встроенных систем до фронтенд-разработки. Да, оказывается, мой курс Пролога не очень помог мне на первом собеседовании, но знаете что? Это не повредило , и теперь, когда кто-то говорит: «Это декларативная система», выражение моего лица не выдает невежества.


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


  • У каждой компании есть свой сложный технологический стек.

  • У каждого менеджера проекта есть своя версия «agile».

  • У каждого менеджера по найму есть свой собственный процесс собеседования, состоящий из 7 шагов.

  • Каждая работа требует разных тайных знаний.


Вы понятия не имеете, чем будете заниматься изо дня в день на своей первой работе, когда начнете учиться программировать. Я слышу, как люди говорят что-то вроде: «Я даже никогда не использую свои навыки DSA на работе», и при дальнейшей проверке оказывается, что они «разработчики WordPress».

Значит, меня не должен интересовать кратчайший путь?

Вам следует; это просто не там, где вы думаете, что найдете его. Самый короткий путь к работе программиста не предполагает минимизации количества вещей, которые вам нужно изучить и создать. Такое мышление приводит к гораздо более длительному и утомительному путешествию. Что-то вроде этого:


  1. Перейдите непосредственно в веб-фреймворк (вероятно, Next.js, поскольку у вас базовые навыки).
  2. Найдите у себя талант к созданию приложений TODO
  3. Поймите, что вы не сможете создать «привет, мир» без учебника.
  4. Попытайтесь исправить это, проведя больше уроков.
  5. Прочтите в Твиттере, что акшаулли Rust — лучший язык
  6. Признайте поражение от рук проверяющего
  7. Повторите шаги 1–4 n раз, где nd4_roll * your_stubbornness

Кратчайший путь (или, по крайней мере, более короткий путь) обычно выглядит так:

  1. Изучите основные концепции программирования/CS на каком-либо языке.

  2. Предварительно решите, каким типом программирования вы хотите заниматься (интерфейс, бэкенд, мобильное устройство и т. д.).

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

  4. Никогда не прекращайте учиться и строить, пока ищете работу


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

Не бойся работы

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

Dogecoin на Луну?

Давайте будем на 100000000% честными. Некоторые люди ищут старую добрую схему быстрого обогащения. После нескольких недель борьбы с циклами они сдаются и приобретают бота для торговли криптовалютой на базе искусственного интеллекта на Fiverr. Не будьте такими, как эти люди.


Стать инженером-программистом — это НЕ схема «быстрого обогащения». Это схема «высший средний класс – медленно».


Хитрость в том, чтобы «сделать это»? Вам действительно нужно поправиться.


Таким образом, вместо беспорядочного копирования и вставки из StackOverflow, чтобы «исправить» следующую ошибку, с которой вы столкнетесь, потратьте дополнительные минуты, чтобы понять, что это значит . Я не могу сказать вам, сколько PR я просмотрел, которые что-то «исправляют», но это всего лишь патч к патчу, потому что разработчик так и не понял основную проблему.


Например, бывший Java-разработчик (это всегда Java-разработчик) обнаруживает, что иногда эта функция (в Go) паникует:

 // sendEmail sends emails, but sometimes panics func sendEmail(e *email) error { // ... }

Они идут прямо в Google и обнаруживают, что панику в Go можно «решить» с помощью recover . Итак, они открывают пул-реквест:

 func sendEmail(e *email) error { defer func() { if r := recover(); r != nil { log.Println("recovered from panic in sendEmail") } }() // ... }

Это вроде работает? Однако лучший разработчик постарается понять и исправить основную проблему в коде. Они добавят проверки nil или вообще перестанут использовать указатели для этой функции...

 // now sendEmail never panics func sendEmail(e email) error { // ... }

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

Это не тот совет, который ты хотел

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


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


Также опубликовано здесь .