Наиболее частые ошибки при обучении программированию
Вы, вероятно, не представляете, с какими ловушками/препятствиями можно столкнуться во время обучения. Какие ошибки можно допустить. Говорят, что учиться на ошибках - самый эффективный способ получить знания. Верно, но, с другой стороны, лучше учиться на чужих ошибках, чем на своих. Известно, что обучение программированию требует времени, но глупые ошибки могут не только существенно продлить обучение, но и эффективно помешать ему. В этой статье я постараюсь представить самые распространенные ошибки при обучении программированию.
Отсутствие терпения и систематичности
Терпение - ключ к процессу обучения, независимо от того, какие навыки мы хотим получить. К сожалению, многие люди, мечтающие научиться программировать, испытывают большие проблемы с терпением. Я сам в прошлом не раз начинал изучать один язык программирования, чтобы через некоторое время отказаться от него ради другого, убеждая себя, что теперь я точно справлюсь. То же самое и с технологиями обучения. Много раз я отказывался от изучения одной технологии ради другой, думая, что с этими изменениями мое обучение пойдет намного быстрее. Эффективное обучение - это также поиск в себе подходящей мотивации для усвоения знаний, особенно, когда первый энтузиазм проходит. Когда нам не хватает мотивации и решимости, мы начинаем терзаться и задавать вопросы, вызывающие у нас сомнения. Имеет ли смысл обучение программированию? Это точно для меня? Я не зря трачу время? Есть ли у меня вообще шанс стать программистом? В результате мы часто перестаем учиться. Вы должны понимать, что обучение программированию требует времени. Это также требует систематической работы над развитием ваших навыков программирования, а не кодирование от случая к случаю, время от времени.
Нет практики
Лучший способ научиться программированию - это программирование. Истина стара как мир. Описание проблемы полезно как введение, но необходимо выполнить как можно больше практических задач и со временем реализовать свои собственные проекты. Не верьте, что вы научитесь кодировать, исключительно читая или наблюдая, как кто-то еще программирует. Поначалу будет сложно, но это просто недостаток практики. Написание собственных приложений (от начала до конца) с использованием приобретенных знаний, безусловно, лучший способ изучить программирование. Вы не только эффективно учите кодирование таким образом, но и получаете ценный опыт программирования.
Слишком долго сидел над проблемой
Не тратьте слишком много времени на решение одной проблемы. Если вы несколько часов пытаетесь справиться с задачей и ничего не сдвинулось, то либо сделайте перерыв, либо посоветуйтесь с более опытным человеком. Обращение за помощью не является признаком слабости или некомпетентности. Скорее, это очень важный навык, позволяющий многократно сэкономить кучу времени. Иногда достаточно расслабиться, занять свой ум чем-то другим, отойти на некоторое время от проблемы, а после вернуться к проблеме и, вероятно, найдется решение «свежее». Изучение программирования - это также обучение рациональному управлению временем.
Учить наизусть
Когда я начал изучать программирование, мне было интересно, как люди могут все это запоминать. Однако через некоторое время я обнаружил, что вам не нужно запоминать всю документацию по определенному языку /фреймворку/технологии. Просто нужно знать, когда и как умело ими пользоваться. Стоит понимать, что реализация обширной системы, не заглядывая в документацию и на форумы разработчиков, невозможна. Выучить все наизусть нереально и даже не стоит пытаться, потому что это пустая трата времени.
Done is better than perfect
Стремление к перфекционизму, благодаря которому проект никогда не заканчивается. Обратите внимание, что не всегда удается решить задачу наилучшим образом. В некоторых ситуациях на это просто не хватает времени. Иногда разработчик вынужден отдавать код, который его не полностью устраивает, но который работает. Хотя вы часто хотите потратить немного времени на рефакторинг (просмотр и исправление уже написанного программного кода с целью его улучшения и повышения читабельности), вы этого не делаете, потому что, например, данная версия программного обеспечения должна быть опубликована завтра. Никого это не устраивает, но зачастую это реальность. Важный навык - сосредоточиться на важных для проекта вопросах. Соответствующая расстановка приоритетов задач. Аналогичная ситуация и при создании собственных, некоммерческих проектов. Не все должно быть всегда идеально. Особенно в начале. Однозначно лучше завершить проект, чем постоянно улучшать код или постоянно улучшать функциональность приложения.
Just in time learning
И наконец, самое главное. Вы, наверное, спрашиваете себя, что происходит? Речь идет об эффективном использовании вашего времени и изучении данного языка/фреймворка/технологии /чего угодно, только когда нам действительно нужно использовать его на практике. Кажется простым и очевидным. Зачем учиться заранее? К сожалению, это не совсем так. Мы часто тратим средства на изучение, например, какой-то нишевой технологии, а потом выясняется, что она нам не пригодилась. В самом начале эксперименты - это неотъемлемая часть обучения. Ведь нужно проверить, что вас больше или меньше интересует, какая форма обучения вам больше подходит. В целом, нет ничего плохого в экспериментах с технологиями. Однако большую часть времени стоит посвятить достижению конкретной цели.
Очень важно поставить конкретную цель. Например, я хочу написать настольное приложение, которое позволит мне сохранять контакты в базе данных и отправлять электронные письма. Я хотел бы использовать для этого WPF, шаблон MVVM, протокол SMTP и NHibernate. Затем узнайте, как применять WPF, MVVM, SMTP и NHibernate в контексте вашего приложения. Какой эффект от этого? У вас есть готовый проект, которым можно похвастаться. Вам не нужно получать докторскую степень в вышеупомянутых технологиях. Достаточно хорошо их знать, чтобы решать задачи, над которыми вы сейчас работаете.
Резюме
Надеюсь, вы не сделаете ошибок, описанных в этой статье, или, по крайней мере, значительно минимизируете их последствия. Ошибки - неотъемлемая часть жизни и обучения любому навыку. Вы должны это принять. Рано или поздно придется почувствовать на себе, с какими еще невзгодами вы можете столкнуться при изучении программирования.
