Ask HN: What is the best programming language to learn first?

5 points by jongs ↗ HN
I am looking for something less verbose than Java but more robust than PHP. I have been exposed to software as a product manager for several years and have witness how much longer coding in Java takes and how less scalable, less organized and consistent PHP is

13 comments

[ 3.0 ms ] story [ 30.3 ms ] thread
I would say that if your area is web development, your best options are the Ruby language and the Ruby on Rails framework, or the Python language and the Django framework.

You really can't go wrong with any of those.

I come from a .Net background and currently learning Ruby and Rails, and I'm impressed. Ruby is a very expressive language, not at all verbose, has good libraries and the community for the Ruby on Rails framework is impressive.

Before making the choice of what I wanted to learn myself, I spent a bit of time comparing the two and decided to go with Ruby.

Is it easy to go from Phyton to PHP? and from Phyton to Java?
Not really, they're pretty diferents languages. What you really need is to develop the logic for programming, that's what's important!
got it, thanks!
Consensus is: python/ruby, the "P" in LAMP (Heh. actually, the P" was perl or php). These 3 (including perl) let you absorb language syntax quickly so you can start learning the disciplines of coding:

- OO and basic FP techniques

- composition, delegation vs. inheritance

- test-driven, mock/stub dependencies, what are your edge and corner cases?

- benchmark, profile, optimize where needed,

(stuff like that)

Python is currently Very Popular. I'm not a fan, but the popularity does give you access to lots of docs and help.

I would suggest C# is a good language for starting on Windows. It's popular, widely supported, and doggone easy to write GUI applications.

If you are working on Linux, Perl is good. It's almost everywhere, and can get everything done that isn't hard-real-time. It's also optimized for text processing.

The traditional route for ground-up understanding is C or C++. Those force you to deal up-front with a lot of low-level machine issues that only come up later in other languages.

If you are looking for the pure abstract programming language without worrying about usability, Scheme is likely your best bet.

Each of those languages provokes strong responses for and against. When choosing a language for a project, it is a engineering decision based on the tradeoffs.

As mentioned, Python or Ruby/Rails are your best bets; if you wanted to do something a bit more unusual, you might consider a functional language like Haskell (as functional languages are an up-and-coming development paradigm)...

Check out Real World Haskell: http://book.realworldhaskell.org/read/

As a first programming language, I wouldn't consider Haskell, plus the Real World Haskell book could use a lot more polishing.

If you are seriously in it for the long hall, gentrysherrill's advice of learning a functional language is a probably a good choice, but it shouldn't be Haskell. Scheme or Common Lisp is a better choice.

Get Conrad Barski's new book Land of Lisp. Go through it first, then consider checking out the Little Schemer or How to Design Programs (version 2).