Вам не нужны учебные курсы по программированию

«Научитесь программировать за 30 дней!», «Вот как я прошел путь от безработного до шестизначного дохода в месяц», «Как разбогатеть на программировании в 2023 году». Слышали это раньше? На самом деле не существует «быстрого и простого способа» научиться кодированию. Учебные курсы по кодированию бесплатно учат тому, что уже есть, но быстро, и они не учат получать удовольствие от кодирования. Если вы готовы рассматривать программирование как нечто большее, чем просто средство заработка, то эта статья для вас.

Кодирование — это технический навык, но это также и творческий навык. Люди часто придают большое значение зарплате, которую получают инженеры-программисты, но люди делают больше вещей с кодом, чем просто… код. Код решает проблемы, творит искусство и приносит жизнь, помимо многих других применений.

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

Примечание. Это не руководство по написанию кода, это руководство о том, как подходить к написанию кода по мере обучения

1. Сосредоточьтесь только на одном языке

«Rust быстрее», «Go — новый бэкэнд», «Python МЕРТВ». Расслабьтесь и не слушайте этих предсказателей судьбы. Когда вы впервые выбираете язык, вы можете быть завалены выбором. Я предлагаю выбрать что-то относительно старое, потому что оно, вероятно, хорошо документировано и удобно для начинающих, например Python или Java (как бы мне ни было больно это говорить), поскольку они являются распространенными языками, используемыми многими компаниями.

После того, как вы выбрали язык, не останавливайтесь, чтобы выбрать другие родственные языки. Например, если вы выбрали Java в качестве исходного языка и слышите, что C++ быстрее, не беспокойтесь, поскольку Java может делать почти все, что вам нужно для того, что делает C++. Не тратьте свою драгоценную энергию и мотивацию на изучение одного и того же снова, особенно когда вы только начинаете. По сути, не изучайте разные языки, которые делают одно и то же: если вы хотите изучать веб-разработку, у вас нет другого выбора, кроме как изучать HTML, CSS и Javascript.

Реальный мир предпочитает глубину широте. Компании гораздо более заинтересованы в том, чтобы вы создали полнофункциональное веб-приложение с нуля, чем в возможности распечатать «Hello World» на 10 разных языках.

2. Разбейте свои ожидания

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

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

3. Кодируйте, когда вы учитесь

Следуя онлайн-руководству, многие из которых бесплатны и полны фрагментов кода, следуйте им, даже если это «кажется чертовски простым» и даже если кажется, что это просто транскрипция, сделайте это. Может быть чертовски заманчиво просто прочитать учебник и кивать головой, думая, что вы все поняли. Но без учебника вы вообще не сможете написать код.

Расшифровка кода из учебника поможет вам укрепить мышечную память, повысит вашу уверенность и интуицию в отношении того, как решать проблемы. И, конечно же, убедитесь, что он компилируется. Если он не понимает, скопируйте и вставьте сообщение об ошибке в Google (или Bing). StackOverflow и ChatGPT — ваши лучшие друзья.

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

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

function MyComponent() {
  <div>
    <p>Wait, why am I not being shown?</p>
  </div>
}

Если вы немного разбираетесь в React, кажется, что он отлично работает, но не рендерится! Почему? Потому что отсутствует оператор возврата. Компонентам React необходимо, чтобы HTML возвращался явно, прежде чем он будет отображаться следующим образом:

function MyComponent() {
  return (
    <div>
      <p>Wait, why am I not being shown?</p>
    </div>
  );
}

Такая простая ошибка, как отсутствие небольшой части кода, но я могу гарантировать, что это произойдет с вами много раз в вашем путешествии. Поэтому всегда убедитесь, что вы правильно изучите основы и основы, чтобы не тратить свое драгоценное время. Даже если вам нужен быстрый хак, стоит потратить некоторые усилия на изучение и изучение того, как функции и концепции работают вместе. Я не могу передать вам, как неприятно было потратить целых 3 дня только на то, чтобы настроить свой собственный сервер!

4. Исследуй за пределами своих границ

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

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

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

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

5. Ставьте перед собой задачи

Наконец, всегда старайтесь доставить себе дискомфорт. Достигнув определенного уровня мастерства, вы, вероятно, сможете делать вещи, которые раньше не могли делать с закрытыми глазами. Однако этот уровень достижений сопровождается стагнацией. Если вы продолжите делать простые вещи, вы в конечном итоге потеряете мотивацию, потому что кажется, что ничто больше не стоит ваших усилий. Вот почему изучение нескольких похожих языков — плохая идея, потому что это становится легко после первого языка, и вы не добьётесь ничего стоящего, несмотря на то, что потратите так много времени на изучение синтаксиса каждого языка.

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

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

Заключение

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

Желаю удачи в остальной части вашего пути к программированию, потому что это только начало.