Алгоритм развития обучения [закрыт]

16

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

Я хотел бы знать алгоритм (последовательность шагов :)), который мог бы описать мой подход к обучению программированию в целом. Я опубликовал небольшие вопросы по Perl / Python и получил большую помощь от всех.

Примечание: - Я не спешу учиться. Я знаю, что это занимает время, и это нормально.

Пожалуйста, дайте любые предложения, которые вы считаете действительными. Также, пожалуйста, не заставляйте меня изучать Lisp, Haskell и т. Д. Я новичок.

user9057
источник
Есть ли какой-то конкретный язык, который вы хотите изучать? Я знаю, что вы упоминаете Perl и Python, это то, что вы хотите получить?
Джейсон
Итак, что вы просите ... что именно? Процесс, с помощью которого вы изучаете определенный язык? Программирование само по себе? Используя что?
Гленатрон
Я думаю, что это хороший вопрос. Я отредактировал, чтобы сделать это немного яснее.
Гари Роу

Ответы:

28

11-шаговый алгоритм для изучения нового языка программирования

В данный момент я изучаю Lisp и рекомендую следующий алгоритм:

  1. Спросите, стоит ли изучать язык и где можно найти хорошие ресурсы. Если эксперты дадут положительный ответ на язык, перейдите к шагу 2.
  2. Создайте начальную среду программирования. Сохраняйте это простым: текстовый редактор и компилятор / интерпретатор. Голый минимум. Рассмотрите конкретную учетную запись пользователя на вашем компьютере с особой цветовой схемой, чтобы определить изменение мышления.
  3. Создайте «Привет, мир!» заявление.
  4. Изучите общий синтаксис и управляющие операторы (если-то-еще, повтор-пока и т. Д.). Создайте «песочницу» для проверки простых контрольных случаев (оценки true / false и т. Д.) Попробуйте все примитивные типы (int, double, string и т. Д.). Выполните расчеты валюты. Игра на угадывание чисел (как предлагает @Jeremy ) хороша для этого.
  5. Создайте класс (если применимо) с несколькими методами / функциями. Звоните между функциями. Применить контрольные заявления.
  6. Изучите массивы и коллекции. Создавайте достаточно сложные примеры, которые создают массивы и коллекции каждого из доступных вам классов / функций / примитивов.
  7. Изучите файл IO. Создавайте примеры чтения, манипулирования и записи двоичных и символьных файлов.
  8. Задайте дополнительные вопросы об идиоматическом программировании на языке (указатели, макросы, монады, замыкания, среды поддержки, среды сборки и т. Д.).
  9. Выберите (или адаптируйте свою существующую) IDE для работы в рекомендованной идиоме.
  10. Напишите разнообразные приложения, которые понравятся вам (или вашему боссу).
  11. Через 1 год вернитесь к шагу 1 для другого языка, сохраняя при этом интерес к тому, который вы только что изучали.
Гэри Роу
источник
1
Я считаю, что игра с угадыванием чисел - отличная вторая программа для написания. (На шаге 4.) Позволяет узнать о целых числах, логических значениях, вводе / выводе текста, цикле и условиях.
Джереми Хейлер
@ Джереми Хорошее предложение, я положил его туда.
Гари Роу
Привет Гэри - спасибо за подробные инструкции, я попытаюсь отобразить его на python - очень хорошее пошаговое объяснение, поэтому я люблю эту цепочку форумов ... @ Джереми, да, я на ней :)
user9057
Специальная цветовая схема для изменения образа мышления , можете ли вы пролить свет на это?
Сантош Кумар
Я склонен выбирать более темную цветовую схему при работе с Лиспом, но использую более светлую для Java. Цвет напоминает мне о том, чтобы изменить свое мышление.
Гэри Роу
12
while (stillLearning)
{
    read(some);
    practice(lots);
}
Стивен А. Лоу
источник
4a5 > cross_pollinate(many);
ocodo
2

Для каждого языка, который вы хотите выучить L

  • Шаг 1: Изучите синтаксис L.
  • Шаг 2: Напишите компилятор для Lна вашем любимом языке.
  • Шаг 3: Напишите компилятор для вашего любимого языка в L
  • Шаг 4: Написать крупный проект идиоматически в L
  • Бонус: убедитесь, что результат шага 2 совместим с результатом шага 4.

Это должно в значительной степени покрыть это, вернитесь к нам с отчетом о проделанной работе за 10 лет .

Если все, что вам нужно, это учиться веб-разработке, и вы уже знаете Perl и Python, у вас достаточно для начала. Я бы сказал, начать изучать все тонкости Apache (и, в частности, mod_perlи mod_python), а затем начать практиковать. Возможно, возьмите одну или две книги по программированию CGI, сетевым коммуникациям и тому подобному, а не по конкретным языковым руководствам.

И последнее замечание: быть новичком - не повод не учить Лисп. Пойдите, проверьте SICP и видео лекции . Ни один не предполагает какого-либо уровня знаний в области разработки или компьютеров. На самом деле процитировать введение в видео лекции

Я хотел бы приветствовать вас на этом курсе по информатике. [Пишет это на доске] На самом деле это ужасный способ начать. Информатика - ужасное название для этого бизнеса. Прежде всего, это не наука [вычеркивает «науку»]. Это может быть инженерия или искусство. [...] Это также не очень много о компьютерах [вычеркивает "компьютер"]. И дело не в компьютерах в том смысле, что физика на самом деле не в ускорителях частиц. И биология на самом деле не о микроскопах и чашках Петри. Хал Абельсон

Inaimathi
источник
Звучит смешно. Увидимся через 10 лет!
Джереми Хейлер
+1 для второго шага напишите компилятор для L! Мозг ... болит .. так ... сильно ... сейчас.
Гари Роу
-2

Я не хочу много говорить, кроме двух шагов.

  1. Изучите структуру данных
  2. Изучите Введение в Алгоритм

PS Программирование - ваша ежедневная задача.

Привет 福气 鱼
источник
На Программистов вам предлагается «много говорить», не стесняйтесь :) Дайте некоторые подробности о ваших советах, таких как ресурсы, ссылки или примеры из вашего собственного опыта.
Матье
-2

Лучший способ - изучить основы / основы языка программирования, а затем присоединиться к компании в качестве младшего разработчика (подрядчика). Это будет самый быстрый способ учиться и зарабатывать деньги тоже;)

jimmydoontec
источник