Which one to start C++ or C#?

Discussion in 'Programming/Html' started by Mohsin hadi, Apr 22, 2012.

  1. Mohsin hadi

    Mohsin hadi Guest

    Messages:
    9
    Likes Received:
    0
    GPU:
    EVGA Nvidia GTX560ti 448c
    Hello.
    I want to ask about programming language.
    I m a begner in programming and i m bit confused from where to start,some people said that for c# you have to learn C++ first,is it true?
    Is it possible to to learn c# without learning C++?
    Which one is widely used in windows apps and game designing etc.
    I want you to guide me through the right path,where to go and how to.
    Thnakx.
     
  2. proliferazor

    proliferazor Master Guru

    Messages:
    684
    Likes Received:
    1
    GPU:
    AMD 7950
    Check my List at the bottom.


    No, however c# is easier to learn, but c++ is lower level means you can have greater control over your code, but requires more work, it is also faster.

    Yes. In fact I would recommend learning C# first. Then c++. You do not have to, I just think it would be easier.

    Most AAA games are written in c++ and/or c. It is however easier to write windows style apps with C# and .net ( and simple games with XNA ). Unless you use a API like GUI QT with c++.

    If you want to make game engines then c++ is what you want to learn.

    If you really are serious about this, you will need to read a lot. And write a lot of code. If you go the c++/directx or c++/openGL route then I recommend you first learn the older fixed function pipeline first, and get comfortable with it and 3D math, before trying to tackle shaders. As always ractice practice .....

    Here are some books I recommend for c++

    -Beginner
    Beginning C++ through Game Programming http://www.amazon.com/Beginning-C-T...7420/ref=sr_1_1?ie=UTF8&qid=1335137422&sr=8-1

    Beginning Game Programming 3rd ed (intro to directx) http://www.amazon.com/Beginning-Gam...=sr_1_1?s=books&ie=UTF8&qid=1335137920&sr=1-1

    -Advanced
    Game Coding Complete 4th ed ( really good book on making game engines ) http://www.amazon.com/Game-Coding-C...6574/ref=sr_1_1?ie=UTF8&qid=1335137625&sr=8-1


    -Advance How to write highly readable, easily maintainable, quality code
    Code Complete 2 ed (this book is ****ing awesome) http://www.amazon.com/Code-Complete...9670/ref=sr_1_1?ie=UTF8&qid=1335137512&sr=8-1


    However your best option right now, IMO is joining 3Dbuzz, they have just started doing live c++ classes, you get to ask questions, they assign homework (optional) and there is a test at the end of each course. It isn't free but it's not expensive at all either. Read about it here.
    http://www.3dbuzz.com/vbforum/showthread.php?192196&ref=21

    You can watch the first c++ class for free here
    http://downloads.3dbuzz.com/Cpp_Class_1_4_13_12.rar
     
    Last edited: Apr 23, 2012
    RashPlash likes this.
  3. Mohsin hadi

    Mohsin hadi Guest

    Messages:
    9
    Likes Received:
    0
    GPU:
    EVGA Nvidia GTX560ti 448c
    Thanx alot dear...your information is much helpful and i m already downloaded the first class from 3Dbuzz,but brother here in Pakistan its not easy for us to buy the online books and to attend online lectures,is there any tutorials are available at you tube or any other place?
    And i meanly want to join the windows apps and game designing.
     
  4. Mohsin hadi

    Mohsin hadi Guest

    Messages:
    9
    Likes Received:
    0
    GPU:
    EVGA Nvidia GTX560ti 448c
    Its not possible for me to buy a book from online retailer...we have so many problems here in Pakistan.sorry for my poor English.
     

  5. proliferazor

    proliferazor Master Guru

    Messages:
    684
    Likes Received:
    1
    GPU:
    AMD 7950
    You do not have to attend the 3dBuzz classes live you can always watch them by streaming after they do the live class.

    With out books you will have a harder time but not impossible.

    There are lots of websites to help you.

    http://www.cplusplus.com/doc/tutorial/
    http://www.cplusplus.com/reference/

    http://msdn.microsoft.com/en-us/vstudio/hh386302

    http://www.codeproject.com/KB/cpp/

    http://stackoverflow.com/questions/tagged/c++

    http://www.gamedev.net/forum/31-for-beginners/

    That should get you started, and don't forget, google is your BEST FRIEND use it to find any thing you need.

    Free windows IDE
    http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
     
  6. allesclar

    allesclar Ancient Guru

    Messages:
    5,769
    Likes Received:
    176
    GPU:
    GeForce GTX 1070
    C++ is the best starting one.
     
  7. kabusuti

    kabusuti Guest

    Messages:
    11
    Likes Received:
    0
    GPU:
    ATI Radeon
    Everything is possible, but if you know CC+ then you will be able to learn quickly any language which based on it.
     
  8. thatguy91

    thatguy91 Guest

    C++ has different versions, with C++14 being the latest. It's a little different programming that original C++, but is probably better to look in to looking forward.
     
  9. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Why? Imo, C++ has confusing syntax sometimes and overwhelming multiple inheritance and poor template implementation, but its strength points - pointer arithmetic, uncontrollable type casting - are for professionals only. C# has much more better generic types implementation and type casting control.

    Back 20 years ago Pascal was the best language to start the study of programming.

    Edit: Another weak places of C++ are include-files and macros. They can turn programmer`s life to hell.
     
    Last edited: Nov 1, 2014
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    To the OP - if you will decide to install free VisualStudio and start to learn C++ you better install VisualAssist plugin so that it will help you with intelli-sence a lot.

    http://www.wholetomato.com

    Obviously you can find cracked bundle.
     

  11. haz_mat

    haz_mat Guest

    Messages:
    243
    Likes Received:
    1
    GPU:
    1070 FE
    I recommend Stroustrup's books on C++, there are ones for beginners and experts. All straight from the creator of the standard as well. You can easily find them for "free."

    You might also consider Java as a beginning language. It has a c-like syntax but you don't have to worry about pointers or managing your dynamically allocated memory. Once you get the basics on procedural programming and how objects and methods work, then you'll probably be ready to tackle dynamic allocation, constructors/destructors, pointer math, overloading, and other fun stuff.
     
  12. Glidefan

    Glidefan Don Booze Staff Member

    Messages:
    12,481
    Likes Received:
    51
    GPU:
    GTX 1070 | 8600M GS
    I'll say something and i may come out a bit as if i'm throwing you a wrench here.
    If you are a total beginner with programming, why not trying a bit of Python or Visual Basic?
    Only to get the whole mentality of programming, not to use those languages to make anything.
    Don't shoot me now, i'm just telling this as at college they took us through a bit of Visual Basic and then Assembly and C/C++.
    (Not that i remember anything from them anymore...)
     
  13. haz_mat

    haz_mat Guest

    Messages:
    243
    Likes Received:
    1
    GPU:
    1070 FE
    Thats not bad advice at all. Python goes without question as being one of the easiest to learn but still fast, flexible, and widely used. VB is also commonly used outside education, there are plenty of commercially-deployed softwares written in VB. Also, getting to know VB and the .NET stuff makes the transition to C# much smoother later on.
     
  14. Glidefan

    Glidefan Don Booze Staff Member

    Messages:
    12,481
    Likes Received:
    51
    GPU:
    GTX 1070 | 8600M GS
    It's just that if someone told me that back then I might have said "Just give me C++, i don't want to learn something that i won't be using in the end."
    While it's just a way to ease someone in, to get the hang of how how to think and then commit to a language. I see people in Unity's forums saying "I want to take this and move it over there. How?"
    That's shows that perhaps the poster doesn't want to program.
    The solution is dead easy if you have the mentality. It's just "take the coordinates of the object, add to it till it's there."
     
  15. SpecChum

    SpecChum Master Guru

    Messages:
    621
    Likes Received:
    16
    GPU:
    7900xtx - Neo G9
    I miss programming, well sometimes lol

    Not coded "professionally" for over 10 years and not coded at all for over 5. This was about the last time I did anything constructive.

    Anyway, I've got my old DirectX 3D engine on disk (from 2002-2003!) and it uses a custom maths library (handwritten by yours truly using discrete x87 and SSE code paths) and fixed pipeline if you want that? Does have very primitive support for HW T&L and shaders tho. Oh, and MD2 models. Is far from finished tho.

    If you, or anyone else for that matter, wants it just send me your email address and and fire it over. You're free to do whatever you want with it.

    EDIT: forgot to say it's written in C++/asm
     
    Last edited: Nov 7, 2014

  16. Glidefan

    Glidefan Don Booze Staff Member

    Messages:
    12,481
    Likes Received:
    51
    GPU:
    GTX 1070 | 8600M GS
    And where were you when i wanted to start making stuff 10 years ago?
     
  17. SpecChum

    SpecChum Master Guru

    Messages:
    621
    Likes Received:
    16
    GPU:
    7900xtx - Neo G9
    Oops :D
     
  18. SpecChum

    SpecChum Master Guru

    Messages:
    621
    Likes Received:
    16
    GPU:
    7900xtx - Neo G9
    I dare say you know much more than I do nowadays tho.

    I do read a lot and keep up with the newer tech advancement but never put it into practice anymore.
     
  19. CJ3D

    CJ3D Guest

    Messages:
    2,389
    Likes Received:
    4
    GPU:
    Asus GTX970 4GB
    I started with QBASIC, then c/c++, then Java, then C#

    Out of all four I completely recommend C#, no pointers and addressing, no worrying about freeing resources manually (thanks to C# garbage collection), much more modern, cleaner and more polished, hides a lot of the dirt work but stays powerful, Microsoft did a brilliant job designing C# in my opinion. Java comes close but I much prefer C#.

    Sure c++ is better for performance orientated apps such as games and video codecs etc.., but for normal apps you can't go wrong with C#.
    If C# is missing certain API functionality, just PInvoke the c++ dll. Easy...

    I can't stand c++ anymore, so much extra work for no apparent reason. I refuse to code in it if possible.
    Plus coding in C# takes way less time than a c++ app. I'm talking 2-3 days instead of 2-3 weeks.
     
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    CJ3D, completely agree. Plus I can write short tool on C# and give source-file for users to compile it on their computers since csc.exe is distributed with .Net framework.
    Plus even if I give tool in byte-code there is chance that it will be compiled at runtime with much more optimizations than statically compiled C++ code. I mean .Net JIT-compiler has more information about platform and can apply more aggressive optimizations than C++ compiler.
     
    Last edited: Jan 20, 2015

Share This Page