Советы юниорам от программиста с 11-летним опытом | Журнал "Вольт"
Пт. Окт 30th, 2020


Перевод статьи «Уроки для начинающих и младших разработчиков после 11 лет программирования».

Изначально я написал советы для начинающих разработчиков и разместил их на Reddit. Статья получила более 50 наград. Поэтому я решил кое-что подправить, ориентируясь на реакцию читателей, и опубликовать это здесь.

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

Не все учебники одинаковы.

Представьте, что вы лабораторная крыса.

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

Но когда вы попадаете в золотую жилу, жадно поглощайте всю полезную информацию и ищите другие руководства в том же источнике, чтобы ускорить свой профессиональный рост.

Когда я начал учиться, я попытался проработать книгу по Java Head First. Но, убив на эти попытки много часов, он не двинулся вперед. Но все в сети наперебой утверждали, что это лучшая книга по программированию всех времен. При этом уроки на YouTube-канале TheNewBoston у меня отлично сработали, хотя сейчас не рекомендуются.

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

Два года спустя я начал изучать алгоритмы, и ВСЕ учебники, которые я читал, были для меня грамотными, пока я не посмотрел видео, объясняющее эту тему в форме венгерских народных танцев. (Видео действительно очень занимательные. Канал AlgoRythmics, – ред. Techrocks).

А потом что-то щелкнуло у меня в голове.

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

Если вы не отрабатываете навыки в конкретном проекте, в вашей долгосрочной памяти ничего не останется.

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

Я не могу сосчитать, сколько раз я проходил такие курсы, как «Введение в Python» на Udacity, Coursera и т. Д., И все равно все забывал.

Это меня бесит.

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

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

Приведу конкретный пример. В Python с len(myList) вы можете получить длину списка. Вы узнаете это, пройдя вводный курс Python от Udacity.

Вернувшись к этой теме через месяц, вы уже не помните, было ли это len, length( ) или myList.size( )

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

Это банальный пример, но я думаю, вы уловили идею.

Новички могут начать с простых, изолированных примеров.

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

Не борись со страхом

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

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

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

Иногда страх уходит по мере накопления опыта.

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

Это нормально.

Если вы хотите добиться прогресса в разработке, вам необходимо помнить:

Это жизнь.

Это бесконечные подъемы и спуски – по синусоиде. Не относитесь ко всему слишком серьезно, иначе потеряете себя.

Последовательность важнее интенсивности

Последовательность – ключ к успеху.

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

Это означает, что 30 минут в день 5 раз в неделю лучше, чем 2,5 часа в неделю. Время одно, но эффект другой.

В общем, работать нужно не только много, но и с умом.

То, что кажется талантом, часто бывает тонкой практикой.

Любой прогресс легко объясняется талантом.

Когда я начал изучать программирование (это был C ++), мои одноклассники не могли поверить, что я никогда раньше не писал код. Они считали меня очень талантливым.

И я просто провел пять часов за компьютером после школы. Я печатал cout << “this is my first program”, увидел, что программа не запускается, нашел причину – отсутствует точка с запятой, переделал, заметил, что предложение напечатано не на той строке, потому что я не добавил endl… Всего этого мои одноклассники не видели.

Эта осознанная практика помогла мне развить «талант».

Талант намного привлекательнее, чем рутинная работа, поэтому никто не хочет слышать, что вы чего-то достигли, потому что много работали. Просто скажи, что ты родился таким талантливым – так будет правдоподобнее.

Но добиться профессионализма в развитии – все равно что научиться игре на музыкальном инструменте.

Врожденный талант встречается крайне редко.

Большинство из них становятся хорошими специалистами, если усердно тренируются. Учился студент или нет, можно увидеть, как только он сядет за клавиатуру.

По дороге встретишь хамов

В каждой области есть своя доля ужасных людей, в этом нет сомнений.

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

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

Вы используете Windows? Так что обязательно познакомьтесь с фанатами Linux, которые считают вас посредственностью.

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

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

Если вы приехали из другой области (в частности, не получили STEM-образование), вы встретите людей, которые мгновенно станут сторонниками чистоты рядов сообщества программистов.

– Нам здесь не нужны гуманитарии!

Они есть в сети. На работе. Иногда, к сожалению, даже в семье.

И вопрос не в том, встретите ли вы таких людей, вопрос в том, когда это произойдет.

Научитесь просто проходить мимо них.

Ситуация постепенно улучшается, но людей по-прежнему нужно просвещать и просвещать.

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

И когда достигнешь вершины, следи за своим поведением, не становись самим таким хамом.

Достичь мастерства в одном

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

Вы изучаете React уже неделю. Тогда JavaScript – две недели. И три недели Laravel.

Прекрати.

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

Выберите одно из двух. Удерживайте эту тему в течение нескольких месяцев (в идеале 6-12), прежде чем перейти к новой.

Это полезно по двум причинам:

  • Вы достаточно глубоко погрузитесь в эту тему и достигнете критической массы знаний, которые подтолкнут вас к мастерству.
  • Хорошо изучив одну технологию, вы можете передать некоторые знания в другую. Изучите Flask, и вы легко освоите Django. Погрузитесь глубже в React, и вы увидите плюсы и минусы Laravel через несколько дней.

Это не значит, что вам обязательно нужно изучать один HTML в течение 6 месяцев или изучать CSS в течение целого года. Это означает, что вам не нужно смешивать изучение Django с Express, React, разработкой игр и iOS.

Смешивая, вы можете узнать многое за короткое время. Но на самом деле не изучайте!

Разработка программного обеспечения – это постоянно развивающаяся область

Она замечательная.

Она раздражает.

Она страшная.

Но если бы мне пришлось выбирать снова, я бы все равно выбрал ее.



Source link

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *