Обложка: «Кажется, я так себе разработчик. Как стать лучше?» — советы от пользователей Reddit

«Кажется, я так себе разработчик. Как стать лучше?» — советы от пользователей Reddit

Недавно девушка под ником ReluctantlyHushed рассказала на Reddit, что работает в сфере программирования уже несколько лет, но считает свои навыки недостаточными и хочет стать хорошим разработчиком.

Я работаю в области разработки программного обеспечения последние пять лет, и уже два года в нынешней компании, крупном банке, разрабатываю веб-приложения, которыми пользуются сотрудники. У меня нет образования в области IT, и поэтому мне не хватает фундаментальных знаний, которые есть у других. До сих пор я в основном обходилась тем, что злоупотребляла Google и брала уже существующие куски кода. <…>

Я пыталась изучить алгоритмы обработки данных и шаблоны проектирования, но мне трудно применять их на практике. Я понятия не имею, с чего начать, если получаю задание из этой сферы. Нам [команде разработчиков — прим.] скоро придётся перейти на AWS, и я боюсь, что это вызовет серьёзные проблемы с безопасностью или расходами. Также мы выполняем дополнительные задачи, которые сами же предлагаем, чтобы усовершенствовать рабочий процесс и оставаться на вершине технологий, но я знаю так мало, что не могу внести свой вклад <…>

.

Девушка спросила у пользователей Reddit, как стать хорошим разработчиком, и получила много дельных советов.

LaikaBauss31

Шаг 1: Дышите. Синдром самозванца реален, и все его чувствуют.

Шаг 2: Попробуйте применить к проблеме практический подход. Перечислите все, что у вас хорошо получается. Не думайте «‎Я плоха в X, потому что кто-то другой лучше»‎. Это неправильно, и с такой логикой никто ни в чём не хорош. Пример: «Я отлично ищу ответы в Google <…>»‎.

Шаг 3: Перечислите всё, что хотите знать. Будьте настолько разносторонней, насколько хотите. Пример: «Я хочу узнать больше об AWS»‎.

Шаг 4: Перечитайте созданный список и укажите реальные причины, по которым вы хотите осваивать новое. Подсказка: «‎Я хочу стать таким же хорошим разработчиком, как/лучше, чем Сонсо»‎ — это нездоровая причина.

Шаг 5: Начните разбивать темы, на изучение которых есть веские причины, на более мелкие. Пример: «AWS: обучающие курсы. Зарегистрируйтесь на курсы и каждый день выделяйте время на работу с ними»‎.…> У вас уже есть работа, поэтому сосредоточьтесь на навыках, которые вам для неё нужны. Если условный LeetCode не помогает набить руку для решения рабочих задач, не тратьте на него время. Если, конечно, вам самой не интересно «‎пощёлкать»‎ задачки.

***

WGUCSGrad

<…> Проанализируйте то, что вы не знаете и что вам нужно изучить, чтобы заполнить пробелы. Найдите несколько книг на эту тему или пару хороших курсов. <…> Здесь может быть что-то полезное.
<…> AWS — это массивный набор технологий, <…> и многие компании используют только небольшую их часть. Обычно [работа с AWS — прим.] ничем не отличается от работы с любым другим сервером Linux, для исключений есть шаблоны. Например, если вы собираетесь использовать лямбда-функции, то стоит изучить их. Отсюда вы узнаете, как построить службу доставки пиццы с функциями лямбда и несколькими сопутствующими услугами.

***

Scarmander

Вам нужно работать с людьми более компетентными, чем вы, и понять, почему они хороши. <…> Ваша главная задача — в том, чтобы задавать вопросы и учиться. <…>

***

woops69

Мне помогает рисование картинок и диаграмм. Это хороший способ визуализировать все модули и фрагменты, то, как они взаимодействуют друг с другом и т. д.

***

SocratesTombur

Для начала вам нужна база. Я всегда рекомендую использовать HackerRank, чтобы практиковаться в основах, таких как работа с исключениями, работа с потоками, работа с коллекциями, циклами, переменными, методами, классами, типами и т. д. Самое замечательное, что большинство вещей на сайте можно реализовать с помощью любого из популярных языков объектно-ориентированного программирования.
Далее вам нужно научиться пользоваться инструментами. Это может быть простой скрипт, класс, проект, etc. Сфера применения почти безгранична. Опять же, я бы рекомендовал HackerRank для базовой работы над простыми задачами. <…>

Наконец, приобретите опыт, применяя базовые навыки. <…> Затем вы сможете начать думать о рефакторинге кода, безопасности, шаблонах проектирования, вычислительной эффективности, надлежащей документации, дизайне API и т. д.

***

lkh23o874249plhkjhdl

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

  • в IT-сфере полно ужасных разработчиков;
  • вы хотите учиться, а это почти редкость;
  • вы, вероятно, прекрасно справляетесь с тем, чтобы быть не очень хорошим разработчиком в компании, где просто создаёте внутренний инструментарий.

Я бы посоветовал купить книгу о структурах данных «‎Алгоритмы на Java»‎ Роберта Седжвика и Кевина Уэйна. Я пользовался ею, и она великолепна. Изучите значения «‎О»‎ большое и «‎о»‎ малое, о которых говорится в книге — они пригодятся в работе <…>

Почитайте больше о стеке протоколов TCP/IP, как выполняется компиляция кода, что в это время происходит, а также что происходит, когда вы вводите «‎google.com»‎ в строку браузера. Изучите некоторые сетевые технологии, но не нужно сходить с ума.

Возьмите также книгу о базах данных. Разработка приложений с интенсивным использованием данных <…> даст вам информацию практически обо всём, что нужно знать о популярных сервисах.
Также поговорите с более опытными коллегами, спросите, каковы, по их мнению, ваши слабые стороны, и что вы можете с ними сделать.

Вы заботитесь о своём развитии и не сдаётесь — значит, у вас всё будет в порядке.

А вы хотите стать хорошим разработчиком? Что вы под этим понимаете? Как вы становитесь лучше? Делитесь мыслями и советами в комментариях!

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

Перейти к регистрации

Оригинальный тред на Reddit