🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

What languages should a person learn to be a well-rounded programmer?

Started by
33 comments, last by trjh2k2 6 years, 9 months ago

^ I spend a lot of time in both Javascript and C++, I think your original observation is good, on a base level- the two languages, even though they "look" a bit similar, are very different in a whole bunch of ways and take a bit of a different way of thinking to use each one very effectively.  Same as whatever other language.  I find even C++ vs C# takes a bit of a different mindset.

I've been doing some reading lately about about languages that support design-by-contract features - and I think stuff like that highlights why it might be good to learn more languages.  Each one sort of has it's own patterns built into it, their own way of thinking, their own way of accomplishing similar stuff.  Some of those patterns could possibly carry over into another language, or provide a hint as to how you might want to approach something regardless of what language you're in.

Advertisement

I'm a little skeptical of this question; I'm not really sure there is a list of languages that you _must_ know to be well rounded. However, I'm surprised no one has mentioned assembly yet. To be really well rounded, you should at least be able to read assembly, even with an instruction reference in hand. Writing is trickier, but perhaps everyone should write something trivial in assembly at least once. X86, ARM, 68000 (!), it really doesn't matter, you should pick one up if you are really going to claim to be well rounded. It's definitely worth doing if you want to have an understanding of what your computer is actually doing.

Hints:

  1. ARM is simpler than X86, so if you have a choice...
  2. C and C++ compilers will typically spit out disassembly for you; it can be illuminating to look at the assembly code that a (simple) C function produces.
  3. Probably a good idea to learn a relatively low-level language like C first. (Is there another choice anymore? Pascal?)
  4. The game Human Resource Machine actually isn't a half-bad assembly primer.

But, maybe I'm just old.

Geoff

50 minutes ago, gdunbar said:
  1. ARM is simpler than X86, so if you have a choice...

MIPS is also an easy RISC to start with.

🧙

1 hour ago, gdunbar said:

To be really well rounded, you should at least be able to read assembly

You should in fact know more than just how to read assembly. Otherwise, you won't understand things like caller-save/callee-save registers etc.

🧙

3 hours ago, gdunbar said:

I'm a little skeptical of this question; I'm not really sure there is a list of languages that you _must_ know to be well rounded.

You should be skeptical. If you note below, I never said must, but this -

On 9/19/2017 at 1:16 PM, Alpha_ProgDes said:

what languages should a programmer know or even be proficient in to be a dependable programmer (couldn't think of a better word than "dependable")?

Beginner in Game Development?  Read here. And read here.

 

Languages:

One of these: A high level language fitting your platform of choice (Javascript/C#/Java)

One of these:  C or C++, because they will run on anything.

One of these: A weird language to understand that strange grammers have their advantages ( SQL/Scheme/Prolog/Haskell ), and that the world doesn't end with the ideas of the currently most popular language.

Frameworks:

One of these (only if you are a games developer): OpenGL/Directx/Metal/Mantl

One of these: A popular game engine of some sort (even if you're going to write your own, it will give you some ideas to steal)

One of these: A popular webserver (tomcat/nodejs/python-WSGI)

One of these: A popular GUI framework: Coco/Android/WPF/MFC/AngularJs

And as "machine learning" is gaining traction: Tensorflow/Keras/SciPi/ 

 

Learn one of each, and you'll be a great developer!

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

8 minutes ago, SillyCow said:

Learn one of each, and you'll be a great developer!

...a great Enterprise Developer?

Though, yes, you'd definitely be a great developer on the resume.

Beginner in Game Development?  Read here. And read here.

 

12 minutes ago, Alpha_ProgDes said:

...a great Enterprise Developer?

 

Nahh...

If you want to be an enterprise Dev, drop the Opengl and the game-engine stuff.

Also wouldn't invest too much in learning Ux.

I wasn't aware that the question was regarding game-devs only, I thought you asked about being "well rounded".

Also since game-devs don't tend to work their entire careers in the games buisness, it would be wise to learn other things as well.

Besides, would you consider a gamedev that can't build a web server well rounded?

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

17 minutes ago, SillyCow said:

I wasn't aware that the question was regarding game-devs only, I thought you asked about being "well rounded".

No, not game devs. I did mean well rounded programmers (in general). But reading your list, made me think "game dev", then "enterprise dev".

18 minutes ago, SillyCow said:

Besides, would you consider a gamedev that can't build a web server well rounded?

Do I need that programmer to problem solve or be devops? If the former, then yeah, that programmer is well-rounded (enough).

Beginner in Game Development?  Read here. And read here.

 

Steps to becoming a great programmer:
1) Learn C or C++ and master it.
2) Learn as many languages as you can! The more you know, the better.
3) Realize that knowing different languages isn't what makes you a better programmer -- programming is language agnostic. It was never about syntax, it was always about choosing appropriate design patterns and algorithm choices!

This topic is closed to new replies.

Advertisement