Перевод статьи «Don’t Make These Mistakes Whilst Learning How to Code».
Умение программировать это очень ценный навык в наше время. Программисты пользуются повышенным спросом на рынке труда, так что это ваш шанс получить хорошо оплачиваемую работу.
Приступить к изучению основ программирования может быть страшновато, но по мере продвижения вперед ваши знания начнут упорядочиваться, и вам станет легче продвигаться к вашим целям.
Перед человеком, желающим построить карьеру в сфере разработки ПО, открывается много возможностей. Взять хотя бы языки программирования: их настолько много, что легко растеряться. И каждый язык обладает своими достоинствами и особыми подходами. Здесь важно все-таки остановить свой выбор на каком-то одном варианте и достичь хорошего уровня знаний, прежде чем приступать к следующему. Таким образом ваши знания будут более цельными и вы сможете применять свои навыки на практике.
Давайте рассмотрим ошибки, которые часто допускают программисты, когда приобретают новые навыки или учатся программированию с нуля.
Выбор неподходящего учителя или наставника
Учителя и наставники играют очень важную роль в учебном процессе, особенно если вы не привыкли учиться самостоятельно. И если при этом вы остановите свой выбор на первом попавшемся учителе, это может сыграть с вами злую шутку. У каждого наставника собственный опыт и набор знаний и навыков, которыми он может поделиться с вами. Выбирая учителя, следует оценивать, может ли он научить вас тому, что нужно именно вам.
Если вы отдаете предпочтение онлайн-курсам, выбор тоже нужно делать обдуманно. Количество онлайн-ресурсов растет экспоненциально, а по качеству они очень отличаются друг от друга. Изучите, что предлагает рынок, узнайте, можно ли пройти какие-то пробные занятия до того, как запишетесь и оплатите весь курс. Дело в том, что в интернете хватает курсов, обещающих отличные результаты, но в реальности лишь поглощающих ваше время и деньги.
Технологии постоянно развиваются, и выбор источника знаний — одна из вещей, определяющих ваш успех.
Также не стоит забывать, что ни один учитель или курс не научит вас всему. Определенно стоит консультироваться у разных наставников, чтобы иметь возможность услышать разные точки зрения и познакомиться с разным опытом.
Одновременное изучение разных вещей
Найти, с чего начать изучение программирования, довольно просто. Выбираете язык и начинаете с его основ, а затем углубляетесь. Вообще, в сфере разработки глубокие знания важнее широких. Отбирая кандидатов, работодатели отдают предпочтение хорошему пониманию одного языка, а не поверхностному знанию многих.
Поэтому имеет смысл изучить несколько ресурсов, посвященных выбранной вами технологии, чтобы рассмотреть ее под разными углами и узнать о разных методах ее использования для решения практических задач.
Помните, что вам необходимо практиковаться и закреплять знания, чтобы в конечном итоге научиться создавать проекты не по руководствам.
Большую часть знаний вы получите в ходе учебы, от наставников или из других источников, но также вы очень многому научитесь уже от коллег, работая над реальными проектами. Общение с коллегами, которые разбираются в выбранном вами языке программирования, позволит вам заполнить пробелы в знаниях и развить приобретенные навыки.
Недостаточно изученные основы
Я даже передать не могу, насколько важно вникнуть в то, как вообще работает компьютер, хотя бы на самом базовом уровне, — до того как погрузиться в код. Если вы изучите, как и почему компьютеры и программы общаются между собой, вы сможете понять, почему существует так много языков программирования, и каким образом каждый из них может пригодиться в реальном проекте.
Прежде чем переходить к техническим стекам, нужно изучить фундаментальные основы (ответы на вопрос «почему» в каждой области). Технические стеки и их составляющие приходят и уходят, а основные технологии и принципы работы программ остаются. Когда живешь в таком изменчивом мире, лучше уделить внимание более постоянным вещам. Эти знания будут пригождаться вам в течение более длительного времени, в отличие от «горячих технологий», построенных на все тех же основах.
Разобравшись в том, что лежит в основе всех языков программирования, — в переменных и их областях видимости, функциях, циклах, условиях, массивах, типах данных и т. п. — вы получите возможность быстро переносить эти знания на новые языки и, следовательно, изучать их гораздо быстрее.
Хорошей аналогией может послужить дерево. Представьте, что корни и ствол дерева это основы программирования, а листья — популярные сегодня технические стеки. Листья каждую весну появляются новые, а ствол и корни остаются все те же.
Поэтому не стоит бросаться сразу изучать технологии-однодневки. Лучше сосредоточиться на знаниях, которые лежат в основе всего остального. Это позволит вам в будущем более быстро и легко адаптироваться к любым изменениям в технологиях.
Бултыханье в болоте туториалов
Просмотр онлайн-руководства это верный способ создать собственную копию существующего проекта, причем буквально перерисовать его под копирку. Но оптимальный способ приобрести новые навыки и опыт — применять полученные знания в собственном проекте.
Работа над личным проектом не будет такой гладкой и быстрой, как вам бы хотелось, и это вполне ожидаемо. Какую-то часть времени вы будете тратить на то, чтобы проанализировать сделанное и подумать, что можно улучшить в следующей итерации.
Когда вы создаете копию проекта по онлайн-туториалу, это вам, безусловно, не вредит. Но настоящую пользу вы получите, когда попробуете создать что-то самостоятельно.
Отсутствие конкретных целей и сроков
Цели и сроки их достижения очень важны: при работе над реальными проектами вы постоянно будете иметь с ними дело. Например, выпускать конечный продукт нужно будет к определенному сроку, с соблюдением всех требований заказчика. Привыкнув работать по расписанию, ставить себе цели и сроки, вы войдете в рабочий ритм и сможете оценить, насколько вы способны работать над настоящими проектами, с настоящими дедлайнами.
Вы должны научиться оценивать проекты, учитывая их размеры, и устанавливать реалистичные сроки их выполнения. Кроме того, нужно научиться ставить маленькие, промежуточные цели. Достигая их, вы будете поддерживать свою мотивацию. Также эти промежуточные цели будут служить вам своего рода метками, по которым вы сможете определять, не выбились ли вы из расписания.
Если при работе над проектом что-то вас затормозит, наличие плана позволит вам определить, насколько далеко вы уже продвинулись, и откорректировать конечные сроки.
В реальной работе над проектами у вас довольно часто будут возникать проблемы и непредвиденные ситуации, блокирующие ваше продвижение. В таких случаях вам придется обсуждать возникшие проблемы с работодателем или клиентами, и умение четко определить, насколько сдвинутся сроки, поможет сохранить хорошие отношения с ними.


Неумение объяснять технические концепции простыми словами
Клиенты нуждаются в регулярной и четкой коммуникации, им нужно знать, что работа над проектом идет по плану, а конечный продукт будет соответствовать их требованиям. Технический жаргон, используемый программистами, часто сбивает с толку неопытных людей, поэтому нужно внимательно следить за тем, чтобы ваша речь была понятной и краткой.
В сфере разработки конечный пользователь (или клиент) заинтересован в продукте, а не в процессе его создания. Поэтому когда вы рассказываете клиенту, что «бэкенд-сервер при обработке команды обнаружил ошибку на 12 строке», это ему ни о чем не говорит. Но если вы скажете, что «возникли проблемы с загрузкой документа, мы постараемся решить эту проблему в течение часа», клиент получит всю необходимую ему информацию.
Умение объясняться понятным языком сыграет вам на руку и в тех случаях, когда вы будете представлять потенциальным клиентам какую-нибудь новую концепцию. Если вы понимаете, как работает ваша система, но не можете объяснить ее преимущества клиентам, они вряд ли сочтут ее интересной.
Нежелание обращаться за помощью
Когда вы чего-то не понимаете, следует обязательно обращаться за помощью. Программисты особенно хорошо работают в командах, и часто товарищи по команде могут помочь в решении возникших проблем. Поэтому не стоит ломать голову, сидя в одиночестве. Обсудите проблему с более опытными товарищами, обратитесь к наставнику, который сможет ответить на ваши вопросы и ускорить ваше обучение.
Когда просите о помощи, кратко изложите проблему и расскажите, что вы уже предпринимали для ее решения — это очень поможет в поиске верного пути.
Всем программистам случается столкнуться с проблемой, которую они не могут решить самостоятельно, в результате им приходится обращаться за помощью к коллегам. Это совершенно нормально. А для джуниора вопросы, ошибки и извлечение уроков из ошибок — вообще естественный путь становления.
Заключение
Каждый раз, когда вы решаете изучить что-либо, вы одновременно отказываетесь (хотя бы временно) от изучения чего-то еще. Но не все предметы изучения одинаково полезны. Поэтому имеет смысл уделить немного времени первоначальному ознакомлению с темой и уж затем решить, стоит ли вообще тратить время и силы на ее изучение.
Чтобы преуспеть в учебе, нужно делать упор не на количество, а на качество, т. е., стараться учиться как можно более эффективно. Это тоже навык, и он применим не только в программировании. Тщательно отбирайте темы для изучения и учебные ресурсы, внимательно подходите к выбору наставников. Все это требует времени, но таким образом вы сможете быстрее приобрести действительно нужные навыки.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]