5 вещей, которые я хотел бы знать, когда впервые изучал программирование
Начинать свой путь в программировании увлекательно, но легко попасть в ловушки, замедляющие ваш прогресс. Понимая типичные ошибки, которые допускают новые программисты, вы с самого начала настроитесь на успех. Вот пять ошибок, которые я совершил, на которых вы можете поучиться.
1. Не сосредотачивайтесь на синтаксисе, смотрите на логику
Когда вы учитесь программировать, естественно беспокоиться о правильности синтаксиса. Символы, ключевые слова и структура любого языка поначалу могут показаться пугающими, поэтому вы можете ошибочно сосредоточиться в первую очередь на запоминании синтаксиса. Однако это может оказаться контрпродуктивным, особенно потому, что сам по себе синтаксис не поможет вам понять, как и почему работает код.
Что действительно важно в программировании, так это логика, процесс разбиения задачи на этапы, которые может выполнить компьютер. Синтаксис — это просто способ выразить эту логику так, чтобы машина могла ее интерпретировать. Рассмотрим классическую задачу для начинающих FizzBuzz. Пытаясь решить эту проблему, новичок, ориентированный на синтаксис, может увлечься тем, как структурировать операторы if.
Когда я был новичком в программировании, я слишком много внимания уделял изучению синтаксиса, особенно скобок, точек с запятой и структурированию кода. В результате, когда я пытался решить проблемы, я сталкивался с трудностями. Конечно, я знал, как использовать условные выражения и циклы, но использовать их для реализации решения было вне моей компетенции.
Вместо этого мне было бы полезнее сосредоточиться на логике решения. Понимание этой логики означает, что я могу адаптировать это решение к Python, JavaScript или любому другому языку. В реальном программировании вы часто ищете нюансы синтаксиса или библиотечные методы, даже будучи опытным разработчиком.
2. Вместо изучения нескольких языков, сначала освойте один
Многие новички думают, что знание нескольких языков программирования делает их лучшими программистами. Но на самом деле глубина знания одного языка гораздо ценнее поверхностного понимания нескольких. Переключение с языка на язык без овладения каким-либо из них может привести к путанице и неэффективности.
Когда вы сосредотачиваетесь на одном языке, вы получаете прочную основу для основных концепций программирования, таких как переменные, циклы, условные выражения, функции и объектно-ориентированное программирование. Эти концепции составляют основу программирования, и как только вы их глубоко усвоите, вы сможете относительно легко применять их к любому языку.
Представьте, что вы начинаете с Python, потому что он удобен для начинающих и широко применим в таких областях, как веб-разработка, обработка данных и автоматизация. Сосредоточившись исключительно на Python, вы сможете освоиться с основными принципами программирования и начать создавать проекты, закрепляющие эти концепции.
Я начал свой путь программирования с C. Вскоре мне это наскучило, и я перешел к веб-программированию. Затем я увидел популярность Python и начал его изучать. В конечном итоге я не смог выучить ни один из них должным образом. В то время я думал, что знание нескольких языков означает, что я смогу использовать их все, когда мне понадобится. Однако когда дело дошло до их применения, я либо полностью провалился, либо написал довольно плохой код. Это потому, что я не знал ни промежуточных, ни продвинутых понятий ни одного языка.
3. Не позволяйте урокам связать вас
Начав изучать программирование, легко втянуться в цикл просмотра уроков один за другим, думая, что вы добиваетесь прогресса. Но простое наблюдение или следование не развивает навыки, необходимые для написания собственного кода или решения реальных проблем. Это то, что обычно называют «учебным адом», когда вы продолжаете потреблять информацию, не применяя ее на самом деле.
Реальность такова, что программирование — это навык, основанный на практике. Точно так же, как вы не можете научиться играть в футбол, наблюдая, как играет кто-то другой, вы не можете стать программистом, не занимаясь программированием. Предположим, вы изучаете Python и находите серию руководств, которые помогут вам создать трекер расходов. Вы программируете вместе с инструктором, и к концу видео у вас есть работающий калькулятор. Это похоже на прогресс.
Большой ошибкой, которую я совершил, было то, что я собрал различные видеоуроки, курсы, блоги и другие ресурсы и начал их поглощать. Я смотрел видео за видео, заканчивал плейлист за плейлистом и по пути только копировал код. Поскольку я только следовал инструкциям, мне было трудно, когда меня просили создать приложение или даже небольшой проект с нуля.
Когда вам не нужно принимать решения или решать проблемы самостоятельно, вы не можете усвоить логику проекта. Вместо этого, после просмотра первой части руководства, попробуйте сделать паузу и создать более простую версию проекта. Работа даже с упрощенной версией без прямых инструкций поможет вам понять, как структурировать и решать проблемы самостоятельно.
4. Учитесь на практике
Когда дело доходит до программирования, ничто не сравнится с «обучением на практике». Теоретические знания и пассивное обучение могут дать вам фундаментальное понимание, но только практический опыт укрепит эти знания и поможет вам стать уверенным программистом. Обучение на основе проектов, при котором вы активно создаете и строите, поможет вам развить навыки программирования в реальных условиях.
Проекты могут быть такими небольшими, как приложение со списком дел, приложение для викторин или простая игра. Каждый проект, который вы пытаетесь реализовать, ставит перед вами новые задачи, заставляя искать конкретный синтаксис или решать проблемы на месте. Сосредоточившись на проектах, вы обретаете уверенность в решении реальных проблем и начинаете видеть себя независимым программистом, а не просто последователем учебных пособий.
Однажды я провел эксперимент. Я хотел изучить PHP Laravel. Вместо того, чтобы обращаться к руководствам, я решил работать над проектом с самого начала. Я скачал проект с открытым исходным кодом и начал читать его код, настраивая его тут и там, чтобы увидеть изменения. Это был другой подход к тому, как люди обычно изучают язык. Интересно, что за короткое время я узнал довольно много. Вскоре я мог писать код PHP и добавлять новые функции в реальный проект.
5. Незнание, что все в порядке
Когда вы впервые начинаете программировать, легко почувствовать, что вам нужно знать все. Каждая функция языка, каждая структура, каждый инструмент. Но пытаться выучить все это заранее – это сложно и нереально. Даже самые опытные разработчики не знают всего, и это совершенно нормально. Программирование — это постоянно развивающаяся область, и всегда будет чему учиться. Принятие этого факта может снять с ваших плеч огромный груз и помочь вам сосредоточиться на постоянном прогрессе, а не на попытках овладеть всем сразу.
Программирование предполагает широкий спектр навыков: синтаксис, алгоритмы, структуры данных, платформы, методы отладки, библиотеки и многое другое. Попытка охватить все сразу ослабляет ваше внимание и не дает вам углубиться в какую-либо одну область. Отсутствие глубины затрудняет создание проектов или решение реальных проблем, поскольку вы постоянно перескакиваете с одной новой темы на другую, не понимая полностью ни одну из них.
В моем случае я часто перегружал себя, пытаясь прочесать каждую тему на языке программирования, пока не перегорел. Чем больше я пытался учиться, тем больше мне казалось, что я ничего не знаю. Лучший подход — сосредоточиться на нескольких основных навыках и постепенно расширять свои знания по мере приобретения опыта. Начните с основных понятий. Как только вы освоитесь, переходите к более сложным концепциям. Создавая проекты, вы, естественно, будете сталкиваться с чем-то новым, чему можно научиться, но это будет происходить в контексте, где они будут полезны.
Обучение программированию — это путь, полный проблем, и ошибки — это просто часть процесса. Воспринимайте эти неудачи как возможность для роста и помните, что каждый эксперт когда-то тоже был новичком. Помните, что каждая строка кода, которую вы пишете, приближает вас к тому, чтобы стать тем программистом, которым вы хотите быть.