На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
Страницы: (27) « Первая ... 4 5 [6] 7 8 ...  26 27  ( Перейти к последнему сообщению )  
> Актуальный учебник по С++ , Какой он должен быть?
    Flex Ferrum +1
    развернутое описание механизмов языка, например как у Страуструпа, может отпугнуть по началу многих
      Цитата kanes @
      развернутое описание механизмов языка, например как у Страуструпа, может отпугнуть по началу многих

      Согласен. А для тех, кто хочет знать больше - можно сделать раздел "Для тех, кто хочет стать виртуозом". Где в стиле, "а знаете ли вы, что" описать уже разные "тонкости".

      Добавлено
      Ну либо к каждому разделу добавлять это самое "А знаете ли вы, что..."
        Цитата Flex Ferrum @
        Ну либо к каждому разделу добавлять это самое "А знаете ли вы, что..."

        более приемлемый вариант
          Цитата Radagast @
          ИМХО это неправильно. Без понимания СУТИ (хотя бы вкратце) используемых конструкций профи не получится
          У медали две стороны. С одной стороны, да, суть нужна - без неё никуда, без неё - программист больше обезьяна, чем homo sapiens. С другой стороны, есть ряд "специалистов", которые начинают что-то делать на языке(из-за его простоты), а потом, либо остаются на том же уровне "специалиста", либо - увлекаются и начинают разбираться в фундаментальном устройстве языка/платформы/и т.п. Примечательный факт: "специалисты" есть в большом количестве по языкам PHP, Java, Delphi, C#, но, почему-то их нет по языку С++. Если бы они были, то шанс получить в будущем настоящих специалистов просто станет больше. На данный момент С++ отталкивает новичков, а профессионалами не рождаются. С этим сейчас пытаются бороться в комитете. Если будет хорошая книга по С++, которую можно будет посоветовать новичку - будет только лучше. А ознакомится с трудами Саттера с Алексанреску всегда успеется - лишь бы желание было.

          Цитата Radagast @
          Страуструпа и в Стандарте - сперва синтаксис и конструкции языка рассказываются полностью

          Дык же ж так и рассказывают на лекциях в универах - народ ходит и ничего не понимает, а потом на голову прилетает "задание", которое все бегут сплавлять к более опытным коллегам по счастью/несчастью. А почему ничего не понимают? У ребят возникает вполне резонный вопрос: "а зачем мне эти пространства имён", но ответа на него они не слышат, т.е. им дают факт "есть пространства имён, объявляются так".
          Фишка в том тупо синтаксис без какого-либо приложения теряет всю свою красоту. Синтаксис обязательно нужно давать вместе с практикой. Причём, практика должна быть не такая как, к примеру, мне в своё время препод дал: класс точка, унаследуся от него - получи линию, множественно унаследуйся от точки с линией - получи треугольник, т.е. очень отдалённая от реальной жизни задание - оно вроде как и не даёт никакого особого понимания, как пользоваться теми или иными конструкциями языка связанными с наследованием, дык ещё и впридачу противоречит всем канонам ОО-проектирования. Задачи должны быть максимально близки к реальным, а в идеале к каждой задаче должно прилагаться описание объясняющее полезность задачи.
            archimed7592, вот и получается, что надо соблюсти балланс. С одной стороны - показать простоту в практическом использовании языка, с другой - сделать затравку на то, чтобы прочитавший обрел желание дальше развиваться.

            Добавлено
            Кстати, к вопросу о задачах - проблемка то еще та...
              Цитата Flex Ferrum @
              Кстати, к вопросу о задачах - проблемка то еще та...

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

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

                Хм... Как вариант. Начиная от простейших (типа быков и коров, угадай число, и т. п.), потом тетрис, тетрис по сети, с выделенным сервером...

                Добавлено
                Хм... А почему нет? :whistle:
                  Цитата Flex Ferrum @
                  Хм... Как вариант. Начиная от простейших (типа быков и коров, угадай число, и т. п.), потом тетрис, тетрис по сети, с выделенным сервером...

                  ну там и текстовые адвенчуры были, и стратегии. :)
                    Цитата Flex Ferrum @
                    archimed7592, вот и получается, что надо соблюсти балланс. С одной стороны - показать простоту в практическом использовании языка, с другой - сделать затравку на то, чтобы прочитавший обрел желание дальше развиваться.

                    Отдельный раздел - это очень хорошая идея. Как я её вижу: есть разделы beginner, intermediate, advanced.
                    Раздел beginner должен быть достаточно коротким, давать общие понятия о том, как программировать, задачи в основном на развитие алгоритмического мышления, в частности, классы можно либо опустить, либо дать в очень приближенном виде.
                    Раздел intermediate давать чуть более глубокое понимание устройства языка(но не более), и в основном быть направленным на прикладные моменты, задачи, соответсвенно, сугубо прикладные, параллельно должно развиваться абстрактное мышление, понятие чёрного ящика.
                    Раздел advanced - тут подробности в деталях, проблемные места, сложные задачи больше направленные на проблемы реализации уже спроектированной системы.
                    Опционально раздел best practices - сборник рецептов на все случаи жизни.
                    Ну и, собственно, "А знаете ли вы, что..." в буквально в нескольких словах продолжается сама фраза(с целью заинтересовать читателя) и даётся ссылка на главу/параграф из раздела advanced в которой всё подробно описывается.
                    Если сверстать всё жто в XML, то можно будет сделать и генератор pdf'ки, которую хоть на печать потом пускай, и сделать онлайн вариант где "А знаете ли вы, что..." можно будет раскрыть плюсиком и глава подгрузится аяксом.

                    Такая структура учебника будет полезна не только любопытным новичкам, но и профессионалам. Вот спросит сейчас --Ins-- плюсистов, "хочу изучить С++, что почитать". Что ему ответить? А так он сможет "пролистать" разделы beginner и intermediate(т.к. ему не нужно учиться ни алгоритмическому мышлению, ни ОО проектированию) и в течении часа добраться до раздела advanced, где он получит всю необходимую информацию. На самом деле, хороший литературы для профессионалов, как и для новичков - тоже, к сожалению, нет. Я имею профессионалов, имеющих приличный опыт в смежной технологии. Я вот сейчас по долгу службы творю на Java. Я скачал кучу книг по Java, но ни в одной из них предметная область не раскрывается от общего взгляда и мотивации до самого фундамента. Мне кажется, такой литературы нет ни по одному языку/технологии. Подробнее об этой, на мой взгляд, проблеме я писал здесь: Почему компилятор иногда не требует throws? (сообщение #2072006)
                      Flex Ferrum
                      Цитата
                      Ибо кому-то шашечки, а кому-то - ехать. И именно по этому есть желание преподносить материал, начиная с высокоуровневых, а не низкоуровневых абстракций. Объясняя (для любопытных) - на базе чего они реализованы.
                      Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =)
                      archimed7592
                      Цитата
                      Если бы они были, то шанс получить в будущем настоящих специалистов просто станет больше. На данный момент С++ отталкивает новичков, а профессионалами не рождаются.
                      зато это даёт нам, С++ - программистам, ощущение принадлежности к высшей расе, разве оно того не стоит? :D
                        Цитата Flex Ferrum @
                        Кстати, к вопросу о задачах - проблемка то еще та...

                        Это да...

                        Цитата Flex Ferrum @
                        потом тетрис, тетрис по сети, с выделенным сервером...

                        Ошибка номер один: тетриса с выделенным сервером не бывает(в нашей суровой реальности). Это нам понятно, как опыт, полученный при написании тетриса с выделенным сервером можно переложить на более подходящие под выделенный сервер задачи. Новичкам же нужно давать наиболее приближенные к реальности задачи, я считаю.
                        Ошибка номер два: тетрис обыкновенный, тетрис деликатесный, тетрис с соусом... Книги, где одна и та же задача представляется под разными соусами полезны людям, у которых есть опыт и они смогут прочитанное ассоциировать со своим опытом и научиться правильно применять технологию. Почему-то этот подход часто используется в книгах по программированию для новичков, у которых этого опыта, на который они смогли бы спроецировать прочитанное, как раз таки нет и для них этот подход кардинально не подходит. Я понимаю, что авторам книг удобно мусолить одну и ту же задачу, но в результате получается протухшая теоретика - я представляю как сделать тетрис в пятнадцати вариантов, но даже отдалённо не представляю, с чем мне придётся столкнуться когда программирование перейдёт из стадии увлечения в нечто приносящее некий доход. Новичкам нужно давать по возможности более разнообразные задачи, чтобы развить у них необходимое им в дальнейшем мышление.
                        И лирическое отступление: меня, к примеру, не интересует программирование игр, я бы такую игро-ориентированную книгу не купил бы... С другой стороны, практическую часть можно сделать в главах изолированной, тогда можно будет сделать несколько вариантов практических курсов - один игроориентированный, другой вэб-ориентированный(программирование для вэба на С++ - это пока больше, скорее, мечта, но всё же, если говорить о хорошей структуре книги отвлечённо от С++, то высказывание имеет смысл :)), третий универсальный для новичков, неопределившихся куда они хотят податься и т.д. Опять же, в отобразить эти ньансы в подмножество XML будет не так сложно.

                        Добавлено
                        Цитата Radagast @
                        Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =)

                        Почти так и собираемся :).

                        Цитата Radagast @
                        зато это даёт нам, С++ - программистам, ощущение принадлежности к высшей расе, разве оно того не стоит? :D
                        Мне это(то что я наблюдаю повседневно) даёт чуство уныния, если честно.
                          Цитата Radagast @
                          Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =)

                          Вообщем то, ты примерно правильно понял. Это будет даваться параллельно.

                          Добавлено
                          Цитата archimed7592 @
                          Ошибка номер один: тетриса с выделенным сервером не бывает(в нашей суровой реальности). Это нам понятно, как опыт, полученный при написании тетриса с выделенным сервером можно переложить на более подходящие под выделенный сервер задачи. Новичкам же нужно давать наиболее приближенные к реальности задачи, я считаю.

                          Зато бывают сервера (типа гамблера, games.mail.ru, games.yandex.ru и прочее), куда можно зайти, и выбрать себе партнера для игры в паре. ;) Под выделенным сервером мною понимается именно это.

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

                          Примерно понимаю, о чем ты. Но взгляни на это с другой стороны. Сначала идет разбор - как написать просто тетрис, для одного человека. Потом - как написать его же для игры вдвоем (одновременно). Потом - как вдвоем, но по сети. Потом - как навернуть игровой сервер, куда можно подцепиться, и играть с выбранным партнером. Т. е. не переключая читателя в другой контекст (в прошлой главе мы писали Дум, а сейчас - ГТА, утрирую, конечно) показывается эволюция, на примере усложнения конкретной задачи. Сам посуди - примерно так "рождается аппетит", когда что-то получается. Сказал А, хочется сказать Б, и, в конце концов, - Я. Разве не так?
                          На счет разных задач - подумать можно.
                            Вставьте пожалуйста в книгу параграф о том почему в ООП, объекты должны получать сообщения, например тумбочка, которая получает сообщение от сидящей на ней задницы. Почему дверь нужно просить открыться, почему кастрюлька должна уметь варить суп и прочих штуках, которые используются в ООП под лозунгом, что человек мыслит объектно. Я иногда ловлю себя на крамольных мыслях типа: открыть дверь, а не просить ее открыться; поставить кастрюлю на газ, положить, ингридиенты и сварить суп самому; и сесть на тумбочку не посылая ей никаких сообщений. Если сделаете это доброе дело, то вернете мне и наверно многим, кто затрудняется с определением (значением, и как следствие, использованием) сущности (семантики, семиотики) объекта в программе, как выразителя реальной вещи. Вот опять, пока писал текст, прилипла навязчивая мысль реализовать в программе человека, думающего о стакане. Ведь стакану нужно вписать поведение, чтобы о нем могло думаться и попросить: думайся человеку. В общем, очень обяжете.

                            П.С. в книгах, которые читал по ООП и ООД давался ответ что так люди мыслят, а мне надоело так, хочется знать зачем, тогда может вновь захочется.
                              mava, думаю, всему этому будет уделено внимание. Потому как теория - теорией, а практика - практикой.
                                Цитата Flex Ferrum @
                                Зато бывают сервера (типа гамблера, games.mail.ru, games.yandex.ru и прочее), куда можно зайти, и выбрать себе партнера для игры в паре. ;) Под выделенным сервером мною понимается именно это.

                                Ну да, что-то я про них не подумал :). Вот, главное подать человеку этот тетрис с выделенным сервером именно под этим соусом, т.е. вон, сходи на games.yahoo.com и увидишь сетевые шахматы с выделенным сервером, а мы сейчас попытаемся сделать нечто похожее, только чуть попроще - если этого не будет то практически никакого полезного опыта от решения задачи новичек не получит, мне так кажется :(.

                                Цитата Flex Ferrum @
                                Сначала идет разбор - как написать просто тетрис, для одного человека. Потом - как написать его же для игры вдвоем (одновременно). Потом - как вдвоем, но по сети. Потом - как навернуть игровой сервер, куда можно подцепиться, и играть с выбранным партнером. [...] Сам посуди - примерно так "рождается аппетит", когда что-то получается. Сказал А, хочется сказать Б, и, в конце концов, - Я. Разве не так?
                                Да, ты прав.

                                Цитата Flex Ferrum @
                                Т. е. не переключая читателя в другой контекст (в прошлой главе мы писали Дум, а сейчас - ГТА, утрирую, конечно) показывается эволюция, на примере усложнения конкретной задачи. [...] На счет разных задач - подумать можно.
                                Хм, я тут сейчас подумал.
                                То что предлагаю я(про разные задачи) - это будет больше ориентированно на подготовку специалистов, но, т.к. по большей части аудитория будет ориентированна на "специалистов", то, думаю, будет, даже, логичнее пустить какую-нибудь задачу и постепенно наращивать ей ф-ционал, только, немаловажно выбрать такую задачу(или несколько задач) в которых можно будет максимально покрыть прикладную сторону языка и, желательно, чтобы это покрытие достигалось за счёт не синтетических подзадач по наращиванию ф-ционала, а более-менее приближенных к реальности.
                                Что же касается кардинально разных задач - можно сделать отдельным разделом - "практика", для тех, кто захочет углубить свои знания не только в программировании, но и в проектировании и в IT вообще.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (27) « Первая ... 4 5 [6] 7 8 ...  26 27


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0529 ]   [ 16 queries used ]   [ Generated: 19.07.25, 23:50 GMT ]