Программы для начинающего программиста. Лучшие Android-приложения для обучения программированию. Здесь речь идет вот о чем

Методология обучения все больше становится игровой и вы, как родитель, как учитель, способны объединить игру и обучение основам программирования на компьютере или гаджетах своих детишек или учеников.

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

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

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

Новую область знания, computer science, науки прикладного программирования и проектирования стоит начинать изучать в раннем возрасте с 4-6 лет, когда принципы мышления уже формируют представления об основах мира вокруг, его систем, структур. Игра всегда служила обучению ребенка - сегодня главным учебным инструментом становится гаджет, личный проводник в мир цифровых знаний ребенка или семейный планшет, школьный компьютер.

  1. http://code.org/ - приятный интерфейс и масса простых игр о базовых принципах работы языков программирования, вообще нужный, не коммерческий, образовательный проект для детей.
  2. http://www.crayonphysics.com/ - игра — просто шедевр — развивает у ребенка инженерное мышление, готовит к пониманию программирования поведения в физических условиях различных систем и физических движков, не столько про программирование, сколько про логику решения задач через итеративный процесс, что является важнейшей воспитательной дисциплиной.
  3. http://lightbot.com/hocflash.html — игра на старике Flash, но с приятной графикой и простым обучающим материалом по построению алгоритмов движения робота, вниманию к сценарию и воспитывающему пошаговую отладку поведения персонажа, развивает у школьника понимание принципиальных основ программируемого интерактивного взаимодействия.
  4. http://codecombat.com/ - ветеран на рынке, развивающий игровое обучение настоящему коду Pythonчик, JavaScript, Lua, экзотику CoffeScript
  5. http://www.playcodemonkey.com/ - простая игра в изучения принципов синтаксиса через игру с обезьянкой
  6. http://www.ceebot.com/ceebot/index-e.php - старенький ветеран игрового обучения — управлять персонажами, используя команды C++
  7. Cargo-Bot - простое приложение для дошкольников и их IPad
  8. - игра в которой реализован принцип проектного обучения основам программирования. Вы решаете задачки, которые дает вам игровой начальник для каждого уровня, решая пазлы, вы учитесь создавать модульные функции и их комбинации на основе простейших команд.
  9. https://scratch.mit.edu/ - фактически классика для развития мышления будущего программиста, продуманная, с хорошим сообществом и массой примеров.
  10. http://www.kodugamelab.com/ - большой учебный проект от команды Microsoft Research, доступен бесплатно для PC и около 5$ за версию для приставки Xbox. Прелесть в притягательности для ребенка мира проектирования игры, его модульности, мышления категориями создания виртуальных миров. Менее полезна в знакомстве с кодингом и программированием, но больше помогает изучать основы дизайна игровых приложений.
  11. https://www.gethopscotch.com/ - обязательный инструмент на iPad ребенка, приятный дизайн, базовое изучение основных понятий кодинга, вложенность, переменные, простые визуальные подсказки.
  12. http://www.piktomir.ru/ — стоит отметить и этот российский проект, причем разработанный по техзаданию РАН, но мне не нравится визуальный дизайн. Достоинство приложения — это русский язык, весьма спорное при изучении основ программирования, в котором английский это 70% быстрого успеха. Но проект вызывает уважение и полезен для дошкольников и младших классов.

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

Интерактивная онлайн-платформа для обучения 12 языкам программирования: Python, PHP, JavaScript, Ruby, Java и др., а также работе с библиотекой jQuery и языкам разметки и оформления веб-страницы HTML и CSS.

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

Обучающий стриминговый сервис LiveEdu.tv предлагает вам уникальные туториалы для изучения программирования. Что же такого особенного в LiveEdu.tv? Уроки интерактивны, в режиме реального времени вы видите написание проекта и можете коммуницировать с преподавателем в чате, также доступны записи стримов.

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

На сайте недавно запустили русскоязычный премиум раздел, где вы можете найти различные обучающие проекты, например: “Серверная реализация мессенджера” , “Как написать укорачиватель ссылок на Node.js” . Благодаря огромной базе обучающих видео и проектов, сайт подойдет как новичкам так и опытным специалистам. А стать преподавателем и создать свой собственный обучающий проект здесь может любой специалист, который соответствует требованиям .

Сервис для изучения программирования, а именно Full-stack разработки на JavaScript. Обучение построено по принципу самообразования от простого к сложному. Сначала дается основа, а затем дают задание, которое выходит за рамки изученного и нужно решить его самостоятельно.

Все начинается с HTML, CSS, Bootstrap и продолжается заданиями по базовым функциям JS, задачами на алгоритмы, front-end проектами. Планируется к запуску раздел про React. Для общения есть чат в Gitter.

Этот сайт предоставляет упражнения по программированию, а в частности, на: C #, C ++, Haskell, JavaScript, Lua, Objective-C, Perl 5, Python, Ruby и Scala.

Идея проста:

  • Вы загружаете упражнение на языке по вашему выбору (упомянутого выше) с клиентским приложением exercism.io
  • Добавляете решение на сайт.
  • Программисты со всего мира будут комментировать то, что вы сделали.
  • Вы улучшаете свой код.
Благодаря этому методу обучения, когда вы, как новичок в программировании, получите обратную связь от экспертов, можно избежать застревания на тренировках, если вам не удалось найти правильное решение. Это также помогает застенчивым людям или тем, кто не решается задать вопросы, так как нет никакого способа двигаться дальше. Katrona Owen, создатель Exercism.io, заметил, что этот тип обучения поможет ученикам в Jumpstart Labs в Денвере, штате Колорадо, завершить упражнения.

Pluralsight - один из лидеров в разработке интерактивных учебных курсов для профессиональных разработчиков. Pluralsight предлагает подписки для частных лиц и компаний стоимостью от 29 долларов США в месяц. На сайте доступны следующие категории: IT Ops, Software Development, Data Professional, Architecture and Construction, Manufacturing and Design, Business Professional, Information and Cyber Security.

Видео лекции на английском языке с субтитрами в сочетании со встроенными тестами и последующими домашними работами, основанные на модели «учиться на практике». Каждая лекция включает в себя встроенный тест, чтобы помочь студентам понять предлагаемые концепции и идеи.

Также доступны программы Nanodegree Plus. Суть такова, что Udacity гарантирует трудоустройство в течении 6 месяцев после выпуска или возвращает вам деньги. Стоит обучение 299$/мес. Большое преимущество - code review, причем, весьма детальные. Также в программу входят: помощь в подготовке резюме, аккаунтов в гитхабе и линкедин, тестовые собеседования (с живыми людьми).

Code School использует для обучения скринкасты и видеоуроки рассказывающие о HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git и другим языкам, подавая материал через интересные истории. Большая часть контента рассчитана на продвинутых программистов, но новичкам доступны бесплатные курсы об основах программирования.

Для доступа к бесплатным курсам необходимо зарегистрироваться, доступ к платным курсам Code School возможен только на основе подписки, цена которой начинается от 29 долларов в месяц.

Udemy - это платформа для обучения, где вы можете быть как учеником так и преподавателем. Udemy предлагает большое количество курсов по таким прикладным направлениям как дизайн, программирование, веб-разработка. Среди преподавателей можно встретить Марка Цукерберга и других гигантов IT-индустрии. Цена курсов на Udemy от 10$ до 200$, есть также бесплатные.

Lynda.com – ветеран индустрии онлайн-образования. Lynda.com - это сервис платного онлайн-обучения преимущественно в направлении IT и дизайн. Сервис основан в 1995-м году и в 2015-м был куплен Linkedin.

Lynda работает по подписке. Хотя часть курсов доступны бесплатно, основная доля доступна только после оформления подписки стоимостью от $19/месяц. После оплаты пользователь получает неограниченный доступ к любым курсам в базе данных Lynda. Для ознакомления с функционалом Lynda предлагается 10-ти дневная trial-версия, с полным доступом ко всей библиотеке.

Это интерактивный сборник задач по программированию, решая которые вы набиваете свой скилл в том или ином языке.

Разнообразные задачи, достижения, тесты, просмотр наиболее лучших решений, обсуждения, ранги - все это делает сервис очень удобным и ценным для тех кто хочет порешать задачки на том или ином языке. Сейчас сервис поддерживает следующие языки: Clojure, C++, C#, Elixir, F#, Go, Haskell, Java, JavaScript, PHP, Python, Ruby, Rust, Shell, SQL, Swift, TypeScript.

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

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

Продолжительность курсов примерно от шести до десяти недель с 1-2 часами видеолекций в неделю, курсы содержат задания, еженедельные упражнения и иногда заключительный проект или экзамен. За $40 вы можете получить сертификат от вуза, в котором прошли курс. На Coursera примерно 700 курсов в различных сферах деятельности.

Code Avengers предоставляет возможность обучаться в интерактивной и игровой форме основам HTML5, CSS3, JavaScript прямо в браузере. В ходе обучения вы сможете обучиться основам программирования и вёрстки шаг за шагом, выполняя небольшие задания.

На бесплатном аккаунте можно изучить 5 первых уроков каждого из курсов.Некоторые курсы доступны на русском языке (на текущий момент переведены HTML/CSS / JavaScript / Game Dev / Intro to Coding)

Сайт создан StackOverflow разработчиком. Ресурс представляет собой тур по лучшим руководствам в интернете, туда входят интерактивные занятия, видео и материалы для чтения. Bento бесплатен и подает материал в абсолютно логичной последовательности.

Bloc помогает освоить профессии UI/UX-дизайнера и разработчика, с тем, чтобы создавать «современные адаптивные веб-сайты и мобильные приложения». У сервиса не совсем обычная система оплаты: за фиксированную сумму в 3 999 долларов можно выбрать один из трех вариантов нагрузки - 3 месяца по 40 часов в неделю, 4,5 месяца по 25–30 часов и 9 месяцев по 12–15 часов. Так обучение можно совместить с учебой в другом месте или даже работой.

CheckIO - ресурс для изучения и практики языка программирования Python. Обучение представлено в виде игры, в которой каждому пользователю необходимо в той или иной мере использовать свои знания. Например, первый этап обучения «Learning» - это цепочка задач от легкой к сложной. Причем, в описании самой задачи есть все справочные данные для ее решения.

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

Изюминка нашего списка Codebabes.com. Все видеоуроки на этом интернет-ресурсе ведут молодые девушки. Специфика таких уроков в том, что по мере того, что материал усложняется, девушки… раздеваются. В каждом разделе предусмотрено нескольких видеороликов для обучения. На видео девушка, которая ведет курс, на протяжении нескольких минут объясняет пользователю одну из тем какого-либо блока.

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

MIT OpenCourseWare - это специальный ресурс Массачусетского технологического института, на котором собраны многие обучающие курсы, лекции и семинары. OpenCourseWare содержит материалы более чем 2 000 курсов. На сайте есть аудио и видеокурсы, поиск по каталогу, по номеру курса, по наименованию дисциплины, все предметы и степень сложности разделены в отдельные рубрики.

С помощью этого ресурса вы можете просматривать интерактивные презентации, которые объясняют как писать программы с нуля. Вы не только видите написание кода, но и можете понять какие изменения в конечный продукт вносит каждая строка кода.

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

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

Подробное изучение CSS при помощи большого альманаха по CSS. Сейчас блог охватывает много тем, помимо CSS – например, Sass, JavaScript, PHP и прочее. Вы можете ознакомиться с огромным количеством ресурсов и даже с фрагментами кода.

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

Code4startup.com - обучение разным языкам программирования и фреймворкам на примерах успешных стартапов. Например, Code4Startup предлагает изучить AngularJS и FireBase создавая клон TaskRabbit, а HTML 5, CSS и jQuery копируя Airbnb (потом можно будет создать и гибридное мобильное приложение для сервиса).

Русскоязычные сайты для изучения программирования:

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

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

LendWings – эта платформа предлагает видеолекции лучших преподавателей со всего мира на русском языке, но не все курсы бесплатны. LendWings позволяет пользователям подключаться к обучающим курсам независимых преподавателей («инструкторов»), которые предоставляют обучение при помощи записанных видеолекций, текстовых документов, слайдов, презентаций и других материалов.

Это онлайновая школа обучения программированию, системному администрированию, дизайну и интернет-маркетингу. Каждый курс GeekBrains имеет подробную программу и отзывы. Занятия охватывают почти все отрасли разработки и готовят к конкретной работе в той или иной области IT. Для студентов, также доступны программы стажировок и сертификации.

JavaRush обучает программированию на Java в форме онлайн-игры. Игра сделана по мотивам вселенной Футурамы. Цель игры - прокачать персонажа (робота Амиго) с 1 до 80-го уровня. В игре вы выполняете задания и зарабатываете черную материю, которую тратите на открытие новых уровней. Курс JavaRush содержит 1200 практических задач возрастающей сложности.

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

Ресурс для онлайн-обучения программированию, предлагающий не только видеоуроки для самостоятельного просмотра, но и бесплатные сервисы, позволяющие формировать практические навыки написания кода. Каждый пользователь имеет возможность формировать практические навыки с помощью Тренажера, общаться с другими студентами на форуме, читать интересные публикации в блоге, слушать бесплатные IT-вебинары. Сами видеокурсы входят в более крупные образовательные модули - «IT Специальности»

Устали от скучных книг и лекций? Мы сделали подборку ресурсов для обучения языкам программирования в интерактивной форме.

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

Hexlet

Hexlet - здесь собраны бесплатные курсы по C, PHP, JavaScript, Bash.

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

HTML Academy

HTML Academy - курсы для тех, кто мечтает стать верстальщиком. В процессе обучения начинающий программист выполняет задания по образцу. Курсы ориентированы на тех, кто не готов заниматься только теорией, читая книги и смотря лекции, а даёт возможность испытать свои умения в действии. Восемнадцать курсов доступны без подписки. Их вполне достаточно, чтобы получить представление о вёрстке.

Codeacademy

Codeacademy - популярный ресурс для новичков, в 2014 году достигший отметки в 24 миллиона пользователей. Здесь собраны курсы по самым популярным языкам, инструментам и многому другому. Задания написаны максимально понятным языком, а если что-то не получается, можно воспользоваться подсказкой или поискать решение на форуме.

Codeschool

Codeschool - ещё одна популярная платформа для начинающих и тех, кто уже в процессе карьерного роста. Процесс обучения сводится к просмотру видеороликов и упражнений по ним. Здесь собраны более 60 курсов, в том числе по HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git, аналитике данных, из которых 13 доступны бесплатно.

CheckIO

CheckIO - онлайн игра для обучения программированию на Python или JavaScript, построенная в формате приключения.

CodinGame

CodinGame - онлайн-платформа для программистов, где решение задачи сопровождается визуализацией в стиле видео-игр, а IDE поддерживает 23 языка программирования. Кроме того, крупные компании принимают в качестве примера код, написанный в CodinGame, при устройстве на работу.

Codecombat

Codecombat - одна из лучших игр для изучающих программированию. Она позволяет игрокам получить базовые знания нескольких языков программирования, например JavaScript или Python. Приятно ещё и то, что игра локализована, а значит доступна и тем, у кого проблемы с английским.

Code Hunt

Code Hunt - игра от Microsoft Research, которая учит искать ошибке в коде. Решив проблему, игрок получает очки и может двигаться дальше.

Писать можно на Java, C#, или на обоих языках.

CodeFights

CodeFights - ещё одна платформа для решения задач. Можно сражаться с ботами, друзьями и неизвестными игроками. Интересно то, что участвуя в турнирах, которые, кстати, проходят довольно часто, можно попасть на собеседование в известную IT компанию.

Ruby Warrior

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

The AI Games

The AI Games - развивайте навыки программирования в соревнованиях с другими игроками, пишите своих ботов, выигрывайте призы, но главное - получайте удовольствие от программирования.

Codewars

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

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

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

Шаги

Часть 1

Выбор языка программирования

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

    • C - один из самых старых языков программирования. Знакомство с С упростит для вас изучение C++ и Java.
    • C++ - один из самых популярных языков программирования в наши дни, особенно в плане разработки программного обеспечения. Правда, на то, чтобы выучить С++, уйдет время, а на то, чтобы еще и научиться им пользоваться, уйдет еще больше… Но это окупит себя!
    • Java - еще один очень популярный язык программирования, который может работать почти что в любой операционной системе.
    • Python - один из простейших языков программирования, чьи основы можно выучить за пару дней. Тем не менее, это весьма мощный язык, задействованный для создания множества серверных и веб-приложений.
  1. Подготовьте среду разработки. Чтобы начать программировать, вам нужно не так уж и много - и это “среда разработки”. Впрочем, что именно под этим понимается, зависит от выбранного языка программирования.

    • Редактор кода - почти что любому программисту будет удобнее работать в специальном текстовом редакторе - редакторе кода. Можно, конечно, и в “Блокноте” работать, но без подсветки синтаксиса и подстановок это будет весьма грустный опыт. Среди популярных редакторов кода можно назвать Notepad++, TextMate и JEdit.
    • Компилятор - при работе со многими языками программирования (С, Java и так далее) код программы сперва надо “собрать” - скомпилировать, только потом его можно будет запустить. Соответственно, придется установить компилятор, если ваш язык программирования без него не может. К слову, большинство компиляторов поможет вам отлавливать “баги” - ошибки программы.
    • IDE (Integrated Development Environment, интегрированная среда разработки) - в некоторых языка программирования и редактор кода, и компилятор, и модуль отладки - все объединено в одну-единственную интегрированную среду разработки. Скачать IDE можно, как правило, с сайта языка программирования.
  2. Почитайте учебники. Если раньше вы не программировали вообще, то начинать надо с малого. Так, стоит найти учебники или курсы, хотя бы онлайн-курсы, которые объясняет вам основы основ выбранного языка, расскажу про его синтаксис, переменные, функции и все остальное, а также про то, как это все между собой связано.

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

    Чтобы выучить основы, создавайте простые программы. Раз уж вы начали писать код сами, то начните с азов. Напишите несколько программ, скажем, на вывод строки или подсчет простенького уравнения. Отрабатывайте все это - пригодится позже, во время работы над более сложными программами. Экспериментируйте, старайтесь сломать даже собственные программы.

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

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

Часть 2

Разработка программы

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

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

    Определитесь с архитектурой программы. Цели будут определять средство… то есть архитектуру. Если знать и понимать, каким задачам какая архитектура соответствует, то процесс разработки пойдет куда эффективнее.

    Начните с программы по схеме "1-2-3". Это простейший тип программ, их задача - позволить вам адаптироваться к языку программирования. Если в общем, то программы “1-2-3” запускают, спрашивают у пользователя какие-нибудь данные, затем выводят результат, на чем и заканчиваются.

    • Следующим шагом в схеме “1-2-3” будет так называемый “REPL” (Read-Execute-Print Loop). Проще говоря, это возврат к первому шагу программы после вывода результата вычислений.
    • Подумайте о программах типа “Pipeline”. Они характеризуются тем, что что трансформируют вводимые пользователем данные и работают последовательно. Данный тип подходит для программ, которые требуют минимум взаимодействия с пользователем - скажем, RSS-ридеры. Такая программа будет представлять собой несколько классов с общим циклом.

Часть 3

Создание прототипа

Часть 4

Создание программы
  1. Создайте базу псевдокода. Это станет своего рода скелетом вашего проекта и основой для будущей работы. Псевдо-код отличается от обычного кода тем, что… не “компилится” (не обрабатывается в компиляторе), зато прекрасно читается программистами и помогает понять, что должно происходить на том или ином шаге работы программы.

    • Псевдокод, впрочем, использует тот же синтаксис, что и обычный код, поэтому писать псевдокод надо так же, как и программу.
  2. Усовершенствуйте прототип. Можете взять сам прототип, можете взять псевдокод - в любом случае, суть в том, чтобы сделать прототип лучше, совершеннее, быстрее!

    Начните работу над кодом программы. Вот, собственно, мы и добрались до сути. Именно работа над кодом программы и займет большую часть времени, не говоря уже про бесчисленные компиляции, не менее бесчисленные тесты и поиски багов… Если над вашей программой работает целая команда, то стоит начать с псевдокода, чтобы все шло равномерно.