Which Language?

Associate
Joined
28 May 2008
Posts
346
Coming to the end of my university placement and I have picked up some good experience in HTML, javascript and CSS. These are nice to have and will probly continue to improve as I make websites and things in my spare time.

But I want to be a software developer not really seeing web design as a career path for me so I wanted to know what language the experts at OCUK recommend as a good one to be a whizz at for when I graduate and need a job.

Currently have basic knowledge of Java and C#. My java skills would be better but I was having a bit to much fun at uni and slacked on my studys lol

So if i had to chose one to dedicate my summer to geting a lot better at which would it be? Basicaly which one is more likley to benifit me when coming to get a job?
 
unless you know specifically what type of software development you want to get in to I think Java may be the better of the 2 to get in to as it's not platform specific. Opens up web apps, android etc.

I am sure someone with better knowledge can provide a more detailed answer :)
 
c# is more hip than java, but they have their own job markets and I wouldn't want to say which will be stronger in the long term. Fortunately they're similar enough not to be a burden to learn both / concurrently (c# is java with microsoft's typical language butchery added, but happens to produce fairly fast clean apps).

It's a continuously moving target too, at one point, java was set to becoming the dominant mobile apps platform for example, and then apple happened (to get involved), so you'll just have to keep up, frankly.

Consider going for (formerly Sun now Oracle) java certified programmer credentials if you want a goal to accomplish in the short/mid term that can help with the job prospects and show your aptitude with the language.
 
Last edited:
If you learn Java, you can easily move C# - only a few of the constructs are fundamentally different. However, moving from C# to Java is slightly trickier... or clunkier. C# 1.0 was basically a complete rip of Java, but since then Microsoft have actually added a bunch of useful things (delegates and lambdas being the main ones, as well as LINQ); Java hasn't really had any major changes since 1.5 introduced generics in 2004.

It really depends what you want to do though. Financial institutions in general use Java or maybe C# these days; if you get lumped with their older systems it could be COBOL, FORTRAN or C though. If you're not into web development at all then I'd avoid Ruby and probably Python - Rails and Django are the two major uses of each language that I've seen in practise.

My advice would actually to be to just learn a handful of languages. If you've got 2-3 years to graduate then I would look at Java, C#, C++ and Python / Ruby; even if it's just to get experience with them. Once you know the fundamentals of each language you'll see that they apply pretty much the same across them all. You might want to throw a functional programming language (Haskell, for example, or maybe even Scala) into the mix just so you see that not every language is object-oriented. The academics have been saying for years that functional is the way forward, but it's yet to really catch on.
 
unless you know specifically what type of software development you want to get in to I think Java may be the better of the 2 to get in to as it's not platform specific. Opens up web apps, android etc.

I am sure someone with better knowledge can provide a more detailed answer :)

C# is not platform specific either, thanks to Mono

C# is my language of choice :)
 
Learning a language is easy, learning to program is the harder part.

I'd almost suggest sticking with what you know aka JavaScript and running through a few books on Software Engineering, and understanding those.

Stuff that springs to mind Design Patterns, Pragmatic Programmer, some stuff on Agile.

Get an understanding of that theory and then pick up some more (different) languages. Python would be a good choice.

Depends on your time and your goals really.
 
As above, learning a language and simple programming is easy, but being a good programmer and more importantly a good software engineer is much harder, and harder still is being a good computer scientist.

I wouldn't tie yourself down to a single language. Really, your programming should be language agnostic. The language is just a tool, and you should choose the best tool for the job and be able to adapt to whatever languages the environment you work in throws at you.

The project I am working on now involves a lot of C++ and python, decent amounts of Java and objective C, some bare C, a little Fortran, the odd javascript, lots of SQL, some C#. Our company also has to develop code in in CORBA, COBOL, Ada, prolog, lisp.

The real skill is not in knowing a language but being able to rapidly learn any language that is needed. Algorithm design will always trump language choice. We are hiring a recent PhD grad in physics who can barely program C, but he is incredibly intelligent, has amazing problem solving skills and appears quick to learn. He will be thrown into the deep end and expected to learn C++ and python in a mater of weeks.


after saying all of the above I would say you are best to learn C++. Not that is i my favourite language, but it has widespread use and languages like Java and C# will come easily from C++ knowledge. Once you are a good computer scientist then you can use higher level functional languages in appropriate ways. But learning something like python first will both severely limit the scope for jobs and also make learning a lower language much harder.
 
As above, learning a language and simple programming is easy, but being a good programmer and more importantly a good software engineer is much harder, and harder still is being a good computer scientist.

I wouldn't tie yourself down to a single language. Really, your programming should be language agnostic. The language is just a tool, and you should choose the best tool for the job and be able to adapt to whatever languages the environment you work in throws at you.

The project I am working on now involves a lot of C++ and python, decent amounts of Java and objective C, some bare C, a little Fortran, the odd javascript, lots of SQL, some C#. Our company also has to develop code in in CORBA, COBOL, Ada, prolog, lisp.

The real skill is not in knowing a language but being able to rapidly learn any language that is needed. Algorithm design will always trump language choice. We are hiring a recent PhD grad in physics who can barely program C, but he is incredibly intelligent, has amazing problem solving skills and appears quick to learn. He will be thrown into the deep end and expected to learn C++ and python in a mater of weeks.


after saying all of the above I would say you are best to learn C++. Not that is i my favourite language, but it has widespread use and languages like Java and C# will come easily from C++ knowledge. Once you are a good computer scientist then you can use higher level functional languages in appropriate ways. But learning something like python first will both severely limit the scope for jobs and also make learning a lower language much harder.

Thats good advice in general - although I think Comp Science and Software Engineering are very different fields. (The clue is in Science and Engineering). Recently was hiring and the Math degree guy was a much better choice than the Comp* guys.

Python is a useful third language, it changed the way I programmed.
 
Ruby! :D

But really, just mess about with different languages you can still get a job somewhere if you have very little experience with the language they use, so long as you show your capabilities for learning new technologies quickly.
 
Back
Top Bottom