Page 1 of 1 [ 14 posts ] 

Yasmine
Pileated woodpecker
Pileated woodpecker

User avatar

Joined: 22 May 2007
Age: 34
Gender: Female
Posts: 196
Location: Norway

28 Feb 2010, 6:59 pm

Hi,

I'm just starting out on a programming undergraduate program, and I was looking for some advice.
I don't really know much about the different languages yet, and I know I will be learning Java first anyhow,
but I was wondering what languages was used for what kind of stuff, and what was most sought after in work wise...
Particularly that last question. What is going to land me a good job:)

Appreciate it:)



drybones
Deinonychus
Deinonychus

User avatar

Joined: 14 May 2008
Age: 53
Gender: Male
Posts: 313
Location: UK

28 Feb 2010, 7:13 pm

Yasmine wrote:
what was most sought after in work wise...
Particularly that last question. What is going to land me a good job:)

Appreciate it:)


You will find specific languages are more suitable for certain types of jobs (industries) so it would be beneficial to be knowledgeable of the language of choice for the sort of place you would like to work

I've always thought that a good programmer can be adept at any language, its a transferable skill. The language of choice is just a tool to get the job done

Hope that helps!



Fuzzy
Veteran
Veteran

User avatar

Joined: 30 Mar 2006
Age: 51
Gender: Male
Posts: 5,223
Location: Alberta Canada

28 Feb 2010, 7:32 pm

Each language you learn is quicker than the last. If java is already lined up, learn that. Then go with python. I'd learn C after that.


_________________
davidred wrote...
I installed Ubuntu once and it completely destroyed my paying relationship with Microsoft.


StuartN
Veteran
Veteran

User avatar

Joined: 20 Jan 2010
Age: 60
Gender: Male
Posts: 1,569

01 Mar 2010, 4:26 am

Yasmine wrote:
What is going to land me a good job


That is the key bit! The big money is, and always has been, with the most ill-formed and badly-implemented languages like PHP, Java+Swing and .Net - have a look at what languages are used to implement and maintain commercial activities, and what languages are required for current job adverts. My guess is C# .Net and the like are high up. Commercial activities churn over software with very short release cycles using whatever is the current fad, without too much concern for maintenance. If you want high rates of pay (and insecurity) then this is a good wave to ride on.

On the other hand, if you wanted a lifelong career in academic research, government service or (non-software) industry then a good grasp of algorithms and structured design would be helpful. People are still writing C, C++, Fortran and even COBOL code. Code also has a much longer lifespan in industrial and academic settings. A good theoretical grasp is much more important than the choice of language.

(I am a crusty old C programmer, although I would dip my toes in anything interesting).



QuantumCowboy
Veteran
Veteran

User avatar

Joined: 13 May 2007
Age: 45
Gender: Male
Posts: 897
Location: (1/√2)|0> + (1/√2)|1>

01 Mar 2010, 11:01 pm

I would spend the time to learn both C and C++. Once one understands those, other languages are generally rather easy to pick up. In fact, many other languages are based (or draw syntactically from) at least partially upon C. The knowledge of pointers and garbage collection gained from C/C++ is also useful.

Just recently, I had to massage garbage collection for a program in VB.NET that I wrote at work. This was all necessary due to Microsoft's bugs. :x


_________________
The ket always seems to psi over its own indeterminacy.


MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 44
Gender: Male
Posts: 1,385

01 Mar 2010, 11:28 pm

Stuart, I don't think it's entirely fair to knock the software industry for producing unmaintainable messes. Some of the biggest pieces of retardation I have ever seen have originated in military or government, where the resistance to (and high bar for) change can be so extreme as to backfire and have the opposite of the intended effect.

Some of the best and worst work I've ever seen has been in the software industry.

Yes, I am mystified when I see job postings saying "we're translating our large C++ framework to C# and need a .net expert". I have no idea why anyone would do that.

I also sometimes find it difficult to get private business to go the extra inch to maybe save themselves the extra mile later. I fight it out anyway because I'm stubborn.



Laar
Yellow-bellied Woodpecker
Yellow-bellied Woodpecker

User avatar

Joined: 4 Jan 2010
Age: 32
Gender: Male
Posts: 68

02 Mar 2010, 1:40 pm

MyFutureSelfnMe wrote:
......

Yes, I am mystified when I see job postings saying "we're translating our large C++ framework to C# and need a .net expert". I have no idea why anyone would do that.

......


I think they like a more 'modern' language, when I compare C++ to C# I found C++ has a lot more trouble to it (in the sense of things you have to think about). I also thought I had to do everything twice (though that might be just the difference between the tooling in VS versions).



t0
Veteran
Veteran

User avatar

Joined: 23 Mar 2008
Age: 50
Gender: Male
Posts: 726
Location: The 4 Corners of the 4th Dimension

02 Mar 2010, 10:52 pm

Yasmine wrote:
I don't really know much about the different languages yet, and I know I will be learning Java first anyhow, but I was wondering what languages was used for what kind of stuff, and what was most sought after in work wise...


Language is pretty irrelevant. Hopefully your educational program will be teaching you the various programming models via a language that fits each model. Once you learn one language of particular model, you should really be able to quickly pick up any other language of the same model.

Hopefully your educational institution works with companies that hire graduates in your major and knows what those companies want. Your best bet will be to apply for internships (early) and to get some work experience while you're still in school.



peterd
Veteran
Veteran

User avatar

Joined: 25 Dec 2006
Age: 71
Gender: Male
Posts: 1,347

03 Mar 2010, 1:59 am

Quote:
Once you learn one language of particular model, you should really be able to quickly pick up any other language of the same model.


That's OK the first time, but canalisation sets in. A real programming job has a tendency to involve months on end immersed in a particular problem domain.

Right now, I've got one part of my daily work in the declarative model and another in a procedural one; and the gear changes are a little bit tricky sometimes. Fortunately I have tools good enough to smooth out the rough parts



LordoftheMonkeys
Veteran
Veteran

User avatar

Joined: 15 Aug 2009
Age: 34
Gender: Male
Posts: 927
Location: A deep,dark hole in the ground

03 Mar 2010, 9:50 am

That's a difficult question to answer, seeing as there are over 3000 programming languages in existence, and most of them do slightly different things. But here are some of the most popular ones:

C: A general purpose language and one of the most powerful. Most operating systems are written in C or C++.

C++: A newer version of C that adds two main components to the language: objects and bloat.

Java: Used for applications and server-side web scripting. It's main advantage is that it's portable to many different systems.

C#: Micro$oft's ripoff of Java. Used by .NET programmers to make crappy applications that work only on Windows XP/Vista/7.

PHP: Server side scripting.

ASP.NET: Same as PHP. The only .NET language you should ever even consider using, due to the likelihood that you will probably be the only one using what you write in it.

Javascript: Client-side web scripting. When you type something into the Google search bar and a list of suggestions pop up, that's Javascript. One of my favorite languages.

Unix shell: A very useful language that scripts the Unix command line. I think it's used mainly by sysadmins. This is also one of my favorite languages.

SQL: Scripts and queries relational databases.

Objective-C: Apple's ripoff of C++. If you're ever going to work for Apple, you should probably learn this.

Python: Has a simple, English-like syntax and is recommended for beginners, though it is powerful enough that professionals use it as well. It is used for several things, including Unix scripting and server-side web scripting.

Perl: Also used for Unix scripting and web scripting. It was made primarily for processing text files very quickly, and is now employed as a server-side language for CGI (which hardly anyone uses). It's a powerful language, but it's not used that much, as far as I know.

BASIC: Beginner's language. BASIC is one of the weakest languages in existence, because it is so dumbed down, and it has been largely superseded by Python as the language for beginners.

Visual Basic: Don't use this language for two reasons: 1. It is about as powerful as BASIC, and 2. Like all other Micro$oft languages, it is incompatible with anything that isn't a Micro$oft product.

VBScript: Client-side scripting language that only works on Internet Explorer. Don't use it.

Assembly language: Program the CPU directly. Good for control freaks.

ColdFusion: Server-side scripting language.

Actionscript: Used to script Flash animation. I don't see a use for this.



Last edited by LordoftheMonkeys on 03 Mar 2010, 7:57 pm, edited 1 time in total.

StuartN
Veteran
Veteran

User avatar

Joined: 20 Jan 2010
Age: 60
Gender: Male
Posts: 1,569

03 Mar 2010, 12:53 pm

I am slightly surprised that I have used 11 of these 18, and have current activities using 5 of them. But I think it is probably fairly typical that active programmers will be using many tools, often in the same project.

Also, I know it is not employment or income related (unless you are very lucky!), don't forget some of the really enjoyable programming activities like Scheme used for scripting in the Gimp, Processing for generating video, Context Free for 2D generative art, Structure Synth for 3D generative art or Max/MSP for sound and music. Programming play is really important for me, and feeds my work interests. Sometimes they are the same thing.



psychohist
Veteran
Veteran

User avatar

Joined: 23 Feb 2010
Age: 64
Gender: Male
Posts: 1,623
Location: Somerville, MA, USA

03 Mar 2010, 7:16 pm

There's a very big market currently for Java programmers. Whether it will still be rising or will be in decline when you graduate is another question. Be aware that most of the Java positions are for the Enterprise Edition - programming of server side code - so you may want to pick up some of that. I personally think that there's an untapped market for Java clients as well, but unfortunately Swing is so crufty this market may never successfully materialize.

I've found the biggest downside to working in Java is that it's such a safe language than even mediocre programmers can survive with it. That drags the rates down a bit for the really good programmers working in Java. On the other hand, the safety does allow us to be very productive when we want to be.

I would also recommend learning C, specifically because it's extremely unsafe. It will force you to learn things like pointers and memory allocation which will help you understand what's going on with programs in other languages; programs still have those things even if the language doesn't require the programmer to manage them by hand.

Edit: it is worthwhile learning some SQL as well, as almost every substantial program uses a database.

Laar wrote:
I also thought I had to do everything twice (though that might be just the difference between the tooling in VS versions).

Microsoft VC++ is very different from and much inferior to real ANSI C++. For the original poster, I recommend learning ANSI C++.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 44
Gender: Male
Posts: 1,385

03 Mar 2010, 7:48 pm

VC++ is not a great deal less standards compliant than gcc these days.



ruveyn
Veteran
Veteran

User avatar

Joined: 21 Sep 2008
Age: 87
Gender: Male
Posts: 31,502
Location: New Jersey

03 Mar 2010, 8:31 pm

I like PERL. It is not pretty, but one can do some clever things with it.

ruveyn