Мне очень понравился пост abbeyperini, и я решил поделиться своими советами после более чем 5-летнего опыта работы разработчиком программного обеспечения.
Готовы? Давайте погрузимся 💪.
1. Освойте основы
Дом, построенный на шатком фундаменте, развалится при малейшей проблеме.
Аналогично, если у вас нет прочных основ:
Вы будете испытывать трудности с JavaScript-фреймворками
Вы застрянете на первой незнакомой задаче
Вы не сможете уловить общие темы между некоторыми задачами
Итак, если вы хотите совершенствоваться как фронтенд-разработчик, сначала освоите HTML, CSS и JavaScript.
2. Поймите как работает веб
За последние несколько лет фронтенд-разработка стала сложнее.
Используется множество инструментов (бандлеры, транспиллеры и т. д.).
Если вы не понимаете, как работает веб (то есть "единственные" поддерживаемые языки — это HTML (для структуры), CSS (для стилей) и JavaScript (для интерактивности)), вам будет сложно понять, почему требуется так много инструментов для запуска вашего кода онлайн.
3. Познакомьтесь со структурами данных и алгоритмами
Структуры данных и алгоритмы часто получают плохую репутацию из-за интервью с программистами 🤦
Тем не менее, важно понимать ключевые из них и их сложности. Без этих знаний вы не сможете писать сложные программы или оценивать эффективность своего кода.
Ниже приведен неполный список структур данных/алгоритмов, которые необходимо знать:
Структуры данных: Стек, очередь, хэшмап, множество, граф и т. д.
Алгоритмы: Динамическое программирование, жадный алгоритм, рекурсия и т. д.
4. Учитесь, делая, а не читая/смотря.
Учебные пособия обманывают вас, заставляя чувствовать, что вы делаете успехи.
Они заставляют вас верить, что вы учитесь и совершенствуетесь, но вы не двигаетесь вперед. Настоящее обучение происходит через практику или преподавание.
Поэтому много практикуйтесь и не попадайте в ад учебников 🔥.
5. Попросите помощи, если застряли
Ты не один.
Скорее всего, рядом с вами есть старшие разработчики, к которым вы можете обратиться за помощью.
Так что не тратьте время на поиски кроличьих нор. Ваша цель - приносить пользу, и вы не достигнете этого, если будете тратить время на решение проблем, которые уже решали другие.
6. Просите о помощи правильно
Прежде чем просить о помощи, убедитесь, что вы сделали необходимый минимум.
Для начала вам следует:
Поискать решения в Google/Stack Overflow/ChatGPT
Понять свою цель и то, что не работает
Вести учет всех ваших неудачных попыток.
Кроме того, не просите помощи по одному и тому же вопросу. Когда вы получите помощь, запишите это где-нибудь, чтобы не забыть 😉.
7. Не копируйте и не вставляйте код, который вы не понимаете.
Это очень плохо по разным причинам:
В итоге вы можете получить небезопасный код, раскрывающий конфиденциальную информацию, например токены.
Вы не сможете легко отладить код.
Вы не сможете объяснить его своим коллегам.
Особенно это касается ChatGPT, поскольку он иногда дает только 80 % точных ответов.
8. Не применяйте слепо каждый совет, найденный в интернете
Я совершил эту ошибку, когда только начинал.
Я наткнулся на совет о том, что мемоизация в React - это зло, поэтому я перестал ее использовать.
К моему стыду, мой код крашнулся в пре-продакшене 😅.
Так что не будьте «старым» мной.
Когда вы видите советы в интернете, задайте себе следующие вопросы:
Применим ли этот совет ко мне?
Находится ли человек, дающий совет, в таком же контексте, как и я?
P.S: Применяйте здравый смысл.
9. Предполагайте добрые намерения: люди хотят, чтобы вы добились успеха ❤️.
Когда ты новичок, часто кажется, что люди только и ждут, чтобы заметить твои ошибки и уволить тебя.
По крайней мере, именно это нашептывал мне мой разум.
Но все наоборот.
Когда компания нанимает вас, она очень хочет, чтобы вы добились успеха. В противном случае это пустая трата времени и ресурсов, которые они вложили в ваше обучение и адаптацию.
Так что верьте, что ваша компания хочет, чтобы у вас все получилось, и не стесняйтесь опираться на своих коллег в поисках поддержки.
10. Сделанное лучше, чем идеально
Стремление к совершенству часто приводит к следующему:
Прокрастинация
Пустая трата времени
Чрезмерная сложность
Поэтому, прежде чем стремиться к большему, постарайтесь выполнить/подтвердить результат на уровне 0.
11. Всегда разбивайте задачи на выполнимые.
Самый простой способ почувствовать себя разбитым?
👉 Пытаться откусить больше, чем можешь прожевать.
Всегда разбивайте проекты на более мелкие задачи.
Это:
Убережет вас от чувства переполненности
Ваши PR-запросы (pull request) будет легче просматривать
Обеспечит ощущение прогресса
12. Будьте уверены, что вам помогут, когда вам понадобится помощь
На начальном этапе вашей работы вашим главным приоритетом является завоевание доверия ваших руководителей.
Они должны быть спокойны, думая о вас.
Они должны верить в то, что:
На вас можно положиться в решении простых задач
Вы обратитесь за помощью, когда это необходимо
Вы будете сообщать о любых проблемах
Вы не должны увеличивать нагрузку на своего менеджера, становясь проблемой, которую он должен постоянно контролировать 🔎.
13. Проявляйте энтузиазм в работе
Энтузиазмом можно компенсировать многие недостатки 🤪.
Когда вы новичок, будьте полны энтузиазма.
Только опытные разработчики могут позволить себе отсутствие энтузиазма.
Никто не хочет постоянно подталкивать кого-то к работе. Наставничество и так достаточно сложно, а необходимость мотивировать кого-то еще больше усложняет задачу.
14. Будьте открыты для изучения новых вещей/инструментов/методов
Фронтенд-разработка постоянно развивается.
Поэтому вы должны быть открыты для перехода на новые технологии.
Не слишком привязывайтесь к своим текущим инструментам. Вместо этого проявляйте желание учиться 😋 .
15. Освойте свои инструменты для разработки 🛠️
Хотите ускорить время разработки?
Освойте свои инструменты разработки:
Ваша IDE (например, VSCode)
Система контроля исходных текстов (например, Github)
Ваш браузер и инспектор (например, инспектор Chrome).
и т. д.
16. Сосредоточьтесь на создании ценности
Не пишите код в вакууме.
Каждый написанный вами код должен приносить пользу:
Вашим клиентам
Вашей компании
Вашим заинтересованным сторонам
Ваше вознаграждение связано с ценностью, которую вы предоставляете, а не с кодом, который вы пишете.
Поэтому приоритет отдавайте написанию эффективного кода, который служит определенной цели 🥅.
17. Защищайте свою работу: она не будет говорить сама за себя
Пожалуй, одна из самых распространенных ошибок начинающих разработчиков (особенно если вы родом из культуры, где ценится скромность).
Вы сделали что-то выдающееся.
Но никто об этом не знает.
👉 Эта работа не будет иметь никакого значения.
Поэтому поделитесь своей работой, написав про нее, выложив демо-версии и т. д.
18. Предпочитайте писать тупой код, а не умный
Код читают гораздо чаще, чем его пишут 📝.
Поэтому воздержитесь от написания умного кода, который сможете понять только вы.
Читабельность > Производительность > Умность.
Вы хотите, чтобы ваши коллеги эффективно работали с вашим кодом, помогали вам при необходимости и т. д.
19. Ваш руководитель - ваш лучший союзник
Если только вам не очень не везет, ваш руководитель всегда готов поддержать ваш рост 📈 .
Как правило, они хотят, чтобы вы преуспевали, вносили свой вклад в работу команды и оставались в компании, а не искали возможности в другом месте.
Поэтому обязательно привлекайте их для достижения своих целей.
Делитесь своими победами, неудачами (в позитивном свете) и разочарованиями, вместо того чтобы бороться в одиночку.
20. Облегчите жизнь своему руководителю
Это очень просто, но часто упускается из виду.
У вашего менеджера, скорее всего, есть проблемы, с которыми вы можете помочь:
Возможно, им нужно добавить документацию, но не хватает времени
Их рабочая нагрузка может быть непосильной, и им нужна поддержка.
И многое другое
Это, вероятно, самый простой способ заручиться поддержкой вашего менеджера (в плане продвижения по службе, повышения зарплаты и т.д.). Они уже знают о задачах и могут непосредственно видеть их эффективность (по крайней мере, для себя).
21. Поймите общую картину, стоящую за вашими задачами
Не будьте кодовой обезьяной 🐒.
Это может сослужить вам хорошую службу в начале пути.
Но чтобы выйти на новый уровень, вам нужно понимать контекст, стоящий за вашими задачами:
Почему они ценны
Почему вам их поручили
Как они вписываются в общую стратегию компании.
Это понимание необходимо для перехода на следующий уровень вашей карьеры.
22. Вносите свой вклад в работу команды (документация, технические беседы, демонстрации и т. д.).
Это выгодно не только компании, но и вам.
Проводя демонстрации, делясь документацией и т. д., вы демонстрируете свои навыки и повышаете производительность команды.
Всегда стремитесь как можно больше повысить эффективность работы команды: это приятно и полезно 😊.
23. Станьте «главным специалистом» в определенной области
Если бы мне пришлось дать всего один совет, то он был бы таким.
В начале вашей карьеры изучение различных областей - это нормально.
Однако для продвижения к среднему/старшему уровню сосредоточьтесь на накоплении опыта в одной области. Это более убедительно для продвижения по службе, чем быть средним в нескольких областях.
Поэтому стремитесь к Т-образным навыкам: широкие знания с глубокой экспертизой в одной области.
24. Развивайте свои коммуникативные навыки
К сожалению, это обязательное условие 😀.
Общение жизненно важно для разработчиков. Нам часто приходится делать следующее:
RFC (запрос комментариев)
Демонстрации
Презентации
Поэтому убедитесь, что у вас есть базовый уровень владения навыками общения.
25. Делайте перерывы, когда вы застряли на проблеме
Трудно сделать паузу, когда вы глубоко погружены в проблему.
Даже спустя 5 с лишним лет работы мне это дается с трудом.
Тем не менее, после перерыва я постоянно генерирую более свежие идеи.
Так что отстранитесь, если вы застряли слишком надолго.
26. Работайте, опираясь на свои сильные, а не слабые стороны
Перестаньте тратить время на исправление очевидных недостатков.
Если на выполнение задачи, с которой другие люди вашего уровня справляются за 5 минут, а у вас постоянно уходит более 1 часа, откажитесь от нее.
Скорее всего, вложение большего количества энергии не сделает вас выдающимся специалистом.
Вместо этого делайте самое необходимое и сосредоточьтесь на том, чтобы максимально использовать свои сильные стороны. Если что-то приходит к вам само собой и является ценным, делайте это чаще 🚀.
27. Возьмите на себя ответственность за свой карьерный путь
Никто не будет планировать вашу карьеру за вас.
А без плана вы будете работать по чужим планам.
Поэтому обязательно составьте план того, чего вы хотите достичь через 1/2/5 лет 💪.
28. Общайтесь с другими разработчиками
Испытываете ли вы сейчас синдром самозванца?
Если да, проводите время с другими разработчиками.
Вы быстро поймете, что не одиноки.
Общение с другими разработчиками имеет дополнительные преимущества:
Вы можете почерпнуть новые приемы/советы.
Вы можете обсудить совместный опыт
Вы можете дополнять работу друг друга
29. Наставляйте молодых разработчиков
Это одно из главных лекарств от синдрома самозванца.
Как только вы начнете наставлять молодых разработчиков:
Вы поймете, что знаете многое
Вы зарекомендуете себя как разработчик среднего и старшего
звена
30. Разнообразьте задачи, которые вы решаете
Если вы постоянно решаете одни и те же задачи, то ваш прогресс застопорится.
Убедитесь, что вы решаете разные проблемы, и тогда вы сможете:
Сравнить различные подходы
Разработать набор инструментов для решения проблем
31. Найдите наставников
Наличие замечательных наставников стало главным событием в моей карьере 🥰.
Наставники поддерживают вас, поскольку понимают ваш путь.
Они подскажут вам, как избежать ошибок, которые совершили они сами.
Как найти наставника?
Общайтесь с более опытными разработчиками, с которыми вы взаимодействуете, задавайте вопросы, обсуждайте их опыт и т.д.
Если у вас нет доступа к старшему разработчику, общайтесь с людьми на платформах вроде X, стройте с ними отношения, а потом обращайтесь 😉.
32. Выбирайте JavaScript-фреймворк и осваивайте его
Лучший фреймворк - это тот, который поможет вам быстрее всего достичь поставленных целей.
Поэтому не обращайте внимания на бессмысленные споры в интернете.
Выберите фреймворк, с которым вам удобнее всего работать или который вам нужно освоить.
И освойте его. Этого будет достаточно.
С прочными основами JavaScript переход на другой фреймворк будет быстрым.
33. Постоянно думайте о пользовательском опыте
Как фронтенд-разработчик, вы должны думать о пользователе.
Даже если у вас есть менеджеры по персоналу или дизайнеры, убедитесь, что пользовательский опыт приятен 😌.
Используйте состояния загрузки, когда это необходимо
Сообщайте о прогрессе в пользовательском интерфейсе
Обеспечьте обратную связь с пользователем
34. Умейте говорить «нет».
Для меня это непросто.
Я в восторге от каждого проекта и с трудом отказываюсь.
Но как разработчик, вы часто получаете больше запросов, чем можете выполнить.
Поэтому расставляйте приоритеты в тех проектах, которые наилучшим образом соответствуют вашим целям 🥅 .
35. Постоянно инвестируйте в свои навыки
Выбрав профессию фронтенд-разработчика, вы сделали выбор в пользу карьеры, в которой необходимо постоянно учиться.
Поэтому продолжайте инвестировать в свои навыки, изучая новые языки, осваивая новые техники и т. д.
36. Когда работы слишком много, сократите количество функций по сравнению с качеством кода.
Чем больше функций у вашего приложения, тем лучше, верно? Верно?
Поначалу это может показаться правдой, но дополнительные возможности приводят к увеличению объема кода. А больше кода означает больше проблем (обслуживание, ошибки и т. д.).
Поэтому, если вас поджимает время, сокращайте количество функций, а не жертвуйте качеством кода.
37. Стремитесь понять своих коллег (дизайнеров, разработчиков бэкенда и т.д.)
Всегда проявляйте уважение к своим коллегам (backend-разработчикам, дизайнерам, PM и т. д.).
Разработка приложений - это командная работа.
Чем больше синергии между членами команды, тем более счастливой и эффективной будет среда 🥰.
Спасибо, что прочитали этот пост 🙏.
Если вас заинтересовала статья, приглашаем в наш телеграм-канал WebWeavers, в котором мы изучаем frontend и дизайн. В нём мы выкладываем интересные и поучительные посты.