What programming language should I take up next?

QED

Diamond Member
Dec 16, 2005
3,428
3
0

I've been programming for 25 years now (pretty much since I was in 1st grade-- kindergarten if you count simply keying in code straight from a BASIC programming manual), and over the years I've picked up a few languages. Some "languages" I would consider myself very well-versed in (C, Perl, PHP, shell-scripting, Progress 4GL), other languages fairly well (SQL, Javascript, HTML/XML/DHTML), and a few others I know just enough to make small changed to an existing program.

Anyways, a new position is available to me and they want to test my general programming capabilities-- unfortunately, none of the programming tests they offer are in a language I am already familiar with. The tests they offer are in ASP.NET, C#, and C++. They already know these are languages I have not worked with in the past, so they are looking to see how well I can adapt to a new language.

My question, for those that know one or more of these languages, is which of these would be quickest for me to "pickup" based on my current background? The tests are in two weeks. Allso, if you know of any quality pre-assesment tests and tutorials online, that would be a great help as well.

 

nickbits

Diamond Member
Mar 10, 2008
4,122
1
81
C# especially if you know Java.

P.S. ASP.NET isn't a programming lanugage. You'd still have to use C# or (gasp!) VB.NET for it.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
Nickbits is correct, ASP.NET is more of a "technology" then of a programming language. You can use C#, C++, VB.net, and even J#(i think) to write an ASP.NET application.

My vote is for C# as well.
 

brikis98

Diamond Member
Jul 5, 2005
7,253
8
0
Go with C# - it's a nice, memory managed, object oriented language. And if you know C# it'll be very easy to pick up Java as well (and vice-versa). Having one or both will make your resume significantly more marketable, not to mention that they are good languages to use for a variety of tasks.
 

mundane

Diamond Member
Jun 7, 2002
5,603
8
81
I might be overlooking it, but I *don't* see Java mentioned in your post - in which case I'd think C++ would be a lesser leap from C than C# would be.
 

cparker

Senior member
Jun 14, 2000
526
0
71
Another vote for c#. With your knowledge of sql you can quickly more on to the "linq" features of the latest 2008 c#. Pick up the free ebook on c# from microsoft press. The 2008 vs for c# is free in express editions and a wonderful ide learning tool. Also the 2008 sql server express edition is also free (the 2008 edition is in beta, the 2005 edition is "released"). It's a great path towards the future. What you will need to pick up, from your background, is concepts of object oriented programming. But virtually all the learning material I've come across for c# includes tutorials on those aspects (as is true of all the OO languages, I believe). go to msdn.microsoft.com and look at the vs and c# areas to find all the latest stuff/news.
 

slugg

Diamond Member
Feb 17, 2002
4,723
80
91
I think everyone except for mundane is mistaken... Just because "C" and "C#" have similar names doesn't mean they're similarly related like C and C++. If you are not familiar with Java (not Javascript... Java), then C# would actually be quite a jump.

Go with C++. C++ has many similarities to C. In fact, most C code can be compiled in a C++ compiler after very minimal modifications. The major difference between C and C++ is that C++ is object oriented. C++ lets you define and extend classes, not just static structures like in C. Structures may only have data members, but classes can also have member functions, as well as inherit members from its parent class (if any).
 

cparker

Senior member
Jun 14, 2000
526
0
71
The tests are in two weeks? Whoa.... I was thinking of a few months. If you wanted to do it in two weeks, that's pretty soon. I take back everything I said. I don't think it can be done with any of the languages, unless the tests are pretty simplistic.
 

QED

Diamond Member
Dec 16, 2005
3,428
3
0
Originally posted by: cparker
The tests are in two weeks? Whoa.... I was thinking of a few months. If you wanted to do it in two weeks, that's pretty soon. I take back everything I said. I don't think it can be done with any of the languages, unless the tests are pretty simplistic.

I think the tests will be reasonably detailed. The position is VP of Client Consulting-- which essentially means that I will finding ways to better integrate the company's software with our client's environment. The clients can have several departments worth of systems utilizing all sorts of varying technologies, so I'll have to be up-to-speed on just about everything out there (or capabale of learning them very, very fast).

I like a challenge, so I guess I'll be cramming in some C# over the next two weeks.
 

cparker

Senior member
Jun 14, 2000
526
0
71
ok..well then go to charles petzold's website and download his free book on c# right away. It's not that long and it gives an overview for programmers on the language. It doesn't really do the gui, basically command line programming, but that's what you want right now. Don't waste time on anything gui related. Also, pick up the VS 2008 express edition for c# if you haven't already. Go to msdn express edition vs area and you can download it. Might as well dowload all the documentation as well as it will save time from having to go online. It's unlikely there will be much on c# 3.0 features (3.0 is pretty recent) if anything so focus on c# 2.0. Most of the books on c# are pretty long and overkill for you, but I recall a book by Gunnerson or Gunnersen was pretty good as an introduction to command line programming in the language. Troelson's book is too large and overwhelming for you right now. And maybe MS press has some guides to exams in c#. I just don't know what they offer. If you can find out any guides or publications related to the specific exam you would take then, obviously, it's important to get hold of it/them.

The other free ebook to get is the one on "linq". It's the introductory one. I don't recall the name right now, as I'm not on my own computer, but if you do a google search of "free linq ebook microsoft press" you should find the link to get it for free. You may have to register at microsoft press for their newsletter or something. The reason to get this ebook is to get a feeling of how you can use c# to do db related programming, sql like, within the c# language itself. You should kind of understand the philosophy there so you will be able to intelligently talk about why c# over the other languages for clients who most likely will be using sql server. It's also fascinating in it's own right. The book also gives an overview of how the language changed from version 1 to 2 and now to 3.0. There also are some very nice new features involving declaration and initialization of variables. For example you can do something like "var a=22;" without having to declare a as an integer. It really gets interesting with some new querying syntax involving "lambda functions", but I suspect those new aspects are beyond your exam, but the early chapters in that linq book are worth skimming to get the context of how the language is evolving.

Anyway, I think you have a shot, so get started and good luck!!!!
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
he already knows C, i'd figure the easiest one to learn would be C++. especially since php is a lot like c++ it shoudl be quick for him to learn.

he has javascript experience which is completely different than java. if you want this to be quick and painless go with c++.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
I would think c++ would be the fastest to pick up and the most useful if you ever leave the windows world. However, C# is a very easy language to quickly pick up. It's one of the few things microsoft has done a good job on imho. I'm currently trying to get a handle on obj-C and I am really starting to miss c#.
 

cparker

Senior member
Jun 14, 2000
526
0
71
In my own experience transitioning from c to c++ it was not relatively painless. Actually I thought it would be a small evolutionary step. It was not. It involved totally reorienting my concepts of programming to incorporate object oriented concepts in almost everything I was doing. Then there was the nagging memory management problems as c++ didn't have built in garbage collection. For what I was doing it turned out to be well worth the investment of time, by the way, as the software I wrote was much more robust using the oop concepts. Based on my experience I really don't think there is any penalty going from c to c# vs c to c++, in fact I think it would be even easier now that c# has evolved to version 2.0 and now to 3.0. You program at a higher abstraction level with less chance to screw up. That combined with garbage collection and never having to worry about memory allocation/deallocation. All other things being equal, the c# transition should at worst be as easy/difficult as the c++ transition and at best quite a bit easier, imho.