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.
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
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.
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.
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
Everything is possible, but if you know CC+ then you will be able to learn quickly any language which based on it.
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.
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.
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.
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.
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...)
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.
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."
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
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.
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.
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.