Ответы пользователя по тегу Программирование
  • Какие методы Вы используете, чтобы быстро найти участок в проекте с сотней тысяч строк?

    @justaguest
    grep с регулярными выражениями, и немного смекалки — самый лучший набор инструментов.

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

    Живой пример: только вчера закончил писать курсовую, где в качестве практики фиксил небольшой баг в GUI текстового редактора Yi на Haskell (в котором я на момент написания этих слова разбираюсь чуть ниже среднего). Поскольку я не знаю ни архитектуры, не API, а в существующих статьях про интерфейс редактора нет ни слова, большая часть работы выглядела следующим образом:
    1. Войти в директорию, в которой предположительно — исходя из ее названия — находится интригующая меня часть кода
    2. Пойдя от обратного, спросить себя, как могла бы быть реализована та часть, которая меня сейчас интересует
    3. Найти в своих рассуждениях ключевые моменты, перевести их в ключевые слова, которые могли бы быть упомянуты в именах переменных/функций, комментариях, частично или полностью
    4. grep'нуть ключевые слова по коду, и пробежаться глазами по имеющимся линиям; особо интересные моменты просмотреть, открыв в текстовом редакторе
    5. Спросить, собрал ли я достаточно информации для понимания проблемы и возможного фикса; если нет, goto §2
    Ответ написан
    Комментировать
  • Какой язык программирования начать изучать филологу в 30 лет, если в школе у него было 3 по алгебре, 4 по геометрии, а по остальным предметам 5?

    @justaguest
    Основываясь на личном опыте выскажу немного парадоксальную идею: начинать лучше всего с ассемблера. Когда-то я учил Бейсик и Паскаль, и у меня всегда возникало недопонимание, мешающее кодингу: что такое переменная? Куда она уходит? Почему один кусок кода может быть быстрее другого, и как я могу знать об этом?
    Появившаяся значительно позднее возможность выучить ассемблер, можно сказать "открыла глаза"; причем стиль ассемблера после "обычных" языков вызывал недоумение -- если бы я начинал обучение с него, а потом перешел на более сложные, мне было бы значительно проще.

    UPD: Добавлю: если вы сейчас начнете учить Python, а потом перейдете на С++ или Paskal -- все-таки они ощутимо отличаются, и у вас тоже возникнут подобные вопросы.
    Рекомендую по ассемблеру уроки битфрая http://bitfry.narod.ru/ По его урокам я ассемблер и начинал учить.
    Ответ написан
    2 комментария