За много лет использования и изучения С++ у меня есть следующее мнение, новичкам советую внимательно прочитать - вам будет очень полезно.
1) Если вы не хотите использовать никаких библиотек потому, что вам лень их изучать или же вам кажется, что свои вы напишите лучше - хорошо подумайте готовы ли вы к тому, что скоро выстрелите себе в ногу. Это адресовано тем, кто уже знает что такое классы, шаблоны и думает что он уже "уверенный программист С++". Язык С++ гораздо сложнее и запутаннее , чем многие люди думают, с помощью него очень просто придти к сложнейшим ситуациям, таким как: "непонятно_почему_прога_не_работает_целый_день_уже_дебагю" и "написал_5000_строк_кода_ничего_не_понимаю_капец".
2) Самая лучшая ( опять же , имхо) книга по С++ для людей, изучающих язык с нуля это Джесс Либерти "Освой С++ за 21 день", даже не думая, покупайте/скачивайте её.
3) Книга Страуструпа, как правильно было замечено, она бесполезна. Причем, мое мнение, что она и опытным программистам тоже бесполезна, потому что есть книге в этом классе и получше.
4) Есть мнение, что перед тем как изучать язык С++ нужно сначала изучать язык Си. На мой взгляд- никаких подтверждений серьёзных этому высказванию нет. Я бы рекомендовал сразу изучать С++ как минимум по следующим причинам: На чистом Си вы не найдёте программиста уже. Так или иначе - что-либо из С++ будет использоваться, потому что программировать на чистом Си - это практически тоже самое. что на ассемблере, его даже называют макроассемблер. Отсуствие типа bool, глобальные переменные и extern'ы вас гарантированно заколебут.
5) Также есть мнение, что мол Си (Си++) не сложнее чем Паскаль и более очевиден. Мой опыт говорит об обратном. Я прекрасно помню каким мне сложным показался С++, когда я только начинал изучать программирование, но уже программировал на Паскале. Кроме того, именно так и говорит массовое мнение. Потому что почти все опытные программисты на С++ начинали не с него, с Паскаля.
6) Не зацикливайтесь на С++. Сейчас программистов, желающих писать на этом языке становится все меньше и меньше. Программистов на С# и Java уже почти столько же, сколько на С++. И вероятнее всего тенденция идет к тому, то скоро языком номер 1 станет именно Сишарп. Причем чуть ли не во всех областях программирования массовых.
_________________ Первый огонь был получен людьми из-за перегрева. Пессимист отличается от оптимиста датой наступления конца света.
Member
Статус: Не в сети Регистрация: 21.01.2004 Откуда: ядерная помойка
Obscury писал(а):
Это точно. Его учебник по С++ по объёму такой же как и по С. Причём читать учебник по С перед чтением учебника по С++, по его уверениям, не нужно...Добавлено спустя 18 минут, 38 секундядерный отход, насколько я помню, меня удивил учебник Подбельского тем, что в нём нет ни слова про глубокое копирование (ну там про копи-конструктор и оператор присваивания). Поправь если я ошибаюсь, может меня подводит память...
именно так и есть. Он значительный объём уделяет именно "сишным" вещам (т.е. ненужным тем, кто уже знает си, и хочет узнать си++) - массивы, указатели, адресная арифметика, да что там - вообще начиная с лексических основ, типов и операторов. Классам уделено, вроде, две главы, сведения общие, но хороший задел на будущее. ПРо конструктор копирования там сказано совсем мельком. Почему- не знаю, особенно при его особой внимательности к вопросам работы с памятью. Добавлено спустя 9 минут, 47 секунд
ядерный отход писал(а):
4) Есть мнение, что перед тем как изучать язык С++ нужно сначала изучать язык Си. На мой взгляд- никаких подтверждений серьёзных этому высказванию нет. Я бы рекомендовал сразу изучать С++ как минимум по следующим причинам: На чистом Си вы не найдёте программиста уже. Так или иначе - что-либо из С++ будет использоваться, потому что программировать на чистом Си - это практически тоже самое. что на ассемблере, его даже называют макроассемблер. Отсуствие типа bool, глобальные переменные и extern'ы вас гарантированно заколебут.
Я согласен с основной мыслью. Тем более, что от СИ++ проще переходить ко всяким явам и дотнета, а они сегодня востребованы. Кстати, в С99 _Bool есть.
Aside писал(а):
Также есть мнение, что мол Си (Си++) не сложнее чем Паскаль и более очевиден. Мой опыт говорит об обратном. Я прекрасно помню каким мне сложным показался С++, когда я только начинал изучать программирование, но уже программировал на Паскале. Кроме того, именно так и говорит массовое мнение. Потому что почти все опытные программисты на С++ начинали не с него, с Паскаля.
Это совсем не так. Я, например, окончил МатМех СПбГУ, и ни на одной кафедре Паскаль не изучался. В школе у меня тоже был Си. Я, может, и не показатель, ибо "опытным программистом" себя назвать не могу - мне приходится этим заниматься, но это издержки профессии, однако с утверждением "все начинали с паскаля" не согласен совершенно.
Aside писал(а):
6) Не зацикливайтесь на С++. Сейчас программистов, желающих писать на этом языке становится все меньше и меньше. Программистов на С# и Java уже почти столько же, сколько на С++. И вероятнее всего тенденция идет к тому, то скоро языком номер 1 станет именно Сишарп. Причем чуть ли не во всех областях программирования массовых.
Человеку, знакомому с Си++ освоить джаву и шарп не будет стоить никаких усилий. Грубо говоря, сел, и начал писать, сходу причём, лишь заглядывая в хелп.
Это совсем не так. Я, например, окончил МатМех СПбГУ, и ни на одной кафедре Паскаль не изучался.
Понимаете, я изучал паскаль в школе, глазами школьника С++ смотрелся очень сложным. Речь идет о первом языке программирования, а не о языке, которому вас первый раз учат в универе. В универах сейчас паскаль все меньше и меньше встречается. (А встречается ли вообще ?) Да и это правильно, потому что такой уровень программирования должна давать школа. В универе должны уже давать что-то более серьёзное.
ядерный отход писал(а):
однако с утверждением "все начинали с паскаля" не согласен совершенно.
Ну вот дядьки крутые, которым щас за 30 - они с него и начинали и таких полно. и не только дядек. я вот например тоже застал.
Цитата:
Человеку, знакомому с Си++ освоить джаву и шарп не будет стоить никаких усилий.
Да, все правильно.
_________________ Первый огонь был получен людьми из-за перегрева. Пессимист отличается от оптимиста датой наступления конца света.
Member
Статус: Не в сети Регистрация: 30.07.2006 Откуда: Москва-Ярик
Aside писал(а):
я изучал паскаль в школе
Мне вообще пришлось начинать с Бейсика, который сейчас просто ненавижу Потом перешел на паскаль, и можно сказать что успешно на нем застрял. Для разработок в финансовой сфере (торговля ЦБ и фьючерсами, роботы/МТС), вообще говоря это самый предпочтительный язык - цена ошибок очень велика, поэтому текст программ должен быть не только хорошо откомментирован, документирован, но и сам по себе обязан являться образцом читабельности. Никакой лаконичности, присущей Си диалектам, никаких суперсжатых мощных выражений, не рекомендуется использовать. Этап отладки должен быть по возможности самым коротким и элементарным в процессе разработки серьезной МТС. Слышал что некоторые банки в Европе предпочитают брать программистов на Обероне для написания подобных систем. Вобщем, могу с уверенностью утверждать, что роль Паскале-подобных языков школой не ограничивается, хотя нашим правительством вроде как много лицензий на Turbo Delphi закуплено именно для школ
_________________ Плавайте поездами Аэрофлота! И синий BSOD нам заменяет небосвод...
Ну я имел в виду именно Turbo Pascal, а не делфи. Делфи это уже совсем другое программирование. Безусловно хорошая вещь, я тоже на ней успел посидеть, пока в итоге полностью не перешёл на С++. Затем когда Шарп стал популярным я изучил и его. Вот эти 2 языка я щас и юзаю , и никакие другие. Я бы сказал про Шарп, что он имеет всё то удобство и простоту, которые там всем нравятся в Delphi, и так же он взял в себя всю ту мощность, за которую любят С++.
Зы. Говоря "Шарп", я не отделяю его от .NET. Вообще сейчас уже сам язык рассматривать бесполезно. Любой. Даже С++.
Зы2. Есть мнение , что мол "C# это не С++ скорее, а Джава. А джава появилась ещё в девяностых. Но такого ажиотажа она не вызвала. Почему такой ажиотаж вокруг Шарпа ???". Насчет схожести Java & C# тут все верно. Однако ажиотаж, имхо вызван тем, что:
1) С# программисты, это как правило бывшие и текущие C++ программисты - а таких навалом.
2) У C# есть среда, а у джавы её в тот момент... ну не то, что не было, но разница между Visual Studio 2003 и тем что было сто лет назад просто катастрофическая. Я даже больше скажу - из всего того, что я видел для Джавы современного мне понравился только Eclipse, но даже он уступает студии. (имхо конечно, не бейте)
3) Джава тормозит, а Сишарп нет.
4) сам язык мощнее. Можно перегружать операторы. Можно юзать указатели. В Джаве этого делать нельзя.
_________________ Первый огонь был получен людьми из-за перегрева. Пессимист отличается от оптимиста датой наступления конца света.
Member
Статус: Не в сети Регистрация: 09.01.2008 Откуда: Питер
Ну вот люди я знаю тока ХТМЛ. Вот с чего мне начать изучать программирование?
Пока я вижу два пути:
1)Начать с простых и прикладных языков => Сложные языки проще изучать с начала
2)Начать с сложный языков (типа c++\с#) => в последуююще просто орректировка знаний под другие языки
Правильны ли мои выводы?
_________________ Загавариваю компьютеры от вирусов, привораживаю разгон.
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
Aside писал(а):
Но такого ажиотажа она не вызвала.
да, потому что сыра была. Сейчас жавобум, жавовакансий щас в разы больше чем .NET (по крайней мере тут в Питере), каждая аутсорс-контора занимается клепанием проектиков на J2EE.
Aside писал(а):
Я даже больше скажу - из всего того, что я видел для Джавы современного мне понравился только Eclipse, но даже он уступает студии.
давно смотрел. На мой взгляд Intellij IDEA как среда намного мощнее студии. Но это имхо.
Aside писал(а):
Джава тормозит, а Сишарп нет.
весьма спорно.
Aside писал(а):
сам язык мощнее. Можно перегружать операторы. Можно юзать указатели. В Джаве этого делать нельзя.
Это да. Особенно если взять С# 3.0. Хотя указатели используются в 0.0001% случаев.
Member
Статус: Не в сети Регистрация: 21.01.2004 Откуда: ядерная помойка
Aside писал(а):
Понимаете, я изучал паскаль в школе, глазами школьника С++ смотрелся очень сложным. Речь идет о первом языке программирования, а не о языке, которому вас первый раз учат в универе. В универах сейчас паскаль все меньше и меньше встречается. (А встречается ли вообще ?)Да и это правильно, потому что такой уровень программирования должна давать школа. В универе должны уже давать что-то более серьёзное.
Ну может теоретически и должна, но многие мои одногруппники никакого опыта программирования не имели вообще, так что приходилось разбираться по ходу. Без всяких паскалей. В школе у меня был си. Делфи изучают в нек. местах.
Aside писал(а):
Ну вот дядьки крутые, которым щас за 30 - они с него и начиналии таких полно. и не только дядек. я вот например тоже застал.
Видимо, мы разных дядек видели. Так или иначе, ваше обобщение некорректно хотя бы потому, что я таких не знаю.
alpet писал(а):
Вобщем, могу с уверенностью утверждать, что роль Паскале-подобных языков школой не ограничивается, хотя нашим правительством вроде как много лицензий на Turbo Delphi закуплено именно для школ
Турбо делфи вообще бесплатно распространяется, а изучение делфи сегодня - это обречение себя в лучшем случае на поддержку уже готовых программ - так себе перспектива. Сейчас практически нигде ничего не начинают с нуля на делфи. Если вы действительно этими вопросами интересуетесь, то знали бы, что сейчас в основном всё пишется на шарпе и джаве и различные системы управления, и даже банковские системы. И, кстати, код очень удобочитаем и понятен. Всё это си-подобный синтаксис.
Aside писал(а):
Ну я имел в виду именно Turbo Pascal, а не делфи. Делфи это уже совсем другое программирование.
Без разницы. В первом приближении можно считать, что Делфи = это паскаль + ООП.
Aside писал(а):
1) С# программисты, это как правило бывшие и текущие C++ программисты - а таких навалом.2) У C# есть среда, а у джавы её в тот момент... ну не то, что не было, но разница между Visual Studio 2003 и тем что было сто лет назад просто катастрофическая. Я даже больше скажу - из всего того, что я видел для Джавы современного мне понравился только Eclipse, но даже он уступает студии. (имхо конечно, не бейте)3) Джава тормозит, а Сишарп нет.4) сам язык мощнее. Можно перегружать операторы. Можно юзать указатели. В Джаве этого делать нельзя.
Я не согласен с этими пунктами. Джава - очень популярна, особенно на западе. Не хочется просто затевать религиозные войны, но ваша категоричность здесь совсем неправильна, особенно насчёт тормозов. Да и по поводу IDE неправда. Да и указатели - не аргумент (тут уже говорили об этом).
armadillo писал(а):
начни с паскаля или С простого
странный совет.
AimCube писал(а):
1)Начать с простых и прикладных языков => Сложные языки проще изучать с начала2)Начать с сложный языков (типа c++\с#) => в последуююще просто орректировка знаний под другие языки
Я плохо понимаю, что такое простые языки, а что такое сложные. C# - простой язык, если есть понимание. что такое классы. Я бы советовал изучать C++ и основы ООП, ну а дальше всё по колено уже будет.
member+
Статус: Не в сети Регистрация: 16.01.2004 Откуда: Estonia,Tallinn
AimCube писал(а):
Ну вот люди я знаю тока ХТМЛ. Вот с чего мне начать изучать программирование?
Учитывая вопрос лучше начать JavaScript, и им-же и закончить. (человек действительно желающий серьёзно заниматься программированием не будет задавать такой вопрос) Добавлено спустя 4 минуты, 24 секунды
Catar писал(а):
Aside писал(а):
Джава тормозит, а Сишарп нет.
весьма спорно.
При прочих равных бесспорно, но на практике (в коммерческих продуктах) чаще всего зависит от слишком многих факторов. (Начиная с жадности инвесторов, и до того в каком настроении офисная уборщица подметала пол.)
Member
Статус: Не в сети Регистрация: 11.04.2004 Откуда: СПБ
Vladson писал(а):
При прочих равных бесспорно, но на практике (в коммерческих продуктах) чаще всего зависит от слишком многих факторов. (Начиная с жадности инвесторов, и до того в каком настроении офисная уборщица подметала пол.)
Обоснования? результаты тестов? корявый и тормозной софт можно и там и там написать, а от интерпретации в Java отказались уже черти когда.
ЗЫ. У меня есть пример проекта, где указатели в Сишарпе становятся краеугольным камнем. Обработка изображений. Т.к. эти приложения очень критичны к скорости, то использование указателей спасает производительность там.
_________________ Первый огонь был получен людьми из-за перегрева. Пессимист отличается от оптимиста датой наступления конца света.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения