Форум программистов, компьютерный форум CyberForum.ru

C++ или C#? Что учить первым? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 128, средняя оценка - 4.96
C++ Beginner
0 / 0 / 0
Регистрация: 16.09.2011
Сообщений: 5
17.09.2011, 16:01     C++ или C#? Что учить первым? #1
Привет всем!
Не могу выбрать что учить первым. Хотелось бы выучить язык основательно, и что бы он стал основой для изучения других технологий. C++ говорят что трудный для новичков(знаю Pascal, PHP(немного)). C# легче намного, но потом перейти с него на тот же C++ не получится. Так ли это и что вы лично посоветуете.
Плз писать тем кто уже сталкивался с таким вопросом. Не холиварить!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
17.09.2011, 16:10     C++ или C#? Что учить первым? #2
C++ Beginner, C++ будет для вас сложнее, если вы до него привыкните к другому языку.

При выборе учитывайте, что C# - это только Microsoft, то есть вы будете привязаны в VS и Windows. C/C++ используется практически везде. На них написано очень много ПО для винды и юниксов (в том числе мака). К тому же PHP использует много функций, похожих на функции стандартной библиотеки C.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.09.2011, 16:15     C++ или C#? Что учить первым? #3
Цитата Сообщение от C++ Beginner Посмотреть сообщение
Что учить первым?
если задались таким вопросом то С++ для вас сложен
fantaz1
 Аватар для fantaz1
33 / 25 / 1
Регистрация: 08.11.2008
Сообщений: 107
17.09.2011, 16:17     C++ или C#? Что учить первым? #4
учите С++, после него на любой другой язык перейти будет раз плюнуть
и не такой он уж и трудный, если есть желание то все норм будет. Я начал программировать с С++, потом с легкостью освоил и С#, и Java
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.09.2011, 16:19     C++ или C#? Что учить первым? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от C++ Beginner Посмотреть сообщение
C++ говорят что трудный для новичков
Скорее по C++ слишком много хреновых книг, если с выбором литературы не ошибится, то проблем не должно быть.
Цитата Сообщение от C++ Beginner Посмотреть сообщение
C# легче намного
C# синтаксически богаче плюсов, поэтому как язык не может быть легче по определению (магию шаблонов и макросов в расчет не берем). Писать на нем быстрее и приятней, но не легче.

C++ Beginner, дело не в языке, а в голове и том как Вы думаете, поэтому какой язык Вы выберете не важно.
C++ Beginner
0 / 0 / 0
Регистрация: 16.09.2011
Сообщений: 5
17.09.2011, 16:51  [ТС]     C++ или C#? Что учить первым? #6
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Скорее по C++ слишком много хреновых книг, если с выбором литературы не ошибится, то проблем не должно быть.

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

C++ Beginner, дело не в языке, а в голове и том как Вы думаете, поэтому какой язык Вы выберете не важно.
Харви Дейтел, Пол Дейтел Как программировать на С++ ---- эта книжка хорошая или нет?
Начал читать сегодня.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.09.2011, 16:52     C++ или C#? Что учить первым? #7
C++ Beginner, вроде хвалят, а так не в курсе, не читал.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2011, 17:03     C++ или C#? Что учить первым? #8
C++ Beginner, отличная, одна из лучших, по моему мнению, для начинающих.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
17.09.2011, 17:41     C++ или C#? Что учить первым? #9
Цитата Сообщение от C++ Beginner Посмотреть сообщение
Харви Дейтел, Пол Дейтел Как программировать на С++ ---- эта книжка хорошая или нет?
Начал читать сегодня.
В этой книге масса упражнений разной сложности. Есть всякие классические задачи.
Еще в этой книге для примера разрабатывается программное обеспечение для банкомата с помощью ООП. Так же в этой книге в виде упражнения вы можете написать свой свой машинный язык SML, т.е. низкоуровневый язык и потом свой высокоуровневый язык, который будет транслироваться на этот низкоуровневый язык SML. Естественно все это эмуляция с помощью C++.
И это еще не все.
PS Да, я рекламирую свою книгу, которую я сейчас читаю)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.09.2011, 18:16     C++ или C#? Что учить первым? #10
Я пробовал C# учить, мне он не очень понравился...
Во-первых, мне не нравиться MSVS, слишком перегруженный интерфейс. В линуксе IDE поудобнее будут, но писать на шарпе для никсов как-то глупо =)
Во-вторых, полноценно шарп будет работать только под виндой(огромнейший минус на мой взгляд).
В-третьих, зачем этот язык вообще нужен? Он произошел от C++ и Java, но ничего нового, чего нету в с++ или яве, я не заметил.
В-четвертых, по синтаксису он очень смахивает на с++, но многое там вырезано( if ( a % 2) к примеру, просто не скомпилируется). Кстати, интересно, в каком месте
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
C# синтаксически богаче плюсов
Я бы посоветовал учить плюсы, так как с них несложно перейти на шарп, а обратное неверно.
И вообще, у с++ плюсов больше(целых 2).
P.S. тема холиварная, если не можешь определиться - учи оба.
P.P.S. еще весомый аргумент - если все-таки выберите шарп, то вам придется заводить новый профиль.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
17.09.2011, 18:30     C++ или C#? Что учить первым? #11
Ну, лично я начал с C#. Впрочем, обучали нас на курсах "профессионалы". Так что выбор очевиден. В принципе, да - C# очень прост в обучении. Но важно знать, что он создавался с оглядкой на C++. Вообще, лично мне он ОЧЕНЬ напоминает смесь C++ и Java. Например, в программе есть как минимум один класс - без него не запустится. Но в то же время семантика (мля, как-то сложно, не уверен то ли вообще говорю) языка чем-то схожа с C++. Ну, то есть очень многие понятия были переняты из C++.

Впрочем, если есть возможность, то лучше сразу изучать Java. Принципиальные отличия, конечно, есть, но возможности у этого языка гораздо выше, куда проще в обучении, да и в нашем мире более востребован и применений имеет более широкое. Самый главный минус - низкая производительность, но это, так сказать, константа. То есть программа, грубо говоря, будет работать в два-три-десять раз медленнее аналогичной, но написанной на C++, но зато это практически не зависит от объёма задачи (входных данных). Кстати, это относится и к C#. Производительностью он не блещет.

Впрочем, изучайте то, что хотите. C++ я после C# изучил и даже более досконально. И никаких проблем - спокойно изучаю самостоятельно и C++ (продолжаю) и платформу .NET [стараюсь - никто не помогает =( ]. C++ проще начинать изучать. Синтаксис его, всё же проще и нет за***ва с классами. Поэтому первые, тривиальные программы очень просты, понятны и прозрачны. По "встроенным" возможностям, C++, конечно, уступает его родственнику, но это с лихвой компенсируется полнотой Тьюринга и более быстрым компилятором, а также более эффективной работой.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
17.09.2011, 18:52     C++ или C#? Что учить первым? #12
что C#, что Java - параллельное развитие C++. я бы предпочел начинать с C++. понять особенности двух прочих языков несложно.

а вот про сложности изучения других языков - бред. знание английского не мешает учить испанский. разобравшись в С++ ты освоишь большинство приемов, используемых в других языках. останетс ятолько выучить другой синтаксис и разузнать про мелкие особенности.
вот переходить от одной парадигмы программирования к другой - сложно. если ты ни разу не видел, к примеру, Лисп, Пролог, то может произойти разрыв шаблонов)
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
17.09.2011, 18:58     C++ или C#? Что учить первым? #13
Цитата Сообщение от AnyOne697 Посмотреть сообщение
программа, грубо говоря, будет работать в два-три-десять раз медленнее аналогичной, но написанной на C++, но зато это практически не зависит от объёма задачи (входных данных)
Это как? Любой алгоритм за O(c), где c - константа? Класс...

Цитата Сообщение от AnyOne697 Посмотреть сообщение
По "встроенным" возможностям, C++, конечно, уступает его родственнику
Почитайте про контейнеры STL и алгоритмы STL. Ужаснётсь.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.09.2011, 19:09     C++ или C#? Что учить первым? #14
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Кстати, это относится и к C#. Производительностью он не блещет.
Программа на C# может спокойно работать быстрее аналогичной на C++ т.к. у JIT'а гораздо больше информации об окружении в котором работает программа, поэтому он может использовать гораздо более весомые оптимизации, в том числе платформеннозависимые.
Цитата Сообщение от AnyOne697 Посмотреть сообщение
применений имеет более широкое
Чем C++, который может работать везде и всегда? Очень сомневаюсь.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2011, 19:13     C++ или C#? Что учить первым? #15
Цитата Сообщение от talis Посмотреть сообщение
Любой алгоритм за O(c)
Имелось ввиду, что если на С++ одна программа при одних входных данных выполняется секунду, то на джаве она же с такими же входными данными будет выполняться (гипотетически, со слов AnyOne697) 20-30 секунд, а с другими входными данными на плюсах она выполняется 2 секунды, на джаве же 40-60 секунд. Т.е. множитель - константа.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
17.09.2011, 19:43     C++ или C#? Что учить первым? #16
Цитата Сообщение от talis Посмотреть сообщение
Это как? Любой алгоритм за O(c), где c - константа? Класс...
Это не верно в корне, так как принципиально, оценка с верху не принимает во внимание константы, а оценивает только скорость роста сложности программы по отношению к увеличению сложности входных данных. Поэтому O(c) - немного некорректно, тогда уж О(1).

Цитата Сообщение от silent_1991 Посмотреть сообщение
Имелось ввиду, что если на С++ одна программа при одних входных данных выполняется секунду, то на джаве она же с такими же входными данными будет выполняться (гипотетически, со слов AnyOne697) 20-30 секунд, а с другими входными данными на плюсах она выполняется 2 секунды, на джаве же 40-60 секунд. Т.е. множитель - константа.
О да, всё именно так!
Цитата Сообщение от talis Посмотреть сообщение
Почитайте про контейнеры STL и алгоритмы STL. Ужаснётсь.
STL - это далеко не встроенные возможности языка C++. Здесь разговор был ТОЛЬКО о языке программирования. STL - это библиотека, встроенная почти во все современные компиляторы. Впрочем, есть wiki. Хотя, странно, она говорит, что STL включён в стандарт языка. Что ж. Это к лучшему =) Но стоит заметить, что всё же STL - обобщённые алгоритмы. Он никак не затрагивает сетевые подключения, а использование сетевых возможностей в C++ выходит... Не очень удачным.
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Программа на C# может спокойно работать быстрее аналогичной на C++ т.к. у JIT'а гораздо больше информации об окружении в котором работает программа, поэтому он может использовать гораздо более весомые оптимизации, в том числе платформеннозависимые.
Платформонезависимые оптимизации, которые работают лучше оптимизаций C++? Странно, а почему тогда C# до сих пор не стал заменой Java? Впрочем, возможно это и так, а всё объясняется банальной тупость =(

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Чем C++, который может работать везде и всегда? Очень сомневаюсь.
Java может тоже работать везде и всегда (почти). Phyton - язык настолько высокого уровня, что возможно даже портирование на мобильные телефоны. То есть абсолютная независимость от аппаратной начинки. C++ чуть-чуть не то. Да, он используется в написании операционных систем, драйверов, часто программ. Но всё же он слабо применим, например, для серверов, облачных сервисов. А всему виноват кривой .NET, которым я так и не смог спарсить html, а запустив VS2010 C# за пару минут написал поиск нужной информации и её вывода в файл. Впрочем, не знаю как запустить этот код из под C++. Мб кто подскажет?..
Так что я знаю, что он используется везде. Но далеко не всегда! Почти все end-user приложения разработаны с использованием Java, C#, Phyton - разработка быстрее, удобнее, кроссплатформенее (возможно я не прав).
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.09.2011, 19:48     C++ или C#? Что учить первым? #17
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Хотя, странно, она говорит, что STL включён в стандарт языка.
Действительно, странно, что Standart Template Library включена в стандарт.

Цитата Сообщение от AnyOne697 Посмотреть сообщение
Он никак не затрагивает сетевые подключения
при чем тут они? есть куча библиотек для плюсов для этого. В стандартной только самые универсальные и необходимые алгоритмы/контейнеры.

Цитата Сообщение от AnyOne697 Посмотреть сообщение
Платформонезависимые
Перечитайте, что процитировали =)

Последний абзац вообще не понял =(
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
17.09.2011, 19:50     C++ или C#? Что учить первым? #18
Цитата Сообщение от AnyOne697 Посмотреть сообщение
C++ чуть-чуть не то. Да, он используется в написании операционных систем, драйверов, часто программ. Но всё же он слабо применим, например, для серверов
Да ладно! Про apache слышали? Про тысячи игрушек, вроде Half-Life (1 и 2), DeusEx, Quake (все) и так далее

Цитата Сообщение от AnyOne697 Посмотреть сообщение
А всему виноват кривой .NET, которым я так и не смог спарсить html
.NET тоже кривой, но дело в руках.

Добавлено через 39 секунд
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Почти все end-user приложения разработаны с использованием Java, C#, Phyton - разработка быстрее, удобнее, кроссплатформенее (возможно я не прав).
Про Qt слышали? Про MFC и WinAPI, в конце концов? Про gtk?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.09.2011, 19:54     C++ или C#? Что учить первым? #19
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Платформозависимые оптимизации, которые работают лучше оптимизаций C++?
Естественно, компилятор C++ не знает на какой платформе будет работать приложение и поэтому не может применять платформенно зависимые оптимизации, JIT же знает, может и делает.
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Странно, а почему тогда C# до сих пор не стал заменой Java?
Потому что не все любят MS и не все пишут ориентированные на MS приложения.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2011, 20:00     C++ или C#? Что учить первым?
Еще ссылки по теме:

C++ Что учить? visual c++ или Borland c++
C++ Подсчитать сумму символов между первым и последним 'z'. Что надо изменить или дополнить?
C++ А что лучше учить С++ или Делфи ?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2011, 20:00     C++ или C#? Что учить первым? #20
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Здесь разговор был ТОЛЬКО о языке программирования
Ок, с помощью ТОЛЬКО языка (Java, C#, на ваш выбор) сделайте хотя бы вывод на экран. Этого у вас не выйдет, потому что все операции по связке ОС-программа в конечном итоге выполняются через системные API. Просто в джаве уже написан класс (заметьте, библиотечный) по работе с сетью, а в стандартной плюсовой библиотеке такого класса нет. Поэтому в джаве мы используем обёртку над системными апи, а в плюсах сами эти апи.
И да, STL описана в стандарте, поэтому C++ и STL неотделимы друг от друга.
Yandex
Объявления
17.09.2011, 20:00     C++ или C#? Что учить первым?
Ответ Создать тему
Опции темы

Текущее время: 11:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru