Как мы будем учиться программировать?



P101_cover.jpg

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


hello world csharp
пример на языке C#, скриншот с сайта Microsoft

Так вот, товарищи, это как раз то, чего мы делать не будем.

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

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

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

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

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

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

Мы предлагаем другой путь:

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

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

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

Но поверьте - оно того стоит.

Завтра мы расскажем о программе курса “Программирование для начинающих” немного подробней. Если у вас остались вопросы, задавайте их в комментариях или заходите к нам в гости в Сад проекта Studychain в Telegram.

С наилучшими пожеланиями,
команда @studychain


logo

Успех проекта @studychain зависит от вас -
каждый голос и репост важен!
Спасибо!


Comments 12


Действительно комплексный подход.

30.08.2017 14:00
0

Побыстрей бы уже первый урок)

30.08.2017 14:05
0

Уже скоро :)

30.08.2017 14:19
0

Ну прям радуете, именно то, что я хотел. Всем успехов в обучении)

30.08.2017 14:27
0

Ждемс

30.08.2017 14:50
0

любопытно. паттернов только не хватает. или не заметил?

30.08.2017 23:20
0

Некоторые будут, там где они требуются. Не будет отдельных занятий/блоков по ним, все-таки курс для начинающих.

31.08.2017 05:04
0

я стану програмистом.

31.08.2017 03:46
0

Проголосовал за Вас и подписался ))

31.08.2017 09:11
0

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

14.09.2017 19:38
0