С момента запуска Boot.dev меня завалили тем, что я называю «вопросами из зыбучих песков». На первый взгляд вопрос, зыбучий песок, кажется хорошим вопросом. Если бы вы могли ответить на него, это перебросило бы вас с того места, где вы находитесь (ночная смена у Венди), туда, где вы хотите быть (рассказывая друзьям, что вы работаете в Нетфликс, кстати).
Вопросы «Зыбучих песков» направлены на поиск кратчайших путей.
Мне нужна работа разработчика через 3 месяца; какой лучший способ это сделать?
Я вижу, что вы заложили 20 курсов в свой курс обучения серверной части, но *подмигивает* какие из них я могу пропустить?
Теперь я хочу внести ясность : нет абсолютно ничего плохого в желании пойти более коротким путем к своей карьерной цели. Все остальное было бы безумием. Если бы существовала таблетка, которая за одну ночь превратила бы вас в старшего разработчика, я бы посоветовал вам воспользоваться этим придурком.
Теоретически мини-максимизация образования кажется надежной стратегией, но на практике она просто не работает.
Почему? Потому что пункт назначения неизвестен .
Алгоритм Дейкстры хорош, если вы знаете, куда идете. Если нет, то вам нужно что-то другое.
Технологическая сцена чертовски сложна. В колледже я выучил около десяти разных языков программирования , и даже через три года после получения степени я все еще не знал, что в конечном итоге буду работать серверным инженером, пишущим Go.
Я проходил собеседования по всякой ерунде, от встроенных систем до фронтенд-разработки. Да, оказывается, мой курс Пролога не очень помог мне на первом собеседовании, но знаете что? Это не повредило , и теперь, когда кто-то говорит: «Это декларативная система», выражение моего лица не выдает невежества.
Если бы вы точно знали, какие концепции вам необходимо освоить, чтобы пройти первое собеседование, вы смогли бы найти эффективный путь. Проблема в том, что не существует точного набора знаний, которого всегда будет достаточно, чтобы пройти все возможные первые собеседования.
У каждой компании есть свой сложный технологический стек.
У каждого менеджера проекта есть своя версия «agile».
У каждого менеджера по найму есть свой собственный процесс собеседования, состоящий из 7 шагов.
Каждая работа требует разных тайных знаний.
Вы понятия не имеете, чем будете заниматься изо дня в день на своей первой работе, когда начнете учиться программировать. Я слышу, как люди говорят что-то вроде: «Я даже никогда не использую свои навыки DSA на работе», и при дальнейшей проверке оказывается, что они «разработчики WordPress».
Вам следует; это просто не там, где вы думаете, что найдете его. Самый короткий путь к работе программиста не предполагает минимизации количества вещей, которые вам нужно изучить и создать. Такое мышление приводит к гораздо более длительному и утомительному путешествию. Что-то вроде этого:
n
раз, где n
— d4_roll * your_stubbornness
Кратчайший путь (или, по крайней мере, более короткий путь) обычно выглядит так:
Изучите основные концепции программирования/CS на каком-либо языке.
Предварительно решите, каким типом программирования вы хотите заниматься (интерфейс, бэкенд, мобильное устройство и т. д.).
Изучите основы такого рода программирования с использованием технологий, хорошо подходящих для этого.
Никогда не прекращайте учиться и строить, пока ищете работу
Не поймите меня неправильно, этот второй путь все еще неблизок. Программирование — дело непростое; извините, если вам так сказали, но если вы готовы приложить усилия, вы сможете избежать бесцельной прогулки по 9-му кругу учебного ада.
Люди тратят тысячелетия, пытаясь найти кратчайший путь обучения или пытаясь избежать изучения вещей, которые «они никогда больше не будут использовать». Они прекрасно тратят месяцы или годы , абсолютно ничего не изучая, чтобы избежать ненужной работы. Почему бы не стиснуть зубы и не сделать ничего ненужного? рискнуть потратить несколько дней на изучение чего-то, что не имеет прямого отношения к работе, которую вы в конечном итоге получите?
Давайте будем на 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 { // ... }
Вы хотите иметь тенденцию становиться лучше, а не доходить до конца. Нет никакого «конца». Слишком много всего нужно изучить. Объем всей разработки программного обеспечения превышает объем глобального пространства имен вашей последней программы.
Привести себя в форму, отказаться от зависимости, построить бизнес и, да, получить первую работу разработчика — все это сложно . Не усложняйте себе задачу, тратя время на поиск ярлыков.
Изучите вечно актуальные фундаментальные вещи, создавайте проекты, которые вас интересуют , и вы будете поражены тем, как далеко вы сможете продвинуться всего за год или два последовательных усилий.
Также опубликовано здесь .