Примечания и мысли для разработчиков до 18 лет

Недавно я решил полностью погрузиться в свою карьеру программиста. То, что я привык считать недостатком — неспособность работать полный рабочий день еще 2 года, — я воспринимаю как преимущество перед конкурентами.

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

  1. Систематическое решение проблем
  2. Глубокие знания предметной области
  3. Владение языком + сопутствующие инструменты
  4. Зрение
  5. Навыки дизайна (как визуальные, так и программно-архитектурные)

Конечно, есть много вспомогательных компонентов. Но это основные пять, на которых я сосредоточен.

Почему я делаю вызовы кода

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

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

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

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

Если бы вы были шеф-поваром и вам приходилось постоянно делать паузу, чтобы посмотреть, как нарезать лук в Google, вас бы, блядь, уволили.

Я думаю, что это фундаментальный недостаток в обучении разработчиков: от нас ожидают, что мы не будем знать, как писать код без поиска в Google.

Лучший подход

Я несколько раз говорил о том, что пытаюсь использовать такие сервисы, как Daily Programmer и Code Wars, чтобы ежедневно практиковать свое ремесло. Обоснование этого кроется в моих пяти пунктах, перечисленных в начале статьи. Выполняя подобные задачи несколько раз в день (моя цель — доходить до 5 каждое утро), вы решаете пункты 1, 3 и 5.

Самый большой прогресс, которого я добился за несколько дней, — это более глубокое понимание выбранного мной языка Python и лучший подход к решению проблем. Чистая плотность сложных аспектов при попытке решить алгоритмическую задачу намного выше, чем при создании клона MVP AirBnB.

Я обнаружил, что меньше использую Stack Overflow, когда работаю, и придумываю более качественные решения. Честно говоря, я просто думаю, что нужно много практиковаться, прежде чем вы попытаетесь создать полноценный сквозной проект.

То, как я решаю это в течение следующих нескольких месяцев, таково;

  1. Вызовы кода, чтобы улучшить решение проблем и знание языка.
  2. Разрабатывайте макеты (веб-сайты, приложения, виджеты, иконки и т. д.) каждый день.
  3. Чтение качественного кода как можно чаще
  4. Прислушиваюсь к своим опытным коллегам и ищу обратную связь
  5. Работа через интернет-ресурсы типа ОССУ

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

Для тех, кто читает…

Что вы думаете об этом? Специально для тех опытных ветеранов; что ты посоветуешь себе и таким как я? А тем разработчикам, которые усердно трудятся… что у вас работает лучше всего и почему?