Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sc-programming
7 лет назад

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


P101_cover.jpg

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


logo


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

0
173.522 GOLOS
На Golos с August 2017
Комментарии (12)
Сортировать по:
Сначала старые