
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (27) « Первая ... 4 5 [6] 7 8 ... 26 27 ( Перейти к последнему сообщению ) |
Сообщ.
#76
,
|
|
|
Flex Ferrum +1
развернутое описание механизмов языка, например как у Страуструпа, может отпугнуть по началу многих |
Сообщ.
#77
,
|
|
|
Цитата kanes @ развернутое описание механизмов языка, например как у Страуструпа, может отпугнуть по началу многих Согласен. А для тех, кто хочет знать больше - можно сделать раздел "Для тех, кто хочет стать виртуозом". Где в стиле, "а знаете ли вы, что" описать уже разные "тонкости". Добавлено Ну либо к каждому разделу добавлять это самое "А знаете ли вы, что..." |
Сообщ.
#78
,
|
|
|
Цитата Flex Ferrum @ Ну либо к каждому разделу добавлять это самое "А знаете ли вы, что..." более приемлемый вариант |
![]() |
Сообщ.
#79
,
|
|
Цитата Radagast @ У медали две стороны. С одной стороны, да, суть нужна - без неё никуда, без неё - программист больше обезьяна, чем homo sapiens. С другой стороны, есть ряд "специалистов", которые начинают что-то делать на языке(из-за его простоты), а потом, либо остаются на том же уровне "специалиста", либо - увлекаются и начинают разбираться в фундаментальном устройстве языка/платформы/и т.п. Примечательный факт: "специалисты" есть в большом количестве по языкам PHP, Java, Delphi, C#, но, почему-то их нет по языку С++. Если бы они были, то шанс получить в будущем настоящих специалистов просто станет больше. На данный момент С++ отталкивает новичков, а профессионалами не рождаются. С этим сейчас пытаются бороться в комитете. Если будет хорошая книга по С++, которую можно будет посоветовать новичку - будет только лучше. А ознакомится с трудами Саттера с Алексанреску всегда успеется - лишь бы желание было.ИМХО это неправильно. Без понимания СУТИ (хотя бы вкратце) используемых конструкций профи не получится Цитата Radagast @ Страуструпа и в Стандарте - сперва синтаксис и конструкции языка рассказываются полностью Дык же ж так и рассказывают на лекциях в универах - народ ходит и ничего не понимает, а потом на голову прилетает "задание", которое все бегут сплавлять к более опытным коллегам по счастью/несчастью. А почему ничего не понимают? У ребят возникает вполне резонный вопрос: "а зачем мне эти пространства имён", но ответа на него они не слышат, т.е. им дают факт "есть пространства имён, объявляются так". Фишка в том тупо синтаксис без какого-либо приложения теряет всю свою красоту. Синтаксис обязательно нужно давать вместе с практикой. Причём, практика должна быть не такая как, к примеру, мне в своё время препод дал: класс точка, унаследуся от него - получи линию, множественно унаследуйся от точки с линией - получи треугольник, т.е. очень отдалённая от реальной жизни задание - оно вроде как и не даёт никакого особого понимания, как пользоваться теми или иными конструкциями языка связанными с наследованием, дык ещё и впридачу противоречит всем канонам ОО-проектирования. Задачи должны быть максимально близки к реальным, а в идеале к каждой задаче должно прилагаться описание объясняющее полезность задачи. |
Сообщ.
#80
,
|
|
|
archimed7592, вот и получается, что надо соблюсти балланс. С одной стороны - показать простоту в практическом использовании языка, с другой - сделать затравку на то, чтобы прочитавший обрел желание дальше развиваться.
Добавлено Кстати, к вопросу о задачах - проблемка то еще та... |
Сообщ.
#81
,
|
|
|
Цитата Flex Ferrum @ Кстати, к вопросу о задачах - проблемка то еще та... ну, у меня есть сабж, где в каждой главе пишешь небольшую игру, таким образом там раскрывается назначение основного синтаксиса языка, и сразу видно, где он сосбтвенно нужен. Очень увлекает. Правда, после языковых возможностей сразу автор шагает по винапи и директу, а стл и буст там практически не упоминается. |
Сообщ.
#82
,
|
|
|
Цитата impik777 @ ну, у меня есть сабж, где в каждой главе пишешь небольшую игру, таким образом там раскрывается назначение основного синтаксиса языка, и сразу видно, где он сосбтвенно нужен. Хм... Как вариант. Начиная от простейших (типа быков и коров, угадай число, и т. п.), потом тетрис, тетрис по сети, с выделенным сервером... Добавлено Хм... А почему нет? ![]() |
Сообщ.
#83
,
|
|
|
Цитата Flex Ferrum @ Хм... Как вариант. Начиная от простейших (типа быков и коров, угадай число, и т. п.), потом тетрис, тетрис по сети, с выделенным сервером... ну там и текстовые адвенчуры были, и стратегии. ![]() |
![]() |
Сообщ.
#84
,
|
|
Цитата Flex Ferrum @ archimed7592, вот и получается, что надо соблюсти балланс. С одной стороны - показать простоту в практическом использовании языка, с другой - сделать затравку на то, чтобы прочитавший обрел желание дальше развиваться. Отдельный раздел - это очень хорошая идея. Как я её вижу: есть разделы beginner, intermediate, advanced. Раздел beginner должен быть достаточно коротким, давать общие понятия о том, как программировать, задачи в основном на развитие алгоритмического мышления, в частности, классы можно либо опустить, либо дать в очень приближенном виде. Раздел intermediate давать чуть более глубокое понимание устройства языка(но не более), и в основном быть направленным на прикладные моменты, задачи, соответсвенно, сугубо прикладные, параллельно должно развиваться абстрактное мышление, понятие чёрного ящика. Раздел advanced - тут подробности в деталях, проблемные места, сложные задачи больше направленные на проблемы реализации уже спроектированной системы. Опционально раздел best practices - сборник рецептов на все случаи жизни. Ну и, собственно, "А знаете ли вы, что..." в буквально в нескольких словах продолжается сама фраза(с целью заинтересовать читателя) и даётся ссылка на главу/параграф из раздела advanced в которой всё подробно описывается. Если сверстать всё жто в XML, то можно будет сделать и генератор pdf'ки, которую хоть на печать потом пускай, и сделать онлайн вариант где "А знаете ли вы, что..." можно будет раскрыть плюсиком и глава подгрузится аяксом. Такая структура учебника будет полезна не только любопытным новичкам, но и профессионалам. Вот спросит сейчас --Ins-- плюсистов, "хочу изучить С++, что почитать". Что ему ответить? А так он сможет "пролистать" разделы beginner и intermediate(т.к. ему не нужно учиться ни алгоритмическому мышлению, ни ОО проектированию) и в течении часа добраться до раздела advanced, где он получит всю необходимую информацию. На самом деле, хороший литературы для профессионалов, как и для новичков - тоже, к сожалению, нет. Я имею профессионалов, имеющих приличный опыт в смежной технологии. Я вот сейчас по долгу службы творю на Java. Я скачал кучу книг по Java, но ни в одной из них предметная область не раскрывается от общего взгляда и мотивации до самого фундамента. Мне кажется, такой литературы нет ни по одному языку/технологии. Подробнее об этой, на мой взгляд, проблеме я писал здесь: Почему компилятор иногда не требует throws? (сообщение #2072006) |
Сообщ.
#85
,
|
|
|
Flex Ferrum
Цитата Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =)Ибо кому-то шашечки, а кому-то - ехать. И именно по этому есть желание преподносить материал, начиная с высокоуровневых, а не низкоуровневых абстракций. Объясняя (для любопытных) - на базе чего они реализованы. archimed7592 Цитата зато это даёт нам, С++ - программистам, ощущение принадлежности к высшей расе, разве оно того не стоит? Если бы они были, то шанс получить в будущем настоящих специалистов просто станет больше. На данный момент С++ отталкивает новичков, а профессионалами не рождаются. ![]() |
![]() |
Сообщ.
#86
,
|
|
Цитата Flex Ferrum @ Кстати, к вопросу о задачах - проблемка то еще та... Это да... Цитата Flex Ferrum @ потом тетрис, тетрис по сети, с выделенным сервером... Ошибка номер один: тетриса с выделенным сервером не бывает(в нашей суровой реальности). Это нам понятно, как опыт, полученный при написании тетриса с выделенным сервером можно переложить на более подходящие под выделенный сервер задачи. Новичкам же нужно давать наиболее приближенные к реальности задачи, я считаю. Ошибка номер два: тетрис обыкновенный, тетрис деликатесный, тетрис с соусом... Книги, где одна и та же задача представляется под разными соусами полезны людям, у которых есть опыт и они смогут прочитанное ассоциировать со своим опытом и научиться правильно применять технологию. Почему-то этот подход часто используется в книгах по программированию для новичков, у которых этого опыта, на который они смогли бы спроецировать прочитанное, как раз таки нет и для них этот подход кардинально не подходит. Я понимаю, что авторам книг удобно мусолить одну и ту же задачу, но в результате получается протухшая теоретика - я представляю как сделать тетрис в пятнадцати вариантов, но даже отдалённо не представляю, с чем мне придётся столкнуться когда программирование перейдёт из стадии увлечения в нечто приносящее некий доход. Новичкам нужно давать по возможности более разнообразные задачи, чтобы развить у них необходимое им в дальнейшем мышление. И лирическое отступление: меня, к примеру, не интересует программирование игр, я бы такую игро-ориентированную книгу не купил бы... С другой стороны, практическую часть можно сделать в главах изолированной, тогда можно будет сделать несколько вариантов практических курсов - один игроориентированный, другой вэб-ориентированный(программирование для вэба на С++ - это пока больше, скорее, мечта, но всё же, если говорить о хорошей структуре книги отвлечённо от С++, то высказывание имеет смысл ![]() Добавлено Цитата Radagast @ Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =) Почти так и собираемся ![]() Цитата Radagast @ Мне это(то что я наблюдаю повседневно) даёт чуство уныния, если честно. зато это даёт нам, С++ - программистам, ощущение принадлежности к высшей расе, разве оно того не стоит? ![]() |
Сообщ.
#87
,
|
|
|
Цитата Radagast @ Последняя страница вызвала у меня впечатление, что вместо "основы" под названием for вы собираетесь сразу пихать новичку for_each и transform, вот я и написал уточнение =) Вообщем то, ты примерно правильно понял. Это будет даваться параллельно. Добавлено Цитата archimed7592 @ Ошибка номер один: тетриса с выделенным сервером не бывает(в нашей суровой реальности). Это нам понятно, как опыт, полученный при написании тетриса с выделенным сервером можно переложить на более подходящие под выделенный сервер задачи. Новичкам же нужно давать наиболее приближенные к реальности задачи, я считаю. Зато бывают сервера (типа гамблера, games.mail.ru, games.yandex.ru и прочее), куда можно зайти, и выбрать себе партнера для игры в паре. ![]() Цитата archimed7592 @ Ошибка номер два: тетрис обыкновенный, тетрис деликатесный, тетрис с соусом... Книги, где одна и та же задача представляется под разными соусами полезны людям, у которых есть опыт и они смогут прочитанное ассоциировать со своим опытом и научиться правильно применять технологию. Почему-то этот подход часто используется в книгах по программированию для новичков, у которых этого опыта, на который они смогли бы спроецировать прочитанное, как раз таки нет и для них этот подход кардинально не подходит. Примерно понимаю, о чем ты. Но взгляни на это с другой стороны. Сначала идет разбор - как написать просто тетрис, для одного человека. Потом - как написать его же для игры вдвоем (одновременно). Потом - как вдвоем, но по сети. Потом - как навернуть игровой сервер, куда можно подцепиться, и играть с выбранным партнером. Т. е. не переключая читателя в другой контекст (в прошлой главе мы писали Дум, а сейчас - ГТА, утрирую, конечно) показывается эволюция, на примере усложнения конкретной задачи. Сам посуди - примерно так "рождается аппетит", когда что-то получается. Сказал А, хочется сказать Б, и, в конце концов, - Я. Разве не так? На счет разных задач - подумать можно. |
Сообщ.
#88
,
|
|
|
Вставьте пожалуйста в книгу параграф о том почему в ООП, объекты должны получать сообщения, например тумбочка, которая получает сообщение от сидящей на ней задницы. Почему дверь нужно просить открыться, почему кастрюлька должна уметь варить суп и прочих штуках, которые используются в ООП под лозунгом, что человек мыслит объектно. Я иногда ловлю себя на крамольных мыслях типа: открыть дверь, а не просить ее открыться; поставить кастрюлю на газ, положить, ингридиенты и сварить суп самому; и сесть на тумбочку не посылая ей никаких сообщений. Если сделаете это доброе дело, то вернете мне и наверно многим, кто затрудняется с определением (значением, и как следствие, использованием) сущности (семантики, семиотики) объекта в программе, как выразителя реальной вещи. Вот опять, пока писал текст, прилипла навязчивая мысль реализовать в программе человека, думающего о стакане. Ведь стакану нужно вписать поведение, чтобы о нем могло думаться и попросить: думайся человеку. В общем, очень обяжете.
П.С. в книгах, которые читал по ООП и ООД давался ответ что так люди мыслят, а мне надоело так, хочется знать зачем, тогда может вновь захочется. |
Сообщ.
#89
,
|
|
|
mava, думаю, всему этому будет уделено внимание. Потому как теория - теорией, а практика - практикой.
|
![]() |
Сообщ.
#90
,
|
|
Цитата Flex Ferrum @ Зато бывают сервера (типа гамблера, games.mail.ru, games.yandex.ru и прочее), куда можно зайти, и выбрать себе партнера для игры в паре. ![]() Ну да, что-то я про них не подумал ![]() ![]() Цитата Flex Ferrum @ Да, ты прав.Сначала идет разбор - как написать просто тетрис, для одного человека. Потом - как написать его же для игры вдвоем (одновременно). Потом - как вдвоем, но по сети. Потом - как навернуть игровой сервер, куда можно подцепиться, и играть с выбранным партнером. [...] Сам посуди - примерно так "рождается аппетит", когда что-то получается. Сказал А, хочется сказать Б, и, в конце концов, - Я. Разве не так? Цитата Flex Ferrum @ Хм, я тут сейчас подумал.Т. е. не переключая читателя в другой контекст (в прошлой главе мы писали Дум, а сейчас - ГТА, утрирую, конечно) показывается эволюция, на примере усложнения конкретной задачи. [...] На счет разных задач - подумать можно. То что предлагаю я(про разные задачи) - это будет больше ориентированно на подготовку специалистов, но, т.к. по большей части аудитория будет ориентированна на "специалистов", то, думаю, будет, даже, логичнее пустить какую-нибудь задачу и постепенно наращивать ей ф-ционал, только, немаловажно выбрать такую задачу(или несколько задач) в которых можно будет максимально покрыть прикладную сторону языка и, желательно, чтобы это покрытие достигалось за счёт не синтетических подзадач по наращиванию ф-ционала, а более-менее приближенных к реальности. Что же касается кардинально разных задач - можно сделать отдельным разделом - "практика", для тех, кто захочет углубить свои знания не только в программировании, но и в проектировании и в IT вообще. |