Я собираюсь догадаться, что это веб-разработка, которой твой отец хочет научить. Одной вещью, которая замедляет изучение веб-разработки, является также необходимость научиться настраивать инфраструктуру (например, веб-сервер, базу данных, сервер приложений и т. Д.) И развертывать приложения. Эти действия занимают удивительное количество времени и прерывают поток обучения.
Следующий стек приложений значительно сократит время, затрачиваемое на настройку и развертывание инфраструктуры:
- Стек приложений : Ruby On Rails с базой данных SQLite (поскольку не требует настройки). Ruby on Rails позволяет вам очень быстро разрабатывать на локальном компьютере. Rails устанавливается быстро, и для вашей тестовой среды не требуется конфигурация базы данных или веб-сервера.
- Контроль версий : git - git позволяет изучать основы управления версиями без необходимости конфигурировать git-сервер. Для работы с git требуется очень мало настроек.
- Платформа развертывания : heroku.com . Развертывание на heroku - это запуск команды «git push heroku master» из командной строки. Как только вы это сделаете, на Heroku.com появятся сценарии, которые компилируют ваш код в «слаг» приложения, запускают сервер приложений и подключают его к вашей базе данных PostgreSQL. (Если вы используете «ванильные» манипуляции с данными ActiveRecord, вы не увидите различий между локальным использованием SQLite и PostgreSQL на Heroku). Heroku бесплатен для небольших приложений, небольшого трафика и небольших баз данных. то есть школа вашего отца не должна выкладывать деньги на серверы развертывания. Heroku также предоставляет уникальный домен каждому приложению heroku, которое отображается в Интернете, и если вы проверяете свою учетную запись с помощью кредитной карты, вы можете указать свои собственные домены для приложения heroku. Проверьте http://docs.heroku.com/quickstart для получения дополнительной информации.
Ключевым моментом здесь является то, что отсутствие необходимости беспокоиться о конфигурации и развертывании оставляет ученикам гораздо больше умственных способностей, чтобы сосредоточиться на разработке программного обеспечения.