Ask HN: What is the best programming language to learn first?
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 ] threadYou 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.
- 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)
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.
Check out Real World Haskell: http://book.realworldhaskell.org/read/
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).