Discussion Locked

Want to learn C#; should I learn C++ first?

0 helpful
4 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Well, I am primarily a network guy but I've done a bit of web development with VB.NET/ASP.NET, and I'm kinda hooked on programming now so I want to move into that.

Like the title says, I want to learn C# as my main development language instead of VB.NET, but since it's a C-style language I'm wondering if I should start by learning C++ first.

I actually have bought a C++ book (C++ Primer, 4th edition) but from giving it a glance, the actual language semantics look vastly different than C#, aside from the use of the curly braces and the case-sensitivity.

I'm actually pretty comfortable with those things already, so should I just start with learning C#?

Any advice is appreciated!

EDIT: Also, I know that I should probably make this a seperate thread, but does anyone know of any decent programming LOGIC books? You know, to give me the basis foundation for everything else.. keep in mind that I don't have a CompSci degree so I don't have the Calculus skills (yet.. I'm going back for my bachelor's in like two months and Calculus is a required course). ARE there even books on programming theory that DON'T assume you know Calculus?? Thanks again.

4 replies

by jmgarvin

C# is more java like and C++ is more C like. While each language has its strengths, you need to decide what you want to do.

C# is good for web stuff and wizbang apps that have a lot of network flavored features.

C++ is (IMHO) more robust and able to handle anything you can through at it, but the .Net documentation is far more C# centric.

So, what should you learn? I think C++ is easier to pick up, but some people claim C# is. Since you know VB and ASP, C# should be easier, but keep in mind there is a pretty sharp learning curve.

by jaqui

is for .net webservices, mainly
and has almost nothing in common with c++

c++ can be used to write cgi scripts, and do any .net activity that any .net framework language can.
c++ can also do something that the others cannot.
it can be used for a stand alone application. one that doesn't require an interpreter to talk to the kernel for it, then translate kernel output into something it can understand.
( no scripted language talks directly to kernel, only compiled languages do this. [ java requires a vm ( interpreter ), so even though it's starting to be compiled, in part, it still doesn't talk directly to kernel ] )

by ed woychowsky

I jumped into C# knowing a little C++, but a lot of JavaScript and C. The major differences are that C# is compiled to an intermediate code that is they interpreted and that, like Java, it cleans up after itself. This means that while C++ is faster, it is also more prone to memory leaks than C#. Jaqui is right, a vm is required, however, I wouldn?t worry too much, because with the advent of Mono C# should also work on Linux and Apple.

As for C# books O?Reilly?s C# in a Nutshell and Programming C# are pretty good, if you?re interested in ASP .Net get APress?s Pro ASP.Net 1.1 in C#. My favorite logic book is Robert Sedgewick?s Algorithms published by Addison Wesley, may be old, but it doesn?t overload you with math.

by valana

From the post, it seems you want to make applications for the windows environment, since you said you have already played with asp.net and vb.net, and I assume your "a network guy" for windows. If this is true, and you will make those applications on newer windows platforms, it is my opinion that c++ is almost useless. Almost because there are still stuff you can do with c++ & c++.net that you can't do with c# (thats a whole article in itself). I have been a software engineer for windows since Win 95, and have done small amounts of c and c++ programming for dos and win 3.1 prior to that, and with all the complexities of c++, if the above is true (you are developing for newer windows), then c# is the way to go. Much easier and much less to worry about, like memory leaks, and buffer overruns. I hope to never have to leave developing in c# to back to c++, I can do much more with c# in a much quicker time frame than with c++ (using MFC or Win32) or c++.net.
Good luck there are tons of recources out there.
valana

This discussion is closed to new replies.