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

Я преподаю Android и веб-разработку в Coding Blocks - учебном семинаре по разработке программного обеспечения в Нью-Дели, Индия, и это вопрос, на который мне приходится отвечать многим людям (иногда даже если его не задают напрямую).

Так что список невелик.

  • Математика - Не дифференциальное исчисление или что-то в этом роде, но основы должны быть хорошими. Квадратные и линейные уравнения не должны быть для вас проблемой. Вы должны быть в состоянии увидеть математику, стоящую за этим, когда будете рассматривать большинство повседневных проблем - например, как покупать продукты для предстоящей домашней вечеринки.
  • Булева алгебра и двоичная система. Постарайтесь получить хорошее представление о двоичном мышлении - ДА и НЕТ. Истинно и ложно. Подумайте о том, как принимаются решения. Каждый выбор, который мы делаем, является двоичным.
    Вы можете прочитать это - Идеи пуленепробиваемые - Блоки кодирования, которые расширяют эту идею.
  • Также потренируйтесь преобразовывать десятичные числа в двоичные и обратно, чтобы получить представление о двоичной системе счисления.
  • Как работают компьютеры. Об этом можно прочитать во многих местах. Если не совсем ясно, но получите смутное представление о том, что означают термины обработка, хранение и т. Д. Что может делать компьютер, а что нет.
    Компьютер может выполнять арифметические операции, обрабатывать логическую логику, принимать двоичные решения и хранить данные. Вот и все. Помня об этом, вы сможете стать хорошим программистом.

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