Что изучать C# или С++?

Не могу выбрать что детально изучать C# или C++ с обоими языками знаком поверхностно, помимо 1С - разработки хочется изучить еще дополнительные языки, жажда знаний не дает покоя, у кого есть опыт подскажите, посоветуйте новичку. Буду признателен за советы.
  • Вопрос задан
  • 2537 просмотров
Решения вопроса 6
@alex_ak1
В с++ вы сразу столкнетесь с указателями, их математикой, инклудами, дефайнами и прочей черной магией древних времен. Поначалу это реально сложно понять, особенно если вчитываться и копать. Так что я за c#, он проще, не такой мутный временами и вполне современен.
Ответ написан
Комментировать
EreminD
@EreminD
Кое-что умею
ну, если 1С, то C# вам будет ближе (по области применения), чем C++

больше в сфере экономики и бухгалтерии.

если речь о бизнес-приложениях, то, безусловно C#. На плюсах это тоже можно сделать и делают. Но шарп в этом плане предпочтительнее и уж точно не менне популярен. Сюда же плюсом идет возможность веб-приложений и потенциал мобильной разработки (Xamarin)
Ответ написан
Комментировать
Daniro_San
@Daniro_San
Программист
C# не то что бы легче, просто язык многое делает неявно за тебя, многие вещи сложны внутри, но простые для использования.
C# усваивается легче, идет сразу с библиотеками почти на все случаи жизни.

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

Понимание C++ дает лучшее понимание как устроена та или иная фишка из C#.

Вот пример "неявности" C#:
struct StackWork {  
        public Int32 Value;
    }

   class HeapWork {
       public Int32 Value;
   }
   
   // ...
   StackWork sw1 = new StackWork();
   StackWork sw2 = sw1;
   sw2.Value = 475;
  
   Console.WriteLine( sw1.Value.ToString() ); // 0
   
   // ...
   HeapWork hw1 = new HeapWork();
   HeapWork hw2 = hw1;
   hw2.Value = 475;

   Console.WriteLine( hw1.Value.ToString() ); // 475


То есть, область выделяемой под обьект памяти (куча или стек) зависит от типа, причем при одинаковом синтаксисе ( "new TypeName()" ).
Конечно, это сделано для удобства, но в C# ты не можешь выбирать в какой области памяти разместить свой обьект!

А вот пример на "страшных и неинтуитивных плюсах":
struct MyWork {  
        int Value = 0;
    }
    
   //...
   // Явно, выделяем память в стеке
   MyWork sw1;
   MyWork sw2 = sw1;
   sw2.Value = 475;
   
   cout << sw1.Value; // Как и ожидалось, 0
   
   // Явно, выделяем память в куче
   MyWork * h1 = new MyWork;
   MyWork *h2 = h1;
   hw2 -> Value = 475;
   
   cout << hw1 -> Value; // Как и ожидалось, 475


Интересные вещи есть и там и там.
Для бизнеса конечно выгоднее C# (никаких заморочек, поддержка, библиотеки).
Но все же C++ интереснее для саморазвития.
Ответ написан
AxisPod
@AxisPod
Для большинства задач хватит C#, он при этом куда проще и куда богаче в плане инструментов разработки и библиотек.
Ответ написан
Комментировать
@VZVZ
Reverse-Engineer, Software Developer, Architect
А я так скажу:
Изучать стоит и C#! И C++! И ассемблер! И машинный код учиться прямо в HEX-редакторе править!
А еще программаторы и паяльник!

Ну, как вам такой ответ? Вводит в ступор, да?
А иного и быть не может.
Ведь если вы в вопросе не уточняете свой круг задач, то только такие ответы и можно получить, типа "всяк кулик свое болото хвалит", т.е. люди просто будут вам рассказывать о своих задачах (причем 90% сами толком не умеют о них рассказать, поэтому вам в их историях будет сложно узнать свой случай) и об инструментах, которые они лично для себя выбрали.
А я вот многоболотный кулик, потому хвалю все болота сразу, от C# до паяльника.

Так как я пока что работаю 1С-разработчиком, область применения будет больше в сфере экономики и бухгалтерии.

Это не уточнение. Чем вас не устраивает 1C? Для чего именно нужен другой язык? Подробнее.
Ну скорее таки C#, но всякое может быть, может и C++ не подходит, а вообще что-то иное надо.
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
Да это разные языки, для разных вещей, хотя некоторые области у них пересекаются (например десктопные приложения)

Хотите веб, мобильная кроссплатформенная разработка, десктоп под Win, приложения для UWP, Unity - вам C#
Хотите системное программирование, высоконагруженные системы и вычисления, кроссплатформенный десктоп (тут Qt рулит), Unreal Engine - вам C++.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Hydro
C#/.NET Developer
Поскольку не указана область применения, буду субъективен - c#
Ответ написан
Комментировать
makdoc
@makdoc Автор вопроса
Так как я пока что работаю 1С-разработчиком, область применения будет больше в сфере экономики и бухгалтерии.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы