10 вещей, которые должны знать начинающие разработчики

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

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

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

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

Тяжело устроиться на первую работу

Неважно, какой путь вы решите выбрать; получить эту первую работу не так просто, как они думают. Все ищут двухлетний опыт работы, полное портфолио и нужные модные словечки.

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

Вы будете думать, что вы глупы

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

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

Ты все время сидишь

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

Однако, если вы простой смертный, вставающий каждые 90 минут, МАКС критично. Вам нужно двигаться в течение дня. Вставайте, совершите короткую прогулку, растяжку, бег на месте — все, что вам подходит. Мне нравится тратить 3–5 минут на движение на каждый час сидения.

Легко переедать бездумно

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

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

Вы должны продолжать учиться каждый день

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

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

Многозадачность — это просто часть жизни

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

Как разработчик, жонглирование кучей разных типов работы и клиентов — вполне реальная вещь. Для меня нормально иметь 4–6 разных проектов, которые нуждаются в любви каждый день. У вас должна быть возможность переключать передачи и сосредоточиться на одной задаче, над которой вы сейчас работаете. Это требует практики, но она приходит.

Несколько дней все срочно

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

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

Это может быть очень скучно

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

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

Ваша работа - решать проблемы

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

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

Вы не можете просто кодировать

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

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

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

Только начинаете? Нужен совет? Напишите мне, помогу, чем смогу!