Здравствуйте, Lorenzo_LAMAS, Вы писали:
AR>>ИМХО, лучше с С начать. Керниган, Ричи
L_L>И чем это лучше, если человеку именно С++ нужен?
А, ну если именно он нужен, то конечно не надо. Я подумал, чел вообще с начала за программирование взялся, никогда раньше ничего не программил
Re[4]: Начинаю!
От:
Аноним
Дата:
13.02.04 07:19
Оценка:
Здравствуйте, Amon-RA, Вы писали:
AR> А, ну если именно он нужен, то конечно не надо. Я подумал, чел вообще с начала за программирование взялся, никогда раньше ничего не программил
Я, честно говоря, раньше не кодил. Но почему начать лучше с С а не С++ ? В С++ синтаксис, вроде, по-богаче. А у линуха с С++ проблем нет? Или он С больше любит?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Amon-RA, Вы писали:
AR>> А, ну если именно он нужен, то конечно не надо. Я подумал, чел вообще с начала за программирование взялся, никогда раньше ничего не программил
А>Я, честно говоря, раньше не кодил. Но почему начать лучше с С а не С++ ? В С++ синтаксис, вроде, по-богаче. А у линуха с С++ проблем нет? Или он С больше любит?
Просто С++ — бездна. "Числа нет звездам, бездне — дна." Не отпугнула бы.
С — начало этой бездны, вот и все
Здравствуйте, Аноним, Вы писали:
А>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала.
Я в свое время начинал изучение С и С++ с книги "Начальный курс С и С++" Авторы Березин Б.И. и Березин С.Б.
Эта книга все еще встречается в магазинах...
Один из самых обычных и ведущих к самым большим бедствиям соблазнов есть соблазн словами: "Все так делают".
Лев Толстой
Здравствуйте, Аноним, Вы писали:
А>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала.
Здесь в ресурсах есть описание на
1. Эффективное программирование на С++. Серия C++ In-Depth
2. Основы программирования на С++. Серия C++ In-Depth
Рекомендую 1, тк именно про С++, на достаточно современном уровне. 2 так и не осилил до конца — ну нет у автора таланта писать коротко и ясно. А я так вообще учился по Свану "...освой борланд С++ 4.5..." и ничего, жив еще
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, Vamp, Вы писали:
А>>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. V>>Я бы советовал Страуструпа.
B>Сначала — ни в коем случае. Это мое ИМХО.
И мое тоже. Но у меня есть еще одно: Стенли Б. Липпман — "C++ для начинающих" (C++ Primer).
B>Сначала — ни в коем случае. Это мое ИМХО.
Мое имхатое имхо в том, что как раз это — то что нужно. Иначе можно начитаться всякой лабуды и абсолютно неверно представлять себе любые мало-мальские конструкции, выходящие за рамки "hello, world".
Я, кстати, не понимаю, с чем связано мнение об этой книжке как о сложной. Очень простая, доходчивая и понятная книга. Я же не Кнута советую. Это если говорить об изучении С++.
Другое дело, что если ресь идет об изучении программирования вообще, то я бы не рекомендовал начинать с С/С++. Лучше всего начать с бейсика — если ее в школе, классе в 7. Если школьные годы прошли или бейсик освоен — то тогда Паскаль. Не дельфи, не обджект паскаль, а самый банальный Виртовский паскаль. Как максимально абстрагированный язык, идеально подходящий для освоения концпеций алгоритмического программирования. Паралелльно Лисп, Пролог — чтобы знать, что не алгоритмами едиными человек жив.
И уже потом приступить к С/С++ как языкам практической реализации. И читать Страуструппа.
Здравствуйте, ivan_k, Вы писали:
_>Здравствуйте, Аноним, Вы писали:
А>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. _>Здесь в ресурсах есть описание на _>1. Эффективное программирование на С++. Серия C++ In-Depth _>2. Основы программирования на С++. Серия C++ In-Depth
_>Рекомендую 1, тк именно про С++, на достаточно современном уровне. 2 так и не осилил до конца — ну нет у автора таланта писать коротко и ясно. А я так вообще учился по Свану "...освой борланд С++ 4.5..." :super: и ничего, жив еще :)
Сван — рулез! Была у нео суперкнига "Программирование для windows 3.11", где полкниги было про С++ и ООП
You will always get what you always got
If you always do what you always did
Re: Начинаю!
От:
Аноним
Дата:
13.02.04 08:29
Оценка:
Всем спасибо. Для себя сделал такой вывод:
Куплю 2 книги: Страуструпа и Стенли Липпмана — "C++ для начинающих" (на случай если по Страуструпу чего-то не пойму).
З.Ы.: Вывод основан на том, что: бейсик я в школе прошел (довольно успешно), pascal не хочу из принципа, а писать на API (под VC++) более-менее могу.
Меня недавно спросили, какую книгу по С++ читать (в наличии имелся Страуструп, но он им казался сложным и неудобоваримым). Я согласился, что читать Страуструпа не очень, и что книга туманно-темновата местами. Но, сказал я, все равно, книга Страуструпа, по-моему, лучшая. Еще, правда, С++ primer Липпмана ничего, но после Бьярна его уже читать не стоит.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Amon-RA, Вы писали:
AR> Просто С++ — бездна. "Числа нет звездам, бездне — дна." Не отпугнула бы. AR> С — начало этой бездны, вот и все
Обучаясь на C, человек просто вынужден сразу иметь дело с самыми темными уголками
этой бездны (адресная арифметика, преобразования типов и т.п.). Обучаясь на C++,
вполне можно отложить изучение этих вещей "на потом", для начала используя
стандартную библиотеку, избавляющую от низкоуровневых "уголков".
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Vamp, Вы писали:
V> Лучше всего начать с бейсика
Java, C#, Pascal, Ada, Eiffel или функциональные языки — да; но не Basic!
It is practically impossible to teach good programming style to students that
have had prior exposure to BASIC; as potential programmers they are mentally
mutilated beyond hope of regeneration. -- Edsger Dijkstra
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Я вот с бейсиком не знаком, однако подобное слышал и мне интересно, почему столь уважаемый человек как Дейкстра сказал такое? Что уж так плохо в бейсике?
Of course, the code must be complete enough to compile and link.
Здравствуйте, Павел! Вы писали:
V>> Лучше всего начать с бейсика
ПК> Java, C#, Pascal, Ada, Eiffel или функциональные языки — да; но не ПК> Basic!
ПК>
It is practically impossible to teach good programming style to
ПК> students that have had prior exposure to BASIC; as potential
ПК> programmers they are mentally mutilated beyond hope of regeneration. --
ПК> Edsger Dijkstra
Тот Васик о котором говорил Дейкстра и современный (.NET) это две бооольшие разницы.
ПК>Java, C#, Pascal, Ada, Eiffel или функциональные языки — да; но не Basic!
Дейкстра — он конечно мэтр... Но вот я, например, с Бейсика начал — и вроде не мутировал ментально. Просто это такой самый простой, абсолютно ничем не замутненный язык концепций. То есть — что есть переменная? Что значит а=а+1? Концептуально ведь не такая очевидная вещь. Человек, знакомый с алгеброй и не знакомый с программированием вообще скажет — это значит маразм. а не равно а+1 ни при каких значениях а.
А вот тут ему объяснят — это означает взять то, что хранится в а, сложить с 1 и поместить обратно в а. Может, даже ящичек нарисуют, на котором а написано.
И совершенно сейчас не важно, что такое переменная, что за 1 и как это — взять, сложить и положить. Что переменные нужно объявлять, указывая их тип.
То же самое с процедурами. С операторами условия. С циклами. Понять концепции, не погружаясь в детали — вот основная задача изучающего бейсик.
Здравствуйте, Аноним, Вы писали:
А>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала.
Начинать надо с моей книжки, бо написана СПЕЦИАЛЬНО для НАЧИНАЮЩИХ — моих студентов.
Смотреть на BHV
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Amon-RA, Вы писали:
AR>ИМХО, лучше с С начать. Керниган, Ричи
В нашем институте (да наверно во многих) сначала преподают Pascal.
Наверно действительно стоит начать с C,
Но почему-то такая бредовая мысля бродит:
"Как бы было хорошо, если бы из языков программирования я первым изучил Assembler"
Абель П. Язык ассемблера для IBM PC и программирования. М.: Высшая школа, 1992. — 447с.
Черт с ним, с бейсиком. Интересно, кто-нибудь Аду использует? А Smalltalk? Не говоря уж о Simula 67 — недавно в библиотеке видал книгу, с трудом удержался чтоб не хватануть
Of course, the code must be complete enough to compile and link.
Здравствуйте, Wasilij, Вы писали:
W>Здравствуйте, Amon-RA, Вы писали:
AR>>ИМХО, лучше с С начать. Керниган, Ричи
W>В нашем институте (да наверно во многих) сначала преподают Pascal. W>Наверно действительно стоит начать с C, W>Но почему-то такая бредовая мысля бродит: W>"Как бы было хорошо, если бы из языков программирования я первым изучил Assembler"
W>Абель П. Язык ассемблера для IBM PC и программирования. М.: Высшая школа, 1992. — 447с.
Переиздание уже было. То ли в прошлом. то ли уже в этом году.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Vamp, Вы писали:
А>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. V>Я бы советовал Страуструпа.
НИ В КОЕМ РАЗЕ!!!!!
Вы что!!! Начинающему советовать такое чтиво — сразу охоту изучать отобете.
Могу посоветоваьть:
1. Дейтелы — ничего вроде книжка. сам не читал, просматривал только.
2. Хенкеманс, Ли — класс, и на примере разработки игрушек.
3. Лаптев В.В. — как раз для начинающих
4. Кениг, Му — проблема только со строками будет.
5. Липпман — практически любая
6. Лафоре — в самый раз для начинающих
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Ага! Поздравляю! Ваше любимое "если такой умный, чего книг не пишешь" Вы воплотили в жизнь — написали книгу! Похвально!
Спасибо!
Но уже следующую пишу. А студентам сказал: ВЫУЧИТЬ НАИЗУСТЬ и мне на лабах отвечать! А кто не выучит — до 5-го курса зачета по С++ не получит!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
АГА я тоже поздравляю! Это великое дело!
LVV>Но уже следующую пишу.
А что если не секрет?
LVV>А студентам сказал: ВЫУЧИТЬ НАИЗУСТЬ и мне на лабах отвечать! А кто не выучит — до 5-го курса зачета по С++ не получит!
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Дейтел в accu.org == Not Recommended
Для профессионалов — действительно так.
Я тож обратил внимание. что эта "сладкая парочка" пишел ПРО ВСЕ! Но для первого чтения — в самый раз.
Сам — то я ее как раз не купил — ничего нового или интересного в ней нету — сплошь элементарные вещи по языку и UML. Но новичку пока больше и не надо ведь. Поэтому, если. например, Липпмана не найдет, то Дейтелы — сгодятся.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Аноним, Вы писали:
А>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. LVV>Начинать надо с моей книжки, бо написана СПЕЦИАЛЬНО для НАЧИНАЮЩИХ — моих студентов. LVV>Смотреть на BHV
а дать общественности почитать-покритиковать? :)
просмотрев содержание, не нашел ничяего про компиляцию из командной строки. Какой-нть гной или чем-нть еще.
Как же быть линуксоидам, решившим изучить С++? :)
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Здравствуйте, Vamp, Вы писали:
V>> Лучше всего начать с бейсика :)))
ПК>Java, C#, Pascal, Ada, Eiffel или функциональные языки — да; но не Basic!
ПК>
It is practically impossible to teach good programming style to students that
ПК>have had prior exposure to BASIC; as potential programmers they are mentally
ПК>mutilated beyond hope of regeneration. -- Edsger Dijkstra
я начинал с бейсика :)
причем с древнего, с нумерацией строк :)
Здравствуйте, Denis, Вы писали:
D>АГА я тоже поздравляю! Это великое дело!
Спасибо! LVV>>Но уже следующую пишу. D>А что если не секрет?
Как что. ООП, конечно! Мне в первой издательство не дало развернуться Говорят — нельзя, серия такая. Книжка должна быть короткой! Я уж изгалялся-изгалялся, чтоб сократить — все равно 512 страниц аполучилось. LVV>>А студентам сказал: ВЫУЧИТЬ НАИЗУСТЬ и мне на лабах отвечать! А кто не выучит — до 5-го курса зачета по С++ не получит!
D>фи.. как студент говорю =)
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Павел Кузнецов, Вы писали:
ПК>>Здравствуйте, Vamp, Вы писали:
V>>> Лучше всего начать с бейсика :)))
ПК>>Java, C#, Pascal, Ada, Eiffel или функциональные языки — да; но не Basic!
ПК>>
It is practically impossible to teach good programming style to students that
ПК>>have had prior exposure to BASIC; as potential programmers they are mentally
ПК>>mutilated beyond hope of regeneration. -- Edsger Dijkstra
J>я начинал с бейсика :) J>причем с древнего, с нумерацией строк :)
ХОТЯ, если быть точным, я начинал с программирования в кодах на БЗ-34 :)))
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Vamp, Вы писали:
А>>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. V>>Я бы советовал Страуструпа. LVV>НИ В КОЕМ РАЗЕ!!!!! LVV>Вы что!!! Начинающему советовать такое чтиво — сразу охоту изучать отобете.
Это смотря как посмотреть. Например, мне было лесно, что я читаю САМОГО Страуструпа — СОЗДАТЕЛЯ — это невольно стимулировало развитие узнать столько сколько знает этот человек или хотя идти в этом направлении. И опять же Страуструп "вопервых строках своего письма" сказал буквально следующее, что "если не будет понятно с первого раза, ничего страшного, вернетесь к этому познее". Так что мне читать Страуструпа было очень даже уютно.
Ну и, конечно, без практических занятий мало толка в одном лишь чтении.
Здравствуйте, jazzer, Вы писали:
J>>я начинал с бейсика J>>причем с древнего, с нумерацией строк
J>ХОТЯ, если быть точным, я начинал с программирования в кодах на БЗ-34
А я тогда вааще!!! восьмеричные коды Минск-22!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lorenzo_LAMAS, Вы писали:
LL> Я вот с бейсиком не знаком, однако подобное слышал и мне интересно, LL> почему столь уважаемый человек как Дейкстра сказал такое? Что уж так LL> плохо в бейсике?
Думаю, важно различать Basic и Visual Basic. Первый не поддерживает даже
структурное программирование, требуя GOTO на каждом шагу. Впрочем, второй,
при наличии C#, Java и т.п. для обучения, имхо, использовать тоже не стоит.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, LaptevVV, Вы писали:
V>> Я бы советовал Страуструпа.
L> НИ В КОЕМ РАЗЕ!!!!! L> Вы что!!! Начинающему советовать такое чтиво — сразу охоту изучать отобете.
Если человек уже знает какой-нибудь язык, и C++ намерен изучить серьезно, то,
имхо, Страуструп — самое оно.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Здравствуйте, Lorenzo_LAMAS, Вы писали:
LL>> Я вот с бейсиком не знаком, однако подобное слышал и мне интересно, LL>> почему столь уважаемый человек как Дейкстра сказал такое? Что уж так LL>> плохо в бейсике?
ПК>Думаю, важно различать Basic и Visual Basic. Первый не поддерживает даже ПК>структурное программирование, требуя GOTO на каждом шагу. Впрочем, второй, ПК>при наличии C#, Java и т.п. для обучения, имхо, использовать тоже не стоит.
Где-то я видел очень хорошее определение ортодоксального бейсика — "ассемблер для домохозяек"
Очень в точку сказано, имхо.
сплошные goto, причем по адресам (номерам строк), а не по символьным меткам, ограниченное количество доступных переменных, их короткие ничего не говорящие названия и возможность положить в них все, что угодно (чем не регистры), при всей бедности арсенала — обязательные функции peek и poke для прямой работы с памятью...
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Это смотря как посмотреть. Например, мне было лесно, что я читаю САМОГО Страуструпа — СОЗДАТЕЛЯ — это невольно стимулировало развитие узнать столько сколько знает этот человек или хотя идти в этом направлении. И опять же Страуструп "вопервых строках своего письма" сказал буквально следующее, что "если не будет понятно с первого раза, ничего страшного, вернетесь к этому познее". Так что мне читать Страуструпа было очень даже уютно.
АШ>Ну и, конечно, без практических занятий мало толка в одном лишь чтении.
АШ>Все это ИМХО.
Как Вам повезло! Я начинал читать С++ по 1-му изданию в 91-м, кажется, году — в Ташкенте. Еще по 1-му изданию. Это была вообще моя первая книжка по С++. Я тогда был настолько далек от ООП, что не НИЧЕГО не понял. Хотя Керникана и Ричи уже был прочитан еще тоже в 1-м издании — все было понятно, только не было практики — не писали тогда на С в Ташкенте. Только врубившись в ООП, уже поработав на Турбо С++ 2.0, я стал чего-то в Страуструпе соображать. Видимо с тех пор осталась во мне к стилю изложения мэтра некаянеприязнь. Да это и понятно — не для новичков он писал все-таки. Его хорошо на столе вместе с другими книжками держать и одновременно две смотреть — угол зрения разный — сильно помогает осмысливать!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, jazzer, Вы писали:
J>а дать общественности почитать-покритиковать?
Могу на мыло прислать 13 глав. Но сразу предупреждаю — где-то еще 9-я ИМХО нормально, 10я — уже скомкана, а 11, 12, 13-я — вообще совсем не то, что хотел написать. J>просмотрев содержание, не нашел ничяего про компиляцию из командной строки. Какой-нть гной или чем-нть еще. J>Как же быть линуксоидам, решившим изучить С++?
А я сразу предупредил во введении. что все примеры — BC3.1, BC5,BCB6,VC6 — других систем у меня не было Издательство согласилось.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Vamp, Вы писали:
V>Другое дело, что если ресь идет об изучении программирования вообще, то я бы не рекомендовал начинать с С/С++. Лучше всего начать с бейсика
Так с ним навсегда остаться можно . + плохой стиль прогаммирования однозначно!
>Если школьные годы прошли или бейсик освоен — то тогда Паскаль. Не дельфи, не обджект паскаль, а самый банальный Виртовский паскаль. Как максимально абстрагированный язык, идеально подходящий для освоения концпеций алгоритмического программирования. Паралелльно Лисп, Пролог — чтобы знать, что не алгоритмами едиными человек жив.
Человек хочет C++ — пусть учит С++. Заодно и C изучит . Ко всему ООП не надо потом будет разгрызать.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Черт с ним, с бейсиком. Интересно, кто-нибудь Аду использует? А Smalltalk? Не говоря уж о Simula 67 — недавно в библиотеке видал книгу, с трудом удержался чтоб не хватануть:)
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Места много требует? (13 глав)
Нет. В архиве — всего полметра.
Но ИМХО, книжка-то не для вас, сэр Лоренцо. Вы уже из нее выросли давно.
Если только для коллекции.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lorenzo_LAMAS, Вы писали:
LVV>>Но ИМХО, книжка-то не для вас, сэр Лоренцо. Вы уже из нее выросли давно. LVV>>Если только для коллекции.
L_L>На халяву — я все люблю
L_L>А если серьезно, то может кому из знакомых пригодится, потому как в магазинах у нас обновление если и будет, то оооочень нескоро.
Сэр Лоренцо, а в каком городе Вы проживаете? Может, она уже у вас есть.
Книжка вышла из печати 13-го января. В Астрахани появилась недели через три. Тираж достаточно большой — 5000 штук. Стоит в Астрахани 150р. , на books.ru — 158 без стоимости пересылки. В магазине БХВ в Питере — 155.
Слать — таки на мыло?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
А можно небольшой ОФФ.
Во-первых можно не отвечать, во-вторых я считаю что это просто огроменный труд написать книгу и ещё раз скажу, что преклоняюсь перед таким делом.
Теперь вопрос:
В чём преимущества ВАШЕЙ книги перед теми что уже есть на рынке, например, перед C++ Primer ? Просто мне, вероятно, предстоит вести курс по С++ и инетересна очень Ваша книга.
АШ>>Ада это женщина, а ты ее так. Ай-яй-яй.
АШ> Кстати, наши в свое время, не разобравшить в истоках названия языка, придумали антагонизм АШ> -язык Рая.
Здравствуйте, jazzer, Вы писали:
J>Первый оператор ЭВМ (машинки Бэбиджа)
Не оператор, а программист. Написала первые две статьи по программированию — о том, что должно входить в систему команд. В частности, про условия и циклы. J>Его жена или что-то в этом роде.
Ада Августа графиня Лавлейс — дочь Байрона (того самого) — женой вроде не была.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, jazzer, Вы писали:
J>>Первый оператор ЭВМ (машинки Бэбиджа) LVV>Не оператор, а программист. Написала первые две статьи по программированию — о том, что должно входить в систему команд. В частности, про условия и циклы.
О, так она круче, чем я думал!
Ну что, заносим в список великих програмерских муз наряду с Барбарой Лисков? :)
J>>Его жена или что-то в этом роде. LVV>Ада Августа графиня Лавлейс — дочь Байрона (того самого) — женой вроде не была.
Здравствуйте, Denis, Вы писали:
D>А можно небольшой ОФФ. D>Во-первых можно не отвечать, во-вторых я считаю что это просто огроменный труд написать книгу и ещё раз скажу, что преклоняюсь перед таким делом.
Ну, на самом деле это такая ж работа по договору. как и программирование.Как всегда, последнего дня не хватает, чтобы все как хотелось, написать — издательство требует "завершения банкета".
D>Теперь вопрос: D>В чём преимущества ВАШЕЙ книги перед теми что уже есть на рынке, например, перед C++ Primer ? Просто мне, вероятно, предстоит вести курс по С++ и инетересна очень Ваша книга.
Введение
По шутливому замечанию Джеффа Элджера [49], «на рынке продается по крайней мере 2 768 942 книги о С++». И все же выдержите в руках еще одну — 2 768 943-ю книгу о том же самом. Зачем нужна еще одна книга о С++?
Когда я стал преподавать программирование на языке С++ для первокурсников, мне потребовалось выбрать базовый учебник, по которому студенты станут изучать С++ и учиться программировать на этом языке. Перерыв гору литературы, я с удивлением констатировал, что нужной мне книги нет. По той или иной причине ни одна из них меня не устроила. Оказалось, что некоторые очень важные свойства языка часто либо вовсе не описаны, либо рассматриваются на элементарном уровне. Наверное, лучшим выбором была бы книга Стенли Липпмана «С++ для начинающих», однако в настоящее время ее просто не найти.
Все книги о С++ можно разделить на несколько категорий: о самом языке С++, об использовании конкретной среды программирования вроде Borland C++ Builder или Visual C++, и о типовых структурах данных и алгоритмах. Однако по собственному опыту знаю, что этого недостаточно, чтобы научиться программировать на С++. В жизни программисту приходится сталкиваться с целым спектром чисто практических проблем, которые по непонятным мне причинам практически ни в одной книге не излагаются.
Во-первых, как я неоднократно ранее убеждался на собственном опыте, и еще больше раз убедился на опыте моих студентов, изучить язык программирования в отрыве от среды программирования нельзя. Можно прекрасно выучить все нюансы С++, но быть совершенно беспомощным при написании конкретной программы в конкретной системе. Обучение всегда должно происходить в некоторой среде программирования, да и работать всегда приходится в реальной системе, которая имеет те или иные особенности и недоработки.
Во-вторых, программировать, не обращая внимания на операционную систему и аппаратную платформу, тоже невозможно — хотя бы потому, что реализация встроенных типов данных зависит от аппаратуры. И тут существует множество «подводных камней», на которые постоянно «натыкается» начинающий программист. А ввод/вывод в любом языке программирования всегда зависит от файловой системы ОС. Недаром, чтобы уменьшить эту зависимость, ввод/вывод в С++ полностью вынесен в отдельные библиотеки.
И наконец, проблема русских букв. Естественно, ни одна книга иностранных авторов, многие из которых просто замечательны и мне очень нравятся, эту проблему не затрагивает. Удивительно, но и в книгах российских авторов тоже нет об этом ни слова! Между тем, это серьезная проблема для начинающего программиста, требующая определенных знаний и навыков.
Такой же серьезной проблемой является переход от консольных приложений к оконным. Помню, как мучительно долго я, опытный программист, разбирался в идеологии и особенностях программирования для Windows. Угнетало количество технических деталей и отсутствие четких ориентиров, на что в первую очередь обращать внимание. Тем более такой переход сложен для новичка, несмотря на то, что сейчас существует достаточно много отличных книг, обучающих программированию для Windows.
Кому адресована эта книга
Книга представляет собой практическое введение в программирование на С++ в распространенных в России средах фирмы Borland и Visual C++. Книга написана, в первую очередь, для моих студентов — начинающих программистов, которые хотели бы научиться программировать на С++. Желательно (но не обязательно), чтобы имелся опыт программирования (хотя бы учебных программ) на другом языке. Однако и более опытные программисты, надеюсь, найдут в книге немало интересного.
Благодарности
В первую очередь хотел бы выразить благодарность сотрудникам издательства БХВ, без самоотверженного труда которых эта книга просто не могла родиться. Спасибо моим студентам, работа с которыми натолкнула меня на мысль о необходимости написать эту книгу. Не могу не поблагодарить членов команды RSDN, в общении с которыми я провел много часов, выясняя нюансы тех или иных конструкций С++.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
J>я начинал с бейсика J>причем с древнего, с нумерацией строк
Гы. А я с Малого Ассемблера, для Малой Машины. На самом деле, почти плагиат
с миксала, как в последствии выяснилось. Потом С, потом asm, потом ++ ...
На выпускном по программированию в школе сдавал графическую библиотеку для VGA 12h mode,
C + ASM. Написано было в течении года, исходники утеряны, так что пришлось
дизассемблировать объектники. Было же время...
Кстати, думаю, что начинать лучше с чего-нибудь уровнем пониже, дабы хорошо
представлять как оно все работает, хотя бы в принципе. Что бы потом не плодить
монстров.
Здравствуйте, jazzer, Вы писали:
J>>>Первый оператор ЭВМ (машинки Бэбиджа) LVV>>Не оператор, а программист. Написала первые две статьи по программированию — о том, что должно входить в систему команд. В частности, про условия и циклы.
J>О, так она круче, чем я думал! J>Ну что, заносим в список великих програмерских муз наряду с Барбарой Лисков?
Обязательно!
Хотя фотографий тогда не было, но на портретах она — красавица.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
LVV>Все книги о С++ можно разделить на несколько категорий: о самом языке С++, об использовании конкретной среды программирования вроде Borland C++ Builder или Visual C++, и о типовых структурах данных и алгоритмах. Однако по собственному опыту знаю, что этого недостаточно, чтобы научиться программировать на С++. В жизни программисту приходится сталкиваться с целым спектром чисто практических проблем, которые по непонятным мне причинам практически ни в одной книге не излагаются.
LVV>Во-первых, как я неоднократно ранее убеждался на собственном опыте, и еще больше раз убедился на опыте моих студентов, изучить язык программирования в отрыве от среды программирования нельзя. Можно прекрасно выучить все нюансы С++, но быть совершенно беспомощным при написании конкретной программы в конкретной системе. Обучение всегда должно происходить в некоторой среде программирования, да и работать всегда приходится в реальной системе, которая имеет те или иные особенности и недоработки.
LVV>Во-вторых, программировать, не обращая внимания на операционную систему и аппаратную платформу, тоже невозможно — хотя бы потому, что реализация встроенных типов данных зависит от аппаратуры. И тут существует множество «подводных камней», на которые постоянно «натыкается» начинающий программист. А ввод/вывод в любом языке программирования всегда зависит от файловой системы ОС. Недаром, чтобы уменьшить эту зависимость, ввод/вывод в С++ полностью вынесен в отдельные библиотеки.
LVV>Такой же серьезной проблемой является переход от консольных приложений к оконным. Помню, как мучительно долго я, опытный программист, разбирался в идеологии и особенностях программирования для Windows. Угнетало количество технических деталей и отсутствие четких ориентиров, на что в первую очередь обращать внимание. Тем более такой переход сложен для новичка, несмотря на то, что сейчас существует достаточно много отличных книг, обучающих программированию для Windows.
Вступление хорошее. Вернусь домой -- куплю, если она ещё будет в магазинах.
Кстати, я тут на новогодних праздниках прикупил книжку Джанет Дж. Причард, Фрэнк М. Каррано "Абстракция данных и решение задач на С++. Стены и зеркала (3-е издание)" здесь
Я её прочитал, правда, пулемётом, но в общем, впечатление хорошее. Для студентов -- самое оно. Для продвинутых. Было бы неплохо её отрецензировать на RSDN е, мне кажется.
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Здравствуйте, Amon-RA, Вы писали:
AR>> Просто С++ — бездна. "Числа нет звездам, бездне — дна." Не отпугнула бы. AR>> С — начало этой бездны, вот и все
ПК>Обучаясь на C, человек просто вынужден сразу иметь дело с самыми темными уголками ПК>этой бездны (адресная арифметика, преобразования типов и т.п.). Обучаясь на C++, ПК>вполне можно отложить изучение этих вещей "на потом", для начала используя ПК>стандартную библиотеку, избавляющую от низкоуровневых "уголков".
Я просто в шоке. Это же основа основ. Человек, не понимающий указателей и адресной арифметики не может называться C/C++ программистом.
Ну, в конце концов, есть C# или Java. Там вроде нет тёмных углов. Может, людям, боящимся низкоуровневых аспектов просто не стоит заниматься C/C++?
W>>Абель П. Язык ассемблера для IBM PC и программирования. М.: Высшая школа, 1992. — 447с. LVV>Переиздание уже было. То ли в прошлом. то ли уже в этом году.
Есть у меня какая-то. Очень слабое изложение и ошибок море, начиная от того, что делают разные инструкции (loopne, loope неправильно, если помню, были обьяснены) и кончая разными частями ДОСа.
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, Павел Кузнецов, Вы писали:
ПК>>Здравствуйте, Amon-RA, Вы писали:
AR>>> Просто С++ — бездна. "Числа нет звездам, бездне — дна." Не отпугнула бы. AR>>> С — начало этой бездны, вот и все
ПК>>Обучаясь на C, человек просто вынужден сразу иметь дело с самыми темными уголками ПК>>этой бездны (адресная арифметика, преобразования типов и т.п.). Обучаясь на C++, ПК>>вполне можно отложить изучение этих вещей "на потом", для начала используя ПК>>стандартную библиотеку, избавляющую от низкоуровневых "уголков".
Ш>Я просто в шоке. Это же основа основ. Человек, не понимающий указателей и адресной арифметики не может называться C/C++ программистом. Ш>Ну, в конце концов, есть C# или Java. Там вроде нет тёмных углов. Может, людям, боящимся низкоуровневых аспектов просто не стоит заниматься C/C++?
Речь не о том, чтобы так сразу и называться
речь о том, с чего начинать
сколько рах я пробовал обучать народ плюсам, все стопорились на работе с памятью, но при этом очень сносно писали STL-ные навороты
Здравствуйте, Lorenzo_LAMAS, Вы писали:
LVV>>Но ИМХО, книжка-то не для вас, сэр Лоренцо. Вы уже из нее выросли давно. LVV>>Если только для коллекции.
L_L>На халяву — я все люблю
L_L>А если серьезно, то может кому из знакомых пригодится, потому как в магазинах у нас обновление если и будет, то оооочень нескоро.
А можно и мне прислать? Начинаю изучать C++ с IDE VS 6.0,по тому что найдено в инете не так уж понятно.
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, Павел Кузнецов, Вы писали:
ПК>>Здравствуйте, Amon-RA, Вы писали:
AR>>> Просто С++ — бездна. "Числа нет звездам, бездне — дна." Не отпугнула бы. AR>>> С — начало этой бездны, вот и все
ПК>>Обучаясь на C, человек просто вынужден сразу иметь дело с самыми темными уголками ПК>>этой бездны (адресная арифметика, преобразования типов и т.п.). Обучаясь на C++, ПК>>вполне можно отложить изучение этих вещей "на потом", для начала используя ПК>>стандартную библиотеку, избавляющую от низкоуровневых "уголков".
Ш>Я просто в шоке. Это же основа основ. Человек, не понимающий указателей и адресной арифметики не может называться C/C++ программистом. Ш>Ну, в конце концов, есть C# или Java. Там вроде нет тёмных углов. Может, людям, боящимся низкоуровневых аспектов просто не стоит заниматься C/C++?
Я учился по Страуструпу:он писал ,что зачастую необходимо избегать низкоуровневых кодов ,к тому же знаю стандартный класс allocator(ну а также ,как можно написать свой распределитель).Так о чем это я?..Действительно ли так важно знать адресную арифметику?
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, Vamp, Вы писали:
А>>>>Доброго всем времени суток! Подскажите какую книгу по c++ прочитать для начала. V>>>Я бы советовал Страуструпа. LVV>>НИ В КОЕМ РАЗЕ!!!!! LVV>>Вы что!!! Начинающему советовать такое чтиво — сразу охоту изучать отобете.
АШ>Это смотря как посмотреть. Например, мне было лесно, что я читаю САМОГО Страуструпа — СОЗДАТЕЛЯ — это невольно стимулировало развитие узнать столько сколько знает этот человек или хотя идти в этом направлении. И опять же Страуструп "вопервых строках своего письма" сказал буквально следующее, что "если не будет понятно с первого раза, ничего страшного, вернетесь к этому познее". Так что мне читать Страуструпа было очень даже уютно.
АШ>Ну и, конечно, без практических занятий мало толка в одном лишь чтении.
АШ>Все это ИМХО.
Абсалютно согласен:читать самого создателя языка..Здорово!
Здравствуйте, Шахтер, Вы писали:
ПК>> Обучаясь на C, человек просто вынужден сразу иметь дело с самыми ПК>> темными уголками этой бездны (адресная арифметика, преобразования типов ПК>> и т.п.). Обучаясь на C++, вполне можно отложить изучение этих вещей ПК>> "на потом", для начала используя стандартную библиотеку, избавляющую от ПК>> низкоуровневых "уголков".
Акценты изменены в соответствии с первоначальными намерениями.
Ш> Это же основа основ. Человек, не понимающий указателей и адресной арифметики Ш> не может называться C/C++ программистом.
Вопрос только в порядке обучения. Имхо, действительно, новичку лучше изучить
совсем основательные основы языка, в частности, и программирования, вообще.
Впрочем, как я понимаю, здесь есть, по меньшей мере, две школы: одна предпочитает
учить "снизу вверх", а другая — наоборот. Мне ближе последнее.
Ш> Ну, в конце концов, есть C# или Java. Там вроде нет тёмных углов.
Есть. Только спрятаны лучше, поэтому иногда, когда с ними, все-таки,
сталкиваешься, понимать и воздействовать на происходящее сложнее.
Это о Java. Могу предположить, что с C# примерно та же история.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Вопрос только в порядке обучения. Имхо, действительно, новичку лучше изучить ПК>совсем основательные основы языка, в частности, и программирования, вообще. ПК>Впрочем, как я понимаю, здесь есть, по меньшей мере, две школы: одна предпочитает ПК>учить "снизу вверх", а другая — наоборот. Мне ближе последнее.
А, ну так, мне кажется, человек, который учится языку, должен сам для себя понять, как ему лучше двигаться. А можно ещё учить и сверху, и снизу, к середине.