What C "language" should I learn?

gothamhunter

Diamond Member
Apr 20, 2010
4,464
6
81
I'm looking to get into programming again. I've done a lot of it in college but haven't since then (only two years), but that was mainly Java, VB, HTML, and some others. What C based language should I learn? I really love coding and at some point hope to get a career coding, so what is really in demand? I realize I will start off at a beginner level.

So, watcha think? C#? C++?
 
Last edited:

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
C#...

It's not really a C language though. C and C++ are dead as far as career paths though unless you write drivers or video games, but good luck finding any opportunities there. They won't let you put a foot in the door unless you have had previous experience.

C# is more accepted as business development though.

C# is a dot net language, which uses the dot net framework. It's not really much different than a VB.Net (which I'd also learn if you go that route as they are similar)... Basically C# is more C type syntax (semi colons at the end of the lines, etc) version of what you'd find in VB.net.

EDIT: I see alot of jobs out there using AJAX, ASP.net (which is developed in C# or VB.net) and Javascript these days (those combined). Web programming in general seems to be the highest demand last time I looked.
 

Leros

Lifer
Jul 11, 2004
21,867
7
81
C# is probably the best if you're looking for a career. Its pretty easy to learn and there are a lot of places out there really embrace .NET development.
 

Absolution75

Senior member
Dec 3, 2007
983
3
81
I would say C++ because of the fact that its very easy to go from C++ to C#, but the inverse is not true at all. Learning memory management is still important even for GC languages.


But C# isn't a bad place to start either. Its very widely used.
 

esun

Platinum Member
Nov 12, 2001
2,214
0
0
C#...

It's not really a C language though. C and C++ are dead as far as career paths though unless you write drivers or video games, but good luck finding any opportunities there. They won't let you put a foot in the door unless you have had previous experience.

C# is more accepted as business development though.

C# is a dot net language, which uses the dot net framework. It's not really much different than a VB.Net (which I'd also learn if you go that route as they are similar)... Basically C# is more C type syntax (semi colons at the end of the lines, etc) version of what you'd find in VB.net.

EDIT: I see alot of jobs out there using AJAX, ASP.net (which is developed in C# or VB.net) and Javascript these days (those combined). Web programming in general seems to be the highest demand last time I looked.

Hahahaha, oh boy. C/C++ dead career paths? Yeah right.

To the OP: If you really want to learn properly, I would start with C++ then maybe learn C# afterwards if you find the need. Learning C++ gives you a solid foundation so that you can understand the lower-level issues in programming that may be hidden by C#.

If you just want to learn any language to get a job, then find the industry you want to work in and figure out what language they're using, then go learn that.
 

Cogman

Lifer
Sep 19, 2000
10,284
138
106
C#...

It's not really a C language though. C and C++ are dead as far as career paths though unless you write drivers or video games, but good luck finding any opportunities there. They won't let you put a foot in the door unless you have had previous experience.

C# is more accepted as business development though.

C# is a dot net language, which uses the dot net framework. It's not really much different than a VB.Net (which I'd also learn if you go that route as they are similar)... Basically C# is more C type syntax (semi colons at the end of the lines, etc) version of what you'd find in VB.net.

EDIT: I see alot of jobs out there using AJAX, ASP.net (which is developed in C# or VB.net) and Javascript these days (those combined). Web programming in general seems to be the highest demand last time I looked.

BS. There are TONS of C/C++ jobs out there. It is one of the largest markets out there next to Java. Embedded systems, drivers, firmware, OS software, High speed computing, etc, are all very heavily C/C++ dependent.

The recent job fair that I went to confirmed this, the majority of people were hiring for C/C++ or Java.

That being said, I agree with your C# recommendation. It is a growing market, has most of the features of Java without the annoyances. In other words, it is Java done right.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,284
138
106
Hahahaha, oh boy. C/C++ dead career paths? Yeah right.

To the OP: If you really want to learn properly, I would start with C++ then maybe learn C# afterwards if you find the need. Learning C++ gives you a solid foundation so that you can understand the lower-level issues in programming that may be hidden by C#.

If you just want to learn any language to get a job, then find the industry you want to work in and figure out what language they're using, then go learn that.

Well, really, you'll learn about memory management and pointers. Every new language that I've ever seen comes with a garbage collector so I'm not so sure that it will lead to any grand new insights.
 

gothamhunter

Diamond Member
Apr 20, 2010
4,464
6
81
Thanks for the recommendations. I figured C++ or C# would be the way to go, but I wasn't sure which one.

I'm looking for a position in programming in general. My current position has me troubleshooing applications and doing software deployment (an Application Admin if you will), but my heart really lies with coding and they don't offer said position type here. If a coding position opened up somewhere, as long as I knew the language, I would want to try it out. Programming for video games sounds intriguing as I am a big time gamer, but I'm sure that is a saturated field, etc etc...

So I guess think of it this way. I'm not programming right now. Who I'm programming for won't matter. All that matters is investing in a language that 1) Will have job security, 2) Has a farily open market now, and 3)Is "future-proof" as far as we can tell.

Based on that, is the general concensus still C#?
 

Kirby

Lifer
Apr 10, 2006
12,028
2
0
All that matters is investing in a language that 1) Will have job security, 2) Has a farily open market now, and 3)Is "future-proof" as far as we can tell.

Based on that, is the general concensus still C#?

Based on your criteria, also C/C++. :p

My advice is to ask yourself what kind of programming you want to do. I like embedded programming and low-level stuff, so my preference is C/C++.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Just learn to program something. Doesn't matter what to begin with, but I don't know that I would encourage starting with C++. It's nice to at least get a foundation in the basics of structure, control flow, functions, variables, parameters, etc., before diving into a terse, semantically rich language like C++.

These days I tend to think that starting with HTML and javascript, and learning to walk the Document Object Model of a webpage, manipulate elements and styles, handle events, etc., is as good a place to start as any. It does pollute the pure programming concepts with having to learn about the structure of a document, and styles, but we don't really have a ubiquitous tool like a BASIC interpreter to be used for simply playing with print statements the way we used to. If there is such a tool on the web that would be an even better place to start, but in any case, I would start with something fairly simple and learn the fundamentals.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
Hahahaha, oh boy. C/C++ dead career paths? Yeah right.

I have not seen a single C/C++ job listed on any job searching sites every single time I've ever looked. Maybe it's Minnesota, but here, C/C++ is dead.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
I have not seen a single C/C++ job listed on any job searching sites every single time I've ever looked. Maybe it's Minnesota, but here, C/C++ is dead.

Just got a new job back in March..... writing C++.
 

gdansk

Diamond Member
Feb 8, 2011
4,175
6,974
136
If you already know Java I wouldn't recommend learning C#, much too similar. That said, C# is my favorite language to work with at the moment. I'd learn something where you must manage your own memory in systematic fashion, C++.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
Lucky! I prefer C++ as I like writing the more low level stuff. Maybe some day I will find one out there. :)

It's all about networking really. The job definitely wasn't listed anywhere on a public site. I talked with the CTO briefly, sent over my resume that afternoon, then had a long phone interview the next day with him, then an in person interview with the dev team the following day and an offer by the end of the week.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Your language choice should be influenced by the kind of code you want to write. If you want to write apps, learn C# or Objective-C or Java or VB, etc.

If you want to write servers, backends, compilers, infrastructures, databases, etc., learn C and/or C++.
 

iCyborg

Golden Member
Aug 8, 2008
1,344
61
91
I have not seen a single C/C++ job listed on any job searching sites every single time I've ever looked. Maybe it's Minnesota, but here, C/C++ is dead.
Which job searching sites are these?

Most of the financial sector is still C++, telecom as well. And already mentioned drivers, embedded and gaming. And many big companies still do a lot of C++ devt, like Google, MS, Intel etc.

Though it's true that C# and Java are becoming more needed than C/C++. But it's far from being dead.
 

esun

Platinum Member
Nov 12, 2001
2,214
0
0
Well, really, you'll learn about memory management and pointers. Every new language that I've ever seen comes with a garbage collector so I'm not so sure that it will lead to any grand new insights.

If you understand memory management and pointers, you can always move to a language that hides those concepts. If you don't, you cannot move back to C/C++ without learning them. And while it is true that most all new languages include GC, it is also true that a huge number of programs are still written in C/C++ and even more already exist that are written in C/C++ that someone has to maintain (and no, they will not let you re-write their million line code base just because you don't understand pointers).

Again, if you intend to work in an industry that makes non-performance-critical business applications, then go ahead, learn whatever language they're using (likely C#). If you want to get a solid foundation so you could work in any number of fields (embedded systems, scientific computing, or any field with any sort of space or time constraints) then learn C/C++.

EDIT: Another way to look at it is this: let's say you were looking for a C# developer and saw someone's resume listing 5 years of C++ experience is on it (and no C#). There's a decent shot you'd interview that person knowing they could pick up C# very quickly.

Now if you were looking for a C++ developer and saw someone's resume listing 5 years of C# development on it (and no C++), very likely you'd toss it and move on, because you'd know they are lacking some fundamental concepts that are important in C++.
 
Last edited:

Ben90

Platinum Member
Jun 14, 2009
2,866
3
0
EDIT: Another way to look at it is this: let's say you were looking for a C# developer and saw someone's resume listing 5 years of C++ experience is on it (and no C#). There's a decent shot you'd interview that person knowing they could pick up C# very quickly.

Now if you were looking for a C++ developer and saw someone's resume listing 5 years of C# development on it (and no C++), very likely you'd toss it and move on, because you'd know they are lacking some fundamental concepts that are important in C++.
This, C/C++ is a much better foundation.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
I have not seen a single C/C++ job listed on any job searching sites every single time I've ever looked. Maybe it's Minnesota, but here, C/C++ is dead.

Apparently you do not know how to use the search engines or which good ones are out there.

Dice just now gave me back 52 listing in Minn within the past 2 weeks that reference C++.

Those listings cover all areas of the S/W spectrum, embedded, .NET, Web, QA, etc,
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
Apparently you do not know how to use the search engines or which good ones are out there.

Dice just now gave me back 52 listing in Minn within the past 2 weeks that reference C++.

Those listings cover all areas of the S/W spectrum, embedded, .NET, Web, QA, etc,

I never heard of Dice. Thanks for the heads up.

I mainly use the mnworks.org site, which is part of the Minnesota Department of Employment.

When I search for C++, I just get a bunch of useless jobs. (I do see a few legit ones there however).

For example

5+ years of experience developing and - or supporting large-scale web applications. - Strong skills in Windows Server admin and - or troubleshooting, TCP - IP networking &amp; troubleshooting, database admin and - or programming. - Solid development and troubleshooting knowledge of SQL Server, multi-tier web applications, .NET Framework. - Professional experience with a modern programming language (e.g. C++, C#, VB, Java). - 5+ years experience with web-based technologies (HTML, HTTPS, IIS, ASP, JavaScript, XML - XSL and CSS, etc). - 5+ years professional experience with object oriented technology.

It's not really a C++ job... It just mentions C++.

But I can check out Dice.
 

Blueychan

Senior member
Feb 1, 2008
602
0
76
I never heard of Dice. Thanks for the heads up.

I mainly use the mnworks.org site, which is part of the Minnesota Department of Employment.

When I search for C++, I just get a bunch of useless jobs. (I do see a few legit ones there however).

For example



It's not really a C++ job... It just mentions C++.

But I can check out Dice.

It mentions C++ even though it's not a C++ job because usually C/C++ programmers could pick up C#/Java/etc. in matter of weeks. I started with C/C++ and I can tell you that the transition to C# and Java is pretty easy.
 

Colt45

Lifer
Apr 18, 2001
19,720
1
0
I'd learn plain old C first.

Pretty handy be it for *nix, or bare metal / embedded stuffs. If that gets you off, at least. :awe:
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
Pick a language because you have a project in mind that language is suited for. Trying to learn a language without a goal will just be frustrating and lack direction.

So build an iphone app and learn obj-c, write a small sprite based video game with C#/XNA tools, develop or help bug fix a small open source linux app written in C.

Find a reason to learn the language.