- Прежде всего
- 🙂 Будьте добрыми
- 😎 Будьте гибкими
- Во-вторых
- 👩🎤 Личные навыки
- 🧳 Технические навыки
- 👩🎤 Личные навыки
- Общение
- Проактивность
- Самоучка
- Гибкий
- Командная работа
- Решение проблем
- Управление временем
- 🧳 Технические навыки
- Концепция, дизайн и область методологии
- Кодирование
- Тестирование
- Процесс развертывания программного обеспечения
- Знание иностранных языков
Прежде всего
Прежде всего, постарайтесь сделать несколько вещей: будьте добры и гибки.
🙂 Будьте добрыми
Это не просто качество для того, чтобы стать отличным старшим разработчиком, но и для жизни: будьте добры к человеку рядом с вами, и он будет добр к вам в ответ, ведь доброта порождает только доброту.
😎 Будьте гибкими
Поверьте мне, когда я говорю вам, что я встречал «старших» разработчиков, которые говорили мне: «Это единственный способ, и я не буду делать по-другому, и все». Гибкость в данном контексте — это быть открытым, слушать, пробовать новые вещи и быть готовым учиться у того, кто хочет вас чему-то научить.
Во-вторых
Быть Senior — это не просто кодить или общаться, это сочетание многих вещей, по моему скромному мнению.
Личные и технические навыки. Вы могли видеть это в других записях блога как Soft и Hard Skills, по сути, одно и то же, но лично мне не нравится называть их Soft и Hard skills.
Я хочу поделиться с вами тем, что я считаю важными личными и техническими навыками для работы, вы можете подумать, что некоторые из них не нужны или немного преувеличены, и знаете что, это нормально, потому что быть гибким и принимать то, что другие говорят о вас или ваших навыках кодирования — это часть процесса, чтобы стать отличным Senior.
Итак, давайте сначала посмотрим на личные навыки.
👩🎤 Личные навыки
- Общение
- Проактивность
- Самообучаемость
- Гибкость
- Работа в команде
- Решение проблем
- Управление временем
И затем, Технические навыки.
🧳 Технические навыки
- Концепция, дизайн и область методологии
- Кодирование
- Тестирование
- Процесс развертывания программного обеспечения
- Знание иностранных языков
И это все ключи, которые я считаю принципом работы отличного Senior, и, конечно, я пройдусь по каждому из них, и я знаю, что могу потерять некоторых из вас, но поверьте мне, вы хотите понять каждый из этих ключей, чтобы достичь некоторого стажа 😄.
Короче, меньше разговоров — больше объяснений.
👩🎤 Личные навыки
Общение
Быть коммуникабельным не значит болтать весь день с коллегами, хотя некоторые разговоры приятны. Речь идет о процессе, говорите с вашими дизайнерами, говорите с вашим PO/PM, говорите, что вы думаете, вносите свой вклад своими знаниями, объясняйте другим разработчикам, что можно улучшить, информируйте команду о проблемах, действительно участвуйте в ежедневных встречах (standup), будьте там, присутствуйте, задавайте вопросы, слушайте их.
Проактивность
Вы закончили тикет? Вам больше нечего делать? Что ж, будьте инициативны, спросите коллегу, можете ли вы чем-то помочь, возьмитесь за следующую вещь, прочитайте статью в блоге, протестируйте новую технологию, создайте тикеты по техническим улучшениям, попробуйте что-нибудь, я уверен, вы найдете, чем развлечься как разработчик.
Самоучка
Технологии постоянно меняются, меняетесь и вы, читайте книги, время от времени заглядывайте в tech twitter, следите за влиятельными людьми, читайте блоги библиотек/фреймворков, youtube — ваш друг, там много контента, составьте список того, что вы хотите изучить, не обязательно быть экспертом в том, что вы изучаете, но получайте удовольствие и учитесь!
Гибкий
Честно говоря, это мое любимое, быть гибким поможет вам не только на работе, но и в личной жизни, принимайте критику, размышляйте о ней, меняйтесь, если нужно, или нет, но больше слушайте и уважайте друг друга, будьте добры, он/она может быть вашим коллегой на очень долгое время, лучше иметь друга, чем врага на работе 😅.
Командная работа
Если вы работаете в компании, вы и ваши коллеги находитесь в одной лодке и плывете в одном направлении, если только 1 человек гребет, а остальные 9 смотрят, вы можете не оказаться нигде, и это также довольно несправедливо по отношению к вашему коллеге. поэтому давайте помогать друг другу, на совещаниях или в повседневной жизни проверяйте своих коллег, если есть что-то, в чем вы можете помочь, конечно, распределяйте свое время между помощью коллегам и выполнением своих задач, но будьте рядом, когда вы им нужны.
Решение проблем
Подхватите проблему, дайте несколько предложений, решений или любую альтернативу, если вам ничего не приходит в голову, будьте умнее, скажите, что у вас нет решения, но вы уже сделали заметки, и вы собираетесь изучить и принести возможное решение как можно скорее.
Управление временем
В вашей повседневной жизни может быть так много дел: чтение электронных писем, тикетов и других инструкций, затем несколько встреч, кодинг, помощь коллегам. Я знаю, что это много, но управляйте своим временем с помощью таких инструментов, как google calendar, организуйте свою личную повестку дня, записывайте все, что вы говорите, чтобы потом проверить, пройдите шаг за шагом, дайте оценку, будьте разумными, гибкими, а не потому, что это написано в ваших заметках, что все решено.
ну, я думаю, что это покрывает немного каждого из личных навыков, давайте перейдем к техническим навыкам:
🧳 Технические навыки
Концепция, дизайн и область методологии
В настоящее время существует множество новых разработчиков, многие из которых не знают никаких концепций, проектов и методологий, они просто создают CRUD, не думая о масштабируемости, сопровождаемости и т.д. Понимание того, как язык переводится в двоичный формат, может быть, в некоторых случаях слишком много, но это помогает, убедитесь, что вы знаете основные понятия, такие как функциональное программирование и объектно-ориентированное программирование, синглтон, наследование, полиморфизм, интерфейсы, повторение и т.д., а также узнайте о системах проектирования, agile методологии и многом другом, даже если вы Frontend разработчик, будьте в курсе всего, что происходит в Backend, и наоборот, и убедитесь, что вы знаете наиболее используемые технологии, изучите передовые методы, поймите язык и наиболее полезные из его API, идите дальше!
Кодирование
Несмотря на любой фреймворк, библиотеку или язык, разработчики в первую очередь должны изучить одну вещь: Алгоритм.
Если вы хотите стать старшим разработчиком, не будьте разработчиком языка X, будьте разработчиком алгоритмов, язык можно выучить со временем, алгоритм — это основа всего, и его нужно изучать с самого начала, потому что как разработчик, это то, что вы будете использовать каждый день, иногда, даже когда вы на самом деле не кодите, а думаете.
Тестирование
Я знаю, что для некоторых из вас тестирование — это скучно, оно не направлено на саму функцию, но попробуйте взглянуть на это с другой стороны, что если ваша функция из 50 строк используется по всей кодовой базе, вызывается более 100 раз, и кто-то должен сделать несколько изменений в ней, вероятно, произойдет две вещи, она сломается в остальных 99 местах, или же святой разработчик составил карту всех мест, где она использовалась, протестировал все возможные места и исправил их все, но потратил слишком много времени на нежелательную работу. Тестирование — это обслуживание, убедитесь, что ваш код не сломается, что ваш продукт надежен, прочен и функционален.
Процесс развертывания программного обеспечения
Опять же, вам не нужно быть экспертом DevOps, чтобы хотя бы понимать, как работает процесс развертывания, выполнить его — это другая история, и в наше время вам, возможно, не нужно ничего делать, потому что есть специальная команда, которая заботится о развертывании проектов, но, опять же, изучите непрерывное развертывание, непрерывную интеграцию, процессы сборки и развертывания, артефакты, docker, kubernetes и т.д. Кроме того, каждая компания — это отдельная компания, и способы развертывания могут отличаться друг от друга, однако знание того, как работают эти вещи, сделает вас более надежным.
Знание иностранных языков
По моему скромному мнению, общение (личный навык) является одним из ключевых факторов для того, чтобы быть великим разработчиком, возможно, вторым является владение иностранными языками, потому что оно идет параллельно с общением, но вкратце, выражайте себя, убедитесь, что люди понимают, что вы говорите, старайтесь больше практиковать идиомы, слушать и читать на иностранном языке, без практики вы не достигнете требуемого от вас мастерства, поэтому приложите усилия и будьте также велики в знании иностранных языков.
На этом я закончил все темы, которыми я хотел поделиться, я очень надеюсь, что эти вещи дадут вам некоторое понимание, я также знаю, что я не писатель, и некоторые вещи могут быть немного неправильными, но идея здесь в том, чтобы принести вам некоторые из моих собственных идей о том, что я считаю хорошим набором навыков, чтобы быть отличным старшим разработчиком. не стесняйтесь комментировать, обсуждать и не соглашаться, я весь внимание. желаю вам всего наилучшего и спасибо, что дочитали до конца!