Наш подход к изучению программирования, на первый взгляд, построен достаточно нестандартно. Ведь обычно обучение на курсах выглядит так - буквально с самого первого урока учащимся предлагается написать код. Традиционно это начинается с программы “hello world”, которая может выглядеть, например, вот так:
пример на языке C#, скриншот с сайта Microsoft
Так вот, товарищи, это как раз то, чего мы делать не будем.
Таким способом, несомненно, можно научиться программировать, с этим трудно спорить. Но есть некоторые проблемы. Если начинать сразу с изучения языка программирования, то приходится одновременно осваивать устройство компьютера, общие концепции и парадигмы языков программирования, а также разбираться в особенностях синтаксиса конкретного языка. Очень немногие из нас смогут сразу усвоить такое количество новых понятий, то есть неизбежно придется чем-то жертвовать.
Требования синтаксиса языка игнорировать нельзя, компилятор просто не пропустит код, в котором не хватает какой-нибудь запятой. Поэтому в жертву приносятся именно основные понятия, концепции и парадигмы. Понимание всего этого конечно же придет, но на это могут потребоваться годы практической работы.
Что же делать? Для решения этой задачи давайте рассмотрим, как работает программист. Сразу надо сказать, что никто из профессиональных разработчиков не бросается писать код сразу после получения задачи. Вкратце процесс разработки ПО выглядит примерно так:
- Прежде всего требуется понять условия задачи.
- Затем необходимо подумать над тем, решаема ли такая задача с помощью компьютера в принципе и имеет ли ее решение экономический смысл. Ведь полным-полно задач, которые достаточно легко решаются человеком, но очень сложны в программировании или, на данный момент, вообще не под силу компьютерам.
- Если задача выглядит решаемой путем создания программы, следующим шагом будет изучение предметной области. Разработчику требуется понять, что важно, а что не имеет значения для пользователей его будущей программы.
- Затем необходимо построить модель, подходящую для решения именно этой задачи.
- Следующий шаг - это проектирование будущей программы. Необходимо решить, как она будет устроена, из каких частей будет состоять, и как эти части будут взаимодействовать между собой.
- Затем выбираются подходящие инструменты - это языки программирования, библиотеки, фреймворки, системы управления базами данных…
- И вот только сейчас имеет смысл приступать к реализации найденного решения в коде.
Для простых задач описанный выше процесс происходит полностью в голове разработчика, может быть частично и на подсознательном уровне. В ходе решения задач посложнее для некоторых шагов потребуется использовать блокнот и карандаш или доску с маркерами. А в случаях, когда цена ошибки и стоимость решения достаточно высока, процесс разработки ПО может быть очень сильно формализован и потребует участия нескольких различных специалистов.
Для чего вам необходимо это знать? Все достаточно просто. Если начать изучение программирования с освоения языка, можно худо-бедно научиться писать программы, которые будут чуть сложнее, чем примеры в вашем учебнике. Дальше придется идти методом проб и ошибок, набивать шишки самостоятельно, выяснять методом тыка, в каких областях вам не хватает знаний. Как иметь дело с предметной областью, строить модели и проектировать приложения, придется учиться уже по ходу работы.
Мы предлагаем другой путь:
- Сначала на самом простом уровне разберемся с изучением предметной области и моделированием, научимся пользоваться не средой разработки и компилятором, а блокнотиком, ручкой и своей головой.
- Затем закрепим знания моделирования, разбираясь, как устроен компьютер, сеть и типичные программы.
- Изучим основные концепции и парадигмы языков программирования - это позволит проектировать программы, а с приобретением опыта и выбирать нужные инструменты.
- Закрепление знаний из предыдущего пункта произойдет при изучении первого языка программирования.
- Немного освоившись с языком, мы перейдем к более сложным вещам, таким, как разработка пользовательских интерфейсов и использованию сервисов. При этом произойдет закрепление знаний первого языка, а также, как мы надеемся, придет понимание того, что язык, библиотека или фреймворк - это просто инструмент, который выбирается под конкретную задачу.
Пройдя этот путь, вы не станете профессиональным разработчиком, но получите довольно хорошую базу для дальнейшего самостоятельного развития. Дальше вы сможете идти самостоятельно, с помощью книг, статей, документации и других более специализированных курсов.
Предложенный способ не относится к самым простым, это не волшебная таблетка, которая сделает из вас программиста за одну ночь. Придется изрядно потрудиться, чтобы пройти этот путь до конца и займет это дело примерно 6-8 месяцев.
Но поверьте - оно того стоит.
Завтра мы расскажем о программе курса “Программирование для начинающих” немного подробней. Если у вас остались вопросы, задавайте их в комментариях или заходите к нам в гости в Сад проекта Studychain в Telegram.
С наилучшими пожеланиями,
команда @studychain
Успех проекта @studychain зависит от вас -
каждый голос и репост важен!
Спасибо!
❤
Подход хороший, но не для того, кто ноль в программировании. Тут вы начинаете с оценки задачи, проектирования, создания ТЗ и потом только к программированию. Это может быть банально не интересно тому, кто хочет научиться, например, писать игры или сайты. Конечно, интересная форма обучения может в этом помочь. Тут все зависит от вас. Сам подход интересный.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
spinner, t3ran13, damm, chiliec, gildar, mir, narin, archibald116, dreamer, ruslandis, la-bella-vita, tristamoff, yurgent71, vasilisapor2, alexux, karusel1, asuleymanov, maxiandr, gapel, vika-teplo, sva-lana, borisss, aleksandra, bombo, yakov, kertar, nerengot, lokkie, tannedd, vealis, liseykina, mirumir, abloud, wedge, ksantoprotein, nerossoul, vlad1m1r
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
Проголосовал за Вас и подписался ))
@sc-programming Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за Количество комментариев
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
я стану програмистом.
любопытно. паттернов только не хватает. или не заметил?
Некоторые будут, там где они требуются. Не будет отдельных занятий/блоков по ним, все-таки курс для начинающих.
Ждемс
Ну прям радуете, именно то, что я хотел. Всем успехов в обучении)
Побыстрей бы уже первый урок)
Уже скоро :)
Действительно комплексный подход.