Second Language (Programming)

Hi All.

As this is the last year of uni for me, when I leave I will be looking at expanding my skills.

One of the things I want to do is to learn another language.

I was thinking maybe one of the C languages, as from the research I’ve done people seem to suggest these are good ones to know.

Just wondering what anyone else thinks would be a good second language to learn?

Note: my first language is python.

Cheers.

This is just my personal opinion :):

The C language, though today mainly limited to optimizing other languages like Python or embedded systems, is a very nice and compact language. You’ll often find engineers that love it because it’s not a bloated language like C++. Of course, it’s a procedural language, so it’s rather different than Python, however, coupled with a good knowledge of Python, C would be useful.

Also, there’s C#, very useful, and especially if you couple .NET with C#.

C++ has a lot of fans but also a lot of critics since it’s basically “C with classes” and has been described as a language being crushed under its own weight.

So there are a lot of choices, but in my personal opinion, if you’re interesting in “how computers work” then perhaps C will very helpful, but if you’re interesting in more work in algorithms and logic rather than “computer science” perhaps a higher-level language would be more useful to you.

Are you interesting in graphics programming, embedded system work, Windows development, etc? These questions will help you pick the “right” language to pick up next.

For me personally, what language I work in depends on what I need to get done/done faster for work, so my job determines what language I spend time in.

I recommend you first pick ‘your environment’ (Like Jon hinted at too) and then pick whatever language makes sense in that environment.

For example, if you want to make your own programs in windows, c++ or C# are great (C# being easier).

If you want to get your hands dirty in the 3dsMax SDK, then c++.
If you want Maya API, then c++.

If you want to potentially develop a game on an iphone, then C.

Etc.

Just note that a language like c++ is easily learned.
What takes much more work usually is learning the platform ‘ins and outs’.
For example you probably spend a few evenings reading a c++ book and you’ll ‘get it’ pretty quick.

But that doesn’t mean you can achieve anything yet in the max SDK.

It took me 3x the amount of time figuring out how the max SDK was setup versus learning the basics of c++.

Another personal opinion but I’ve become a big fan of C#. Maxscript was the only other language I knew before hand and I found the transition pretty smooth. You can take it in a lot of directions as well, console and windows forms apps, SlimDX/XNA if you want to do 3D graphics stuff, etc.

Many thanks for the replies.

The area I would like to use it in would be general development in windows. I’m leaning towards C++ as it has the option to use the maya api, although I’d probably stick to python for that.

Not interested in games really, but would like to learn something that isn’t completely unrelated to 3d so that it will have more uses for me personally.

Thanks.

[QUOTE=supertom44;7946]Many thanks for the replies.

The area I would like to use it in would be general development in windows. I’m leaning towards C++ as it has the option to use the maya api, although I’d probably stick to python for that.

Not interested in games really, but would like to learn something that isn’t completely unrelated to 3d so that it will have more uses for me personally.

Thanks.[/QUOTE]

I’m not a big fan of working in the SDK unless absolutely necessary- you often start digging a hole that makes it difficult to get out of. You start writing more difficult to maintain and difficult to change code. The only parts I’d write in the Max or Maya SDK are very core performance parts far away from more generic system design or any UI. Fortunately you know python already so hopefully that’s not a high risk, but I see it when C++ engineers are supposed to write Max tools. They are all in the SDK, are written like shit, and unmaintainable by anyone else.

My vote for useful languages goes for C# and other .NET languages (obviously there are reasons for that opinion that I won’t rehash here).

Many thanks for replies, in the end I opted for C#, just working my way through some tutorials from 3d buzz, also got a few books.

Cheers.