

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

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
======
codeglomeration
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.

------
p_nathan
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.

------
gtani
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)

------
gentrysherrill
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/>

~~~
malandrew
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).

------
nostrademons
Python.

~~~
shiny
Try <http://learnpythonthehardway.org/>

------
jongs
Is it easy to go from Phyton to PHP? and from Phyton to Java?

~~~
Ocho-Bits
Not really, they're pretty diferents languages. What you really need is to
develop the logic for programming, that's what's important!

~~~
jongs
got it, thanks!

