Как правильно писать статьи о программировании для начинающих

    В последнее время на Хабре стало появляться довольно много статей о тех или иных аспектах программирования, которые позиционируются как статьи для «начинающих». Между тем, как раз для начинающих эти статьи часто являются непонятными: иногда — слишком сложными, иногда — не отвечающими на те вопросы, на которые должны, иногда — тяжелыми для восприятия.

    Попробуем разобраться, как должна быть написана статья, если вы хотите, чтобы она не только понравилась, но и была полезна читателям.


    Определите целевую аудиторию


    Начните с определения вашей целевой аудитории. Понятие «начинающий» — весьма размыто. Вот несколько совершенно разных категория людей, которых можно назвать «начинающими»:

    • Человек, который вообще никогда не слышал о программировании, и хочет научиться писать код.
    • Человек, который знает некоторые теоретические основы (что делает компилятор, чем компиляция отличается от интерпретации, как вообще происходит процесс написания кода), но никогда не писал код сам
    • Человек, который занимался программированием, но хочет перейти на несколько другой профиль (например, человек верстал простенькие сайты и знает javascript, но хочет научиться делать десктопные приложения)
    • Наконец, человек, который достаточно неплохо знаком с программированием, но хочет изучить новый для себя язык или технологию.


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

    Определите начальные знания, необходимые для понимания Вашей статьи


    Согласитесь, не так сложно написать в самом начале нечто вроде:
    «Для понимания этой статьи читатель должен обладать начальными знаниями о C:
    — уметь компилировать и запускать приложение
    — знать синтаксис, основные типы данных и структуры управления»


    Это не отнимает много времени, но очень сильно помогает читателям. Поверьте, если вы начинайте статью так:
    Скомпилируйте следующий код:
    int main(int argc, char *argv[])
    {
         cout<<"Hello, world!";
    }
    



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

    Оформите статью как можно лучше



    Хорошее и грамотное оформление — один из ключей к легкому пониманию материала.

    Старайтесь писать весь код целиком

    Я видел статьи и книги, в которых код приводился разрозненными кусками. Это приводит к тому, что читателю тяжело понять код, не говоря уж о том, что он не может этот код просто скопировать и запустить. Конечно, вы можете, например, писать разные функции в разных листингах. Это даже хорошо, так как облегчает понимание. Но не стоит разрывать на части логически однородный участок кода.

    Не пишите так:
    Пример программы, выводящей «Hello, World»:
    //Начнем писать код
    int main(int argc, char *argv[])
    {
         cout<<"Hello, world!";
    


    Какой-то (возможно, весьма полезный)
    многострочный комментарий от автора

    //Продолжение
         return 0;
    }
    



    Пишите так:
    Пример программы, выводящей «Hello, World»:
    #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        cout<<"Hello, world!";
        return 0;
    }
    


    Вот здесь можно писать длинный и развернутый комментарий, и даже еще раз написать ту строку
    cout<<"Hello, world!";
    
    к которой он относится.


    Если вам необходимо разбить код на несколько листингов, то было бы неплохо в конце статьи еще раз привести весь код в одном листинге, или даже дать ссылку, по которой этот код можно скачать.

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

    Всегда комментируйте код
    Я миллион раз видел, как в книге встречается листинг на 3 страницы без единого комментария, а затем сплошным текстом идет описание того, что этот код делает. Такие вещи очень сложно читать. Попробуйте написать короткие комментарии в самом коде:

    #include <iostream> //необходимо для использования cout
    using namespace std; //cout находится в пространстве имен std
    
    int main(int argc, char *argv[])
    {
        cout<<"Hello, world!"; //вывод строки "hello, world"
        return 0;
    }
    



    Не забывайте, что если для вас значение какой-то строки очевидно, то это не значит, что оно очевидно для всех. Если вы хотите подробно прокомментировать код, то неплохо будет вставлять номера строк. Не нужно нумеровать все строки подряд, достаточно сделать так:

    1 #include <iostream>
       using namespace std;
    
    4 int main(int argc, char *argv[])
       {
    6     cout<<"Hello, world!";
           return 0;
       }
    

    В строке 1 мы подключаем заголовочный файл , который содержит классы, функции и переменные, необходимые для работы с потоковым вводом-выводом в C++. Мы подключаем этот файл для того, чтобы использовать объект cout, который представляет собой стандартный поток вывода.

    В строке 4 начинается функция main — именно с этого места начнется работа нашей программы.

    Наконец, в строке 6 мы выводим фразу «Hello, world» в стандартный поток вывода cout. Для этого применяется довольно простой синтаксис с использованием оператора <<. Слева от оператора записывается объект потока (в нашем случае cout), справа — выражение, которое должно быть выведено в этот поток.


    Если вы хотите, чтобы читатель мог скопировать и запустить код, вы можете указать номера строк в комментариях, хотя это и менее наглядно:

    #include <iostream> //(1) необходимо для использования cout
    using namespace std; //(2) cout находится в пространстве имен std
    
    int main(int argc, char *argv[])
    {
        cout<<"Hello, world!"; //(6) вывод строки "hello, world"
        return 0;
    }
    



    Поставьте себя на место читателя

    Представьте, какие места в ваших примерах могут быть не очень понятны, и объясните их поподробнее. Если вам лень описывать какие-то вещи, которые легко найти в интернете или книгах, просто дайте ссылку на ресурс, где об этом можно почитать.

    Постарайтесь не слишком усложнять код и избегайте перфекционизма

    Не забывайте, вы пишите статью для новичка. Если вы можете сделать код проще, лучше это сделать. Если вы хотите показать, что код можно улучшить (пусть даже он усложнится), то напишите об этом после простого решения. Представьте, что вы объясняете человеку как работает оператор return, и для примера решили написать функцию, которая сравнивает два числа и возвращает наибольшее (или любое, если числа равны). Не стоит писать что-то вроде
    template<class T> T compare(T a, T b)
    {
       return a>b?a:b;
    }
    


    Напишите простой и понятный кусок кода:

    int compare(int a, int b)
    {
        if(a>b)
        {
            return a;
        }
        else
        {
            return b;
        }
    }
    



    Пусть его можно улучшить десять раз — это не важно, если ваша задача — показать суть метода, а не его конкретную реализацию.

    Старайтесь придерживаться одного уровня во всей статье

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

    Придерживайтесь одного стиля во всей статье

    Не важно, пишете ли вы в «академическом» стиле, или в стиле «а теперь, чувак, откомпилируем наше творение». Важно, чтобы вы были последовательны и не переключались с формального повествования на неформальное и обратно по десять раз за статью.

    Старайтесь структурировать свои мысли

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

    Старайтесь помочь читателю

    Будьте вежливы в комментариях. Если вас попросят объяснить что-то подробнее, или добавить что-то в статью, постарайтесь это сделать (конечно, если у вас есть на это силы и время).

    Заключение


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

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 68

      +10
      Еще, наверно, не стоит показывать примеры, далекие от реальной жизни.
      Например, часто в статьях о том, как делать юнит-тестирование, его показывают на каком-то совершенно школьном примере, типа «Делаем юнит-тест для функции сложения двух чисел».
      Такие примеры, конечно, демонстрируют основную идею, но этого часто недостаточно для реального применения. В той же статье про юнит-тесты можно сделать два примера: простой и сложный, в котором бы тестировался, например компонент, оперирующий другими компонентами или БД. Вот тут то и выяснилось бы, что для юнит тестирования нужно несколько больше, чем assert(a = b); нужно еще и правильно код структурировать и «мокать» уметь.
        +3
        Согласен, и особенно это видно в областях, связанных с проектированием. Например, когда у меня в институте был курс по UML, я прекрасно понимал все примеры, которые нам объясняли, и при этом не мог сам правильно составить диаграмы, когда нам давали задание. Это как раз было связано с тем, что примеры были уж слишком искуственные, они слишком уж хорошо моделировались, без каких-либо недопониманий или подводных камней. В реальных задачах такое бывает очень редко.
          +3
          Да, как в одной из моих любимых цитат с башорга:

          Как я обожаю наши методички по лабам C++!
          «Это винтик, это отвертка, винтик можно крутить отверткой. Это всякие железяки, их можно соединять винтиками, закрутив отверткой. Еще бывают гайки и шестеренки.
          Задание:
          Постройте синхрофазотрон.»
        +1
        Все правильно сказал
          +24
          Вот так надо писать статью о статьях для начинающих. :)

          А ещё, думаю, что авторы пишут «для начинающих» по 2 основным причинам.
          1) автор недостаточно опытен, чтобы так же легко писать статьи для просвещённых;
          2) начинающих больше, поэтому количество положительно оценивших статью будет больше.

          Доходит даже до смешного: автор делает ряд ошибок, но голоса критиков тонет в общем положительном гуле восторгов неопытных читателей и в целом статья оказывается положительно оценённой. Это не только в учебниках «для начинающих», но и в любых статьях с красочным эффектом возможно.
            +6
            Думаю, бумажные книги типа «Учим PHP за 1 день» пишутся и успешно продаются по тому же принципу (неопытных читетелей больше).
              +10
              А опытные читатели, к тому же, такие книги не читают (оно им просто не надо), соответственно и покритиковать иногда некому.
              +1
              3) Уменьшить среди кода, с которым приходится работать, число кода, который не нравится работать.
                +1
                Голоса критиков не столь выразительны, возможно поэтому и тонут?..
              +1
              >>>Человек, который знает некоторые теоретические основы (что делает компилятор, чем компиляция отличается от интерпритации, как вообще происходит процесс написания кода), но никогда не писал код сам

              вот таких никогда не видел, обычно наоборот, в школе все хотя-бы видели паскаль или бейсик, а о том что за магия происходит после нажатия на кнопку run даже понятия не имеют.
                +2
                А мне приходилось сталкиваться. Тут вся соль в том, что теорию, даже в программировании, можно просто заучить. Например не так уж и сложно запомнить, что explicit в C++ запрещает неявное преобразование, и если такой вопрос задаст преподаватель, то и ответ он скорее всего зачтет. При этом отвечающий может вообще не понимать, зачем это нужно, и соответственно не уметь использовать.
                  0
                  Ага. Думаю, даже на хабре людей, которые понимают работу компилятора на уровне глубже, чем «Ну, оно делает так, чтобы мой код, который я написал буковками запустился в виде программы» где-то меньше половины.
                  +9
                  Мануал по тому, как писать мануалы…
                    +11
                    Фабричный подход, все нормально :)
                      –2
                      Опередили :)
                        +3
                        man man =)
                        +19
                        На счет комментирования кода. Несколько лет назад, один из датских коллег сделал мне замечание, которое я запомнил на всю жизнь:

                        Don't comment what you are doing, comment why are you doing this.

                        Не нужно комментировать, что вы делаете, комментируйте почему вы это делаете.
                          –23
                          Абсолютно правильная идея. Что мы делаем — очевидно из кода.
                          Кстати!
                          С появлением UTF-8 переменные и процедуры можно обзывать по русски.
                          Мало кто этим пользуется, но переменная УбитыеВороны, для русскоязычного, намного информативнее чем банальный VoronaCnt :)
                            +10
                            Мастерски владеете Shift+Alt?
                              +1
                              Переключение языка в Windows лучше сразу перенастроить на Ctrl+Shift: во-первых, не надо далеко тянуться (в некоторых случаях, зависящих от наличия и расположения клавиши «Fn», комбинацию Ctrl+Shift вообще можно нажать одним пальцем, задействовав соседние фаланги его), а во-вторых, нет риска перейти в меню приложения, случайно нажав «только Alt» вместо Alt+Shift.
                                +1
                                Я Ctrl+Shift использую для выбора целых слов, например. Из-за этого на машинах с таким способом смены раскладки нередко происходит не совсем то, чего я хочу.
                                  +3
                                  Для того, чтоб нажать Ctrl-Shift — надо руку оторвать от клавы (если конечно не насобачиться нажимать «одним пальцем, задействовав соседние фаланги его»), в то время как Alt-Shift позволяет переключиться, не передвигая руки, ибо Alt прям рядышком с пробелом. Не дураки придумали именно Alt-Shift, хотя сам часто ставил себе переключение по Сtrl-Shift, когда двумя пальцами в клавиатуру тыкал.
                                    0
                                    Тогда уж на CapsLock повесить, одна строчка в AutoHotkey:
                                    Capslock::PostMessage, 0x50, 2,,, A

                                      0
                                      Хорошо, если вы работаете только за одним компьютером.
                                      Если приходится часто работать с разными компьютерами (а то и серверами), да еще под разными учетными записями, то лучше не создавать себе проблему и переучиться на стандартную комбинацию Alt+Shift. В противном случае будет каждый раз подгорать пониже поясницы, когда по привычке будете нажимать свой Ctrl+Shift, а раскладка переключаться не будет.
                                      –2
                                      мне больше нравится Ctrl+Shift, но не в падлу использовать Ctrl+Alt и Cmd+Space.

                                      Если серьезно, то уже несколько раз сталкивался с таким кодом. Читабельность реально выше.
                                      Родной язык воспринимается быстрее, даже при хорошем знании английского.
                                      А если следовать Вашей логике, то и все комментарии надо писать на хорошем английском языке.
                                        +1
                                        Все немного сложнее. Надо не только писать, надо думать на английском :)
                                          +1
                                          А почему же тогда мы здесь общаемся на русском, а не на английском?
                                          Почему обязательным требованием к системам, разрабатываемым для наших заказчиков, является не только русскоязычный интерфейс пользователя, но и все остальное, вплоть до диагностических сообщений в логах ( правда там допускается использовать отдельные иностранные термины )?
                                          Почему те же Microsoft, Cisco, IBM и прочая постоянно вкладывают солидные деньги для переводов технической документации на русский язык?
                                          Вы не находите, что англоязычные форумы иногда очень тяжело читать, даже при native владении английским, особенно, когда проблему обсуждают малазиец, немец и австралиец? А если в беседу встревают японцы с китайцами, это вообще полный караул. Очень напоминает диалоги таджикских и молдавских строителей на русском.
                                          Я информацию ищу сначала в документации, потом на русскоязычных форумах, а на англоязычные иду в последнюю очередь.
                                            +1
                                            Давайте общение и написание комментариев в коде разделять все же. Да, Microsoft, Cisco, IBM переводят документацию на русский. А Вы встречали в их коде комментарии на русском? Я — нет. А потому, что «малазиец, немец и австралиец» — они все поймут комментарий на английском, а отнюдь не на японском или китайском.
                                            Комментарии обычно сжаты и точно по делу, они почти одинаковы будут вне зависимости от автора, потому что там нет специфики родного языка. Именно потому я и упомянул «думать», потому что когда пишешь комментарий, думаешь больше на языке программирования или близко к нему, а язык программирования, как ни странно, тоже почему-то ближе к английскому (ну не считая 1С).
                                      +4
                                      DeadBirds вполне информативно.
                                      Во-вторых, появление UTF-8 не значит, что надо превращать любой язык в 1С.
                                      Лично меня воротит от:

                                      Спр.ИспользоватьРодителя(0);
                                      Спр.НоваяГруппа();
                                      Спр.Наименование=Сред(стр,3);
                                      Спр.Записать();
                                      

                                        0
                                        Был у нас такой любитель русскоязычных переменных, когда ушел из команды, оставил после себя переменные навроде х#@ваПеременная.

                                        Или вот еще, клиент из Франции присылал пример кода с французскими переменными и комментариями. Пришлось google translate-ом пользоваться.

                                        Спасибо, что китайцы или индусы ничего подобного не присылали.

                                        Если уж давать имена идентификаторам, то по английски. Если писать комментарии, то также на английском (хотя, уровень английского языка у разработчиков тоже разный бывает).
                                          0
                                          Я говорю про код во внутренних проектах или, как в данном случае — статьи о программировании для начинающих. В международных — не только переменные, но и камменты должны быть по английски.
                                            +1
                                            Ага. для начинающих… как начнут и как научатся, так потом и будут писать. Будут в статьях переменные на русском — потом и в реальном коде так будет. Так что переменные именовать только на аглицком. И комментарии тоже. Но с комментариями в учебных статьях конечно спорно, надо ли на английском или русском. Как вариант — комментарии в учебных статьях писать не в коде, а в тексте статьи и, конечно. на родном языке, на то она и статья.
                                              0
                                              Даже без знания английского можно именовать переменные более-менее адекватно, достаточно заглянуть в словарик. Заодно и словарный запас расширяется, да и некоторые вещи по-русски без искажений смысла не назовёшь.
                                          +3
                                          Для начинающих нужно и то, и то комментировать.
                                            0
                                            Про комментирование кода очень неплохо сказано в книжке «Правила программирования на Си и Си++, Ален И. Голуб».
                                            Да там и не только про комментирование, там вообще про программирование, что оно есть за штука — очень здорово написано и применимо не только к С/С++, а вообще, как начинающим полезно, так и продвинутым почитать. Я ее раза 3 перечитывал :)
                                            +6
                                            Руководство по написанию статей для начинающих для начинающих.

                                            Следующий уровень — руководство по написанию руководств по написанию статей для начинающих для начинающих для начинающих.
                                              +1
                                              Так и знал, что кто-нибудь напишет комментарии про рекурсию :)
                                                +2
                                                  0
                                                  Написать отзыв на рецензию статьи об исследовании вопроса написания руководств по написанию статей для пишущих статьи по написанию статей для новичков?
                                                0
                                                Хорошая статья, в избранное однозначно)

                                                Интересно, а есть ли статьи которые хоть как-нибудь соответствуют теме сабжа по Java?
                                                  +3
                                                  Мне кажется, что для начинающих в языках программирования вообще писать статьи не надо. Есть книги, почему бы не читать именно их?
                                                    0
                                                    Многого на русском просто нет. Начинающие начинают не только в ЯП. Языки, это пример.
                                                      0
                                                      Цель статьи зачастую — описание решение проблемы или подробное описание конкретного инструмента, как-то: «Понимаем декораторы в Python», «Настраиваем репликацию MongoDB», «Как при помощи молотка и бензопилы открыть бутылку вина» и т.д., книги же, чаще всего, дают обзорные знания по какой-то конкретной предметной области или сущности предметной области.
                                                        0
                                                        Если речь идёт именно об описании узкой темы для продвинутого пользователя, то особой проблемы с подачей обычно не бывает. Топик о статьях для начинающих программистов, путающихся в трёх соснах.
                                                      0
                                                      Позволю одно замечание. Бывшие начинающие, те кто скачивали статейки в универе по модемному инету, брали книжки в библиотеке итд., реально стремились к знаниям и ни один непонятный исходник не был помехой. Сейчас же, бери и на хлеб намазывай только. К слову меня всегда по хорошему задевал непонятный код или нетривиальный алгоритм, было желание дальше вникать снова и снова, пока не добьюсь понимания. При этом рядом наставников не было. Было бы желание у человека…
                                                        –2
                                                        Отсутствие вещей, в которые можно надолго залипнуть (онлайн игры, социальные сети, отсутствие интернета в конце концов), являлось сильным мотиватором к изучению устройства железного друга и созданию чего-то своего. Родись я на 10 лет позже, все могло сложиться в моей жизни совсем по другому.
                                                          0
                                                          Тогда были другие проблемы: отсутствие компьютера, книг и программ. Сложно научиться программировать, если нет среды для программирования. Отвлекающих факторов тоже было полно: уличные игры, девушки, 90-е. Если не хочешь программировать, то и не будешь.
                                                        +2
                                                        А еще давайте осмысленные имена функциям, ибо в вашем примере функция compare на самом деле определяет максимальное число.

                                                        Да и статьи такого уровня для начинающих, это по моему слегка глуповато. Как написать hello world в интернете можно найти уж очень много, а пользователь хабра уж сможет это сделать, не блондинки ведь здесь тусят.

                                                        На мой взгляд надо рассматривать уже более глубокие вещи, на худой конец в этих статьях можно дать ссылки на основы. Многие начинающие программисты C++ не знают как работать с памятью, что и где хранится и т.д. Потому что это скучно, теория и нет практики. А ведь это основа языка. Такую статью можно написать.
                                                          0
                                                          Недавно начал учить RoR, и очень помогли вот эти статьи — http://rusrails.ru/getting-started-with-rails

                                                          И как пример документация к CodeIgniter — тоже хорошее начало работы, все предельно просто, а вот за документацию Zend Framework я бы отрубил пальцы ;)
                                                            +1
                                                            «Человек, который вообще никогда не слышал о программировании»


                                                            Касательно Хабра, не думаю что стоит жертвовать интересными деталями ради выполнения этого пункта.
                                                              +1
                                                              Не факт. Хабр, насколько я понимаю, это не сообщество кодеров, а сообщество IT специалистов. Не все IT специалисты умеют программировать.
                                                                0
                                                                Но те из них, кто умеют это делать, априорно считает себя выше всех остальных:)
                                                              –2
                                                              для начинающих не надо писать статей. их надо учить в университетах математике и писать для них хорошие книги.
                                                                0
                                                                Товарищ Zed Shaw отличный учитель.
                                                                Мне очень понравились некоторые его приемы подачи материала из Learn Python The Hard Way (есть бесплатная веб-версия).
                                                                Хотел научить питону приятеля, и не знал с чего начать лучше и как лучше, в итоге почти всю книгу с ним разжевал на русском)) Можно хоть свою книгу издавать теперь на русском если подкорректировать историю переписки.
                                                                Веб-версия его книги вполне тянет на статьи(там как-раз по урокам разелено на страницы да и комментарии включены где он отвечает на возникшие вопросы).
                                                                  +3
                                                                  Главное не забывать, что пишешь для начинающих, а не для тупых. Начинающие будут благодарны, а тупым всё равно не поможет.
                                                                  • UFO just landed and posted this here
                                                                      0
                                                                      1
                                                                      2
                                                                      3


                                                                      1
                                                                      2
                                                                      3

                                                                        0
                                                                        Нда, к сожалению, в комментариях этот финт не работает, но в постах можно писать как-то так:

                                                                        <table>
                                                                        	<tr>
                                                                        		<td>
                                                                        			<source lang="python">
                                                                        1
                                                                        2
                                                                        			</source>
                                                                        		</td>
                                                                        		<td>
                                                                        			<source lang="python">
                                                                        def hello(name):
                                                                            print("Hello, " + name)
                                                                        			</source>
                                                                        		</td>
                                                                        	</tr>
                                                                        </table>
                                                                          +2
                                                                          Это ж повисицца можно здоровые куски кода так писать! Не то, чтоб кому-то объяснить, тут пока напишешь, у самого ум за разум зайдет с этими ручными тэгами. Нет уж, увольте, не вариант.
                                                                          • UFO just landed and posted this here
                                                                        +2
                                                                        По нумерации строк — вариант с висящими одинокими номерами строк не по порядку все-таки странновато выглядит. Вот так вроде посимпатичнее:

                                                                        #include /* (1) */
                                                                        using namespace std; /* (2) */

                                                                        int main(int argc, char *argv[])
                                                                        {
                                                                        cout<<"Hello, world!"; /* (3) */
                                                                        return 0;
                                                                        }

                                                                        (1) - нужно для cout
                                                                        (2) - cout в пространстве имен std
                                                                        (3) - выводим "Hello, world!"
                                                                          0
                                                                          Да, пожалуй так выглядит получше. Вообще было бы здорово, если бы нумерация ставилась автоматически. Еще неплохо было бы иметь возможность сворачивать листинги, чтобы быстро перейти к следующему за ним тексту…
                                                                          +1
                                                                          Порекомендуйте русскоязычную книгу или мануал для обучения программированию начинающих.
                                                                          Хотелось бы книгу, где просто и понятно были показаны базовые алгоритмы, а в качестве примера ЯП был какой нибудь современный язык, которым потом можно будет пользоваться на практике (желательно кросплатформенный): java, python, c++.
                                                                          В тех книгах, которые я нашел, например:
                                                                          1. Чаплыгин А. Н. Учимся программировать вместе с Питоном — неплохо разжевано, так как книга позиционируется для детей, но к сожалению не дописана, может есть полный вариант?
                                                                          2. У. Вонг Основы программирования для чайников (очень бегло и поверхностно затрагиваются темы, в качестве языка программирования используется Libery Basic)
                                                                          3. Я. Файн Программирование на Java для детей, родителей, бабушек и дедушек — сразу в бой, вплоть до создание программы с GUI.
                                                                          4. Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов — это очень просто! — пытаюсь осилить.

                                                                          Хотелось бы системного подхода на примере современного ЯП с объяснением базовых алгоритмов. Без этого, как мне кажется, получается какое то обучение на коленке.

                                                                          Может быть я просто неправильно представляю процесс начала обучения?
                                                                          В моем понимании сложилась такая картина: изучить язык, потом на его основе пытатся что то реализовать, при этом уже разбираться с базовыми алгоритмами.

                                                                          Будучи студентом 15 лет назад :) (не ИТ специальности) за пару недель до сессии и сдачи экзамена по информационным технологиям, при разжигании костра на даче, нашел книжку, в которой довольно просто излагались все базовые алгоритмы на примере реальных примеров и ЯП. За 2 недели я прочитал ее и легко сдал экзамен, так как не зубрил, а розобрался и все понял. Вот хочу найти что то похожее.
                                                                            +1
                                                                            Гм, так если Вы уже одолели упомянутую книгу (кстати, как называется?), то зачем Вам что-то похожее? Алгоритмы-то базовые не изменились. Тогда уж лучше смотреть не на алгоритмы, а на конкретные языки, и в зависимости от того, что Вам надо реализовать — то и изучать. GUI, консоль или может web-oriented…
                                                                              +1
                                                                              дело в том, что одолел я ее 15 лет назад, а сейчас не помню даже название
                                                                              0
                                                                              По Python www.greenteapress.com/thinkpython/html/index.html хорошая книга, но она на английском
                                                                              • UFO just landed and posted this here
                                                                                0
                                                                                Шикарная статья, ничего более сказать не могу.

                                                                                Only users with full accounts can post comments. Log in, please.