Программирование - это решение прикладных задач

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

Понимание этого простого дополнения может в корне переменить точку зрения на многие вопросы и на сам процесс обучения.

Если вы возьмете в руки любой самоучитель по каком-нибудь языку программирования, то после короткой исторической и обзорной главы обычно все начнется с того, как определить переменную, как написать цикл, функцию и т.п. Новичка сразу бросают в дебри синтаксических конструкций языка, но забывают объяснить, зачем это собственно надо. Какая польза от этих функций и переменных?

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

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

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

Такой практический проект во-первых даст вам навыки декомпозиции реальной задачи (а не синтетического учебного примера) на подзадачи, а во-вторых даст мощный заряд мотивации. Как только у вас что-то впервые заработает, вы с удивлением поймете, что создали что-то практичное, что вы можете приносить пользу своим трудом. Это очень помогает не бросить самообучение и продраться через какие-нибудь технически сложные или скучные разделы.

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

В главе Выбор учебного проектамы рассмотрим типичные проекты из разных сфер ИТ, которые вы сможете использовать в своем обучении. Хотя конечно всегда лучше выбрать свой, полезный и интересный лично для вас.

Last updated