views:

195

answers:

5

I am interested in getting a few Microsoft Certs and I am currently facing the option for .NET Framework app development language.

My choices are C++, C#, and Visual Basic.

I have some experience with C, Java, and Visual Basic .NET primarily through college. I honestly would like to know what the best would be for developing stand-alone applications in Windows workstation (local) environment.

This is for my career and honestly, 90% of the developers are all experienced in the above three languages and I wanted to improve my chances of staying employed by learning/certifying myself on my own time.

+1  A: 

I think that studying Visual Basic or C# is the best choice. C++ is used but I think that its use is mainly in its native version, without .NET support, and in the future I think that it will be used only for high performance tasks.
You can also study WPF if your intent is developing a stand-alone application.

Maurizio Reginelli
My greatest fear is becoming embedded in a particular language that leads me in a corner of having to start all over again. I am heavily leaning towards C# because of the popular demand I am seeing for it but most of the developers have strong C++ AND C# or VB, not a single one of them knows only VB.NET and old-school C like me. Which I particularly don't like and automatically makes me feel way behind on the curve, not to mention the lack of experience in the field.Is C# considered more professional orientated that VB? VB seems... too easy and highly approachable as a language.
Cain
I agree with your assessment of VB. I took a course on it as an introduction to computer programming while in high school, through a local college. That class was full of moms and fogies. :P
Eric
Wouldn't Java/Javascript be more of the language of choice for smartphone developers? Thats what I have always assumed, but I guess a language that is non-system specific can be employed anywhere. Thanks for the comment.
Cain
Sure, Java is good for many smartphones. I just strongly advocate a solid understanding of C/C++ because after putting in time and hassle learning it, no other language has been difficult to pick up. That definitely says something about how much easier it would be to initially just go with C# or VB.Net, but the under-the-hood stuff you'll pick up while wrestling C will make you better.
Eric
I took a semester of Computing Theory where they taught us C with Unix at the same time so it is much more micro-managing using the C then VB.net for sure. I am not too crazy about OOP and the fact that I am a relatively new programmer really baffles people because normally older programmers enjoy the level of control they have with C/C++.
Cain
+4  A: 

I feel this is not going to be a popular answer with the OP and I know it's been discussed to death before (here and in general), but do you really need certifications to "stay employed"? Perhaps branching out into some more radically different technology/way of thinking is a better way to be a well-rounded developer, and be employed in the better part of the industry where programmers are not viewed as some sort of interchangeable generic resources?

Especially considering that Microsoft's technologies are usually a moving target, this seems like an expensive endeavour that does not have a good return on investment of your time and money.

Other than that, as far as I am aware, building up your domain expertise and a professional network is a more valuable (and more slowly depreciating!) investment in the long-term career-wise.

Alex B
Its fine you can speak your mind, it was just that I saw them as something to show that I have initiative at work and at home to be a solid player in the field. I have always been interested in Intrusion Detection and Network Security but I felt that getting solid with a popular language or two and some developer experience would help keep my foot/leg/kneecap in the door.
Cain
If you're trying to break into the security field, your only choice is C/C++ (between the choices you mentioned). Serious security practitioners work at that lower level, with a real compiled language because they can strictly define what the machine is going to do with every pointer, reference, integer, and bit. I can't even imagine a security application for C# other than the fact that it doesn't give you the flexibility to make the kinds of mistakes you'll have to learn not to make in C.
Eric
My only concern with this is, education is not enough, they want work experience in the field and their has not been any job that didn't want 2+ years of IT/Network security prior to it. But I believe you are right, C/C++ can be machine independent or at least very simple and ported to Win/Nix machines. From my experience at least, they teach us to code with that in mind and to know what our compilers can and can't do for us.
Cain
+1  A: 

It may not help you hang on to your current job, but my advice is opposite Maurizio's. In my experience, a less commonly mastered language (of those you mentioned, that's C++) will ensure you are always in demand... with a few caveats. As long as you can be fairly certain your chosen language isn't going anywhere for a while, you're good. C++ certainly isn't going to be outdated in the foreseeable future. And, if you can learn to program well in C++, C# and VB will be really easy to pick up. My most valuable languages are the handful of assemblies I know. It is uncommon nowadays to know assembly, but it will never go away, so I'll be gainfully employed forever (assuming I want to keep working for The Man 'til I die). ;)

Eric
Although most of the platforms we work with are .NET focus, I was highly leaning to C++. It is much like C with classes, which I know, is a very robust language and Visual C++ is very easy to start learning, but I believe you are correct, C/C++ are harder to get into, yet with C++ I am always seeing it in demand, for years now.
Cain
@Cain Don't fall into "C++ is very much like C" trap. Idiomatic C and C++ are worlds apart.
Alex B
Understood I will do a little more indepth analysis of C++, I have been told that learning C is a great step in learning C++: )
Cain
+1  A: 

I'd be more concerned about being embedded too - it seems more and more development is heading towards smartphones, which is not a .NET area at all. You'd be wise to choose C# for employability (its the same as VB.NET really, just has ; and {} which you'll pick up quickly) but C++ for the 'I can do anything' roles coming up in the future.

I can say, from an employer perspective, that we would never turn anyone away from a C# job who knew VB.NET - the two are so similar that its just syntax differences. The important thing is to know .NET, not one of those two languages.

gbjbaanb
I see, having learned a great deal of VB.NET and its structure, I would probably focus a little on learning C# and more focusing on the .NET framework over all.
Cain
A: 

A recruiter whom I trust told me that once you're working in a field, certifications in that don't count for much. Certifications can help, if you're not currently in that field, but they're no guarantee.

Having said that, the certification study materials are very helpful in terms of basic coverage of a technology that you don't know. Read them and use them for reference.

Microsoft certifications don't tend to be language-specific; there's no certification specifically for VB or C#. They're all about .NET technologies. You can use either language, although it's good to know both, and they really aren't that different in the .NET world.

My advice would be to pick a broad technology area (web or desktop), and focus on that area. There's a lot to learn, and some common areas (services, XAML) that will be valuable in either world. Dive in and just "build stuff". Hands-on is the best teacher.

Cylon Cat
Thats not a bad idea (learning stuff hands on), especially since learning C# or C++ would be an in informal environment. As far as picking a broad technology, I do not really have any interest on WEB based development. Now as far as whether I want to learn it or not, it might not matter because I might have no choice since I think its 3 to 1 as in they need 3 web app designers vs. 1 desktop based.
Cain