Language recommendations for expanding programming skills (for a semi experienced software developer)

I have little experience (<1 year) with

  • Perl
  • Groovy / java

I have limited (<2 years professional)

  • FROM

I have decent experience (> = 6 years) with

  • Php
  • SQL

I have experience with

So, my question is this: in what language can I approach (in my free time) to give me a new understanding of programming and problem solving in general - I looked, maybe on LISP - which would be very foreign to me, I want to do something very, very different from the languages ​​listed above.

EDIT: I think I will explore Haskell - thanks for the feedback! and possibly Erlang, and I really liked Adrian Kosmachevsky’s idea of ​​a Mac application for a snow leopard.

+4
source share
12 answers

Haskell, which was soon followed by Python.

+5
source

try a functional programming language

  • F #
  • Lisp
  • Haskell
+2
source

Two different programming languages ​​that you could try are Haskell and Prolog.

Haskell is a pure functional language where you have functions that take other functions as arguments and modify them. It refreshes your mind; -)

Prolog is a logical language where you specify a set of conditions that must be true, and then the prolog can find legal solutions. The language was used for research in the field of artificial intelligence.

+2
source

I will also vote for functional languages:

  • Erlang is interesting in that it is a growing language explicitly aimed at concurrent programming;
  • LINQ , which uses functional programming concepts to extend .NET languages ​​into some really cool stuff;
  • JavaScript is not fun on your list, but it is the most misunderstood language, as Crockford said, but it is also the most common functional language in the world.
  • Since you already know ObjC, try creating a Mac app for Snow Leopard using blocks and Grand Central Dispatch ... this can also stretch your mind a bit :)

Given that the free lunch is over , a jump into this paradigm is a good investment, IMHO.

Hope this helps!

+2
source

ruby. Ruby is great, and from there you can learn about Rails, which is a terrific base.

+1
source

Prolog to learn logical programming. This will probably teach you a lot, but I mean it as a hobby, because personally I don’t know of any non-educational applications.

Haskell, or Erlang, for functional programming.

+1
source

Is it for academic or professional development? If the latter, look at the areas in which you would like to work, and look at what languages ​​they ask. They will most likely be as basic as C ++, C # or Ada, for example (depending on the domain), but if this is for academic interest, some of the more esoteric languages ​​may be of interest to Eiffel, Forth, Smalltalk and all, mentioned by others.

For professional development, you may become a master master, and I suggest that you think more vertically and consider learning design and modeling languages ​​such as UML and related analysis / methodologies and design patterns. These skills are portable in different languages, and the choice of language should always take second place in terms of good specification and design.

+1
source

I would say if you are interested in a new and very “excellent” language and are considering several options, you should first check the community. See how active the newsgroups are if people seem good and have a good atmosphere. Investigate if popular projects in this language tend to be those that intrigue you.

Haskell seems like a good option. Functional languages ​​are important and show the other side of problem solving. I looked at Erlang, but did not write anything about it, so I can not talk about it at any level, except for general curiosity.

link | Flag

Add a comment


Psssst ... here! Shhh! Never mind! Are we clear? Are you sure no one has followed you?

So you want to "completely change the way you look at programming," huh? People probably say that you want to improve your ability to go to CS-school, functional programming, or something like that. Yes, I know what I said ... with a “community” wrapper ... it was supposed to get a police measure from my back, dude!

The fact is, I got your "mind expansion" right here ... crack cocaine programming: [Rebol]

First time free. But if someone asks where you got this from, it wasn't me! We have never met ... I do not exist. Did you get it! ??

: R

+1
source

Clojure. You will not regret it

0
source

Javascript and python.

Javascript is the most misunderstood language in the world. But don't take Crockford's advice. Hug him with your flaws. Do not work around them. Just keep in mind. For example, do not close to create an object. cover prototype inheritance. That's cool.

0
source

Based on your resume, I would recommend doing Python, as this will give you a good opportunity to work on some of the basics of CS, such as OOP and functional programming. Python is a good general-purpose language that can be used for a wide range of applications (web, utilities, scripts, servers, etc.), and it is quite easy to learn and becomes productive in a short time.

0
source

LISP and FORTH are a good choice for a serious mind.

If you seriously want to stretch yourself, get a copy of Abelson and Sussman's "Structure and interpretation of computer programs" and a copy of the MIT Scheme system and start working through the book. The diagram is a LISP dialect (but you probably already knew that). (For that matter, get a copy of Course 6.001 from Open Courseware at MIT.)

If you want to learn a different way of thinking, this will serve you in an interesting way, Google and hold a copy of the classic Leo Brody “Launch FORTH” and take the FORTH interpreter to play. (The book is written for polyFORTH, which is no longer available at FORTH, Inc., and FORTH systems are not common these days.) Then read “Thinking FORTH” from the same author.

0
source

All Articles