• Изучение программирования путем Скалы?

    @khud
    Scala при некоторых обстоятельствах может быть и первым языком за счет того, что у него очень большое комьюнити и хорошие средства разработки. Однако такой путь по настоящему тяжелый. К сожалению нет литературы, которая позволяла бы это делать эффективно. Одерски адаптировал курс "структура и интерпретация компьютерных программ" для Scala (его легко найти в гугле и корсере), однако на мой взгляд не вполне удачно. Но с этого можно начинать. В целом разделяю мнение большинства - трудно слишком для начала. Python куда более лучший вариант для начала.
    Ответ написан
    Комментировать
  • Какие математические дисциплины нужны, или будут большим плюсом в программировании?

    @khud
    В любом программировании нужна математика, чтобы не говорили. Даже в Enterprise и Web, другое дело в каком объеме. Я бы сказал, что дискретная математика в минимальном объеме точно да, как минимум логика, множества и битовые операции. Теория вероятности и начала анализа на уровне O-нотации, пределов и дифференцирования также имеет значение в некоторых вопросах. Линейная алгебра точно да, как минимум на уровне векторов и матриц.
    Ответ написан
    Комментировать
  • Как вы "держите" в голове функции, переменные и их значения при написании программы, или разборе чужого кода?

    @khud
    Самый главный инструмент разработчика - это бумага и ручка. Декомпозиция кода - это следующий главный инструмент. Отладчик ближе к концу списка. Если смотришь в собственный код и не понимаешь, что происходит, значит код слишком большой или слишком сложный или там нет комментариев. Комментарии вообще играют очень важную роль, с одной стороны код сам по себе говорит (как минимум должен говорить), ЧТО делает код, а комментарий говорит о том ЗАЧЕМ это нужно. Можно еще использовать программирование по контракту (assert к примеру) для того, чтобы было более понятно что происходит. Императивное программирование и ООП тяготеют к спагетти коду особенно на этапе прототипирования. Функциональное программирование часто помогает решить часть проблем (иногда правда и новых добавляет).
    Ответ написан
    Комментировать
  • Какими методами обучения пользуетесь?

    @khud
    Для изучения программированию вообще есть несколько базовых книг, которые стоит прочесть. Таких немного, к примеру "Структура и интерпретация компьютерных программ" и еще несколько. Если ты уже хорошо владеешь базовыми идеями в программировании - то выучить язык совсем нетрудно, просто нужно пытаться самому на нем писать (есть исключения, к примеру Scala или Haskell). Чтение кода - это очень хорошая практика. Потому что читать код часто намного сложнее. Если речь идет о быстро развивающейся технологии, то книги устаревают еще до своего выхода и тут нужно много гуглить и читать интернет.
    Ответ написан
    Комментировать