I need to branch off and expand my mind, any suggestion on new language

Started by
14 comments, last by ApochPiQ 12 years, 7 months ago
For about 2-3 years, I've been in school, I have mainly used C++/Java and some MIPS. I feel like I've been exposed to the same kind of OOP thinking and don't really know what else is out there. What would you suggest one to learn in order to expand one's way of thinking about problems. I thought about some language like maybe ruby or lisp or perl. I just need some advice. Thanks.
Edge cases will show your design flaws in your code!
Visit my site
Visit my FaceBook
Visit my github
Advertisement
Learning a programming language is like learning a linguistic language. Being a software engineer is like being an author. Learning Spanish doesn't make you an author, learning French doesn't make you an author, writing books makes you an author, and the more you write, the better you get. It's useful to have languages under your belt but IMO developing your software emgineering skills is extremely important. IMO having personal projects under your belt and on your CV demonstrates your real world competency and makes you much more employable for a variety of reasons. At that point your language choice becomes near-insignificant.

Sorry if that's way off topic but i thought I'd mention it nonetheless.

Learning a programming language is like learning a linguistic language. Being a software engineer is like being an author. Learning Spanish doesn't make you an author, learning French doesn't make you an author, writing books makes you an author, and the more you write, the better you get. It's useful to have languages under your belt but IMO developing your software emgineering skills is extremely important. IMO having personal projects under your belt and on your CV demonstrates your real world competency and makes you much more employable for a variety of reasons. At that point your language choice becomes near-insignificant.

Sorry if that's way off topic but i thought I'd mention it nonetheless.


[edit] While it's true that practice is required to make you a good programmer, learning a distinctly different language (like mandarin vs english) will change how your brain interprets language and gets you concepts that simply don't exist in your native language, making learning new ones easier; just like programming languages. Learning distinctly different languages is a boon to any programmer.


For the OP: Haskell.

This is patently false.

In what respect?

Learning a programming language is like learning a linguistic language. Being a software engineer is like being an author. Learning Spanish doesn't make you an author, learning French doesn't make you an author, writing books makes you an author, and the more you write, the better you get. It's useful to have languages under your belt but IMO developing your software emgineering skills is extremely important. IMO having personal projects under your belt and on your CV demonstrates your real world competency and makes you much more employable for a variety of reasons. At that point your language choice becomes near-insignificant.

Sorry if that's way off topic but i thought I'd mention it nonetheless.


Like someone mentioned above there are a few different programming paradigms and learning languages that use these will give you a new way to look at things. Haskell, Lisp and all its derivatives rely mostly on recursion and list manipulation, Prolog forces you to write logic statements and sets and relies on logic and set algebra.


So learning another language outside of your current programming paradigm has advantages as it gives you a new way to look at problems and come up with solutions.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

I second Haskell.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

C# or Scala?
Functional all the way, if todays procedural langauges stop being the norm, it's functional that will replace them.

I would say either Haskell or F#. F# would be handy because you would have access to .NET libraries.


That said, for me after 15 years of programming this way, functional programming is a mind bender. Just getting the gist of LINQ is enough of a fight.
Consider Python.

Very simple language to pick up, and very flexible. Personally I'm doing around 75-80% of all my code in python, simply because it works and is easy to use. The rest tends to be either domain specific languages, or rewrites of segments of Python code that simply needed better performance.


And a third for Haskell. It is an interesting language. I picked away at it, but got side tracked from learning more.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
There are only two programming languages: Fortran and Lisp. Everything else is a copy.

I didn't say they weren't improvements.

Oh, OK, there's also Prolog. When I was in school it was the New Silver Bullet that was going to be the Solution To Everything and We Would All Be Programming In It When We Graduated. I'm not sure if you can find it any more. You can definitely find Fortran and Lisp.

Stephen M. Webb
Professional Free Software Developer

This topic is closed to new replies.

Advertisement