

Ask HN: Most practical programming language to learn? - jckund

I want to learn programming... where should I start? I already have a basic understanding of CSS, what else is used most frequently by start ups these days? Python/ruby?
======
axitkhurana
For python vs ruby:

Why Python over ruby: <http://news.ycombinator.com/item?id=682101>

Django vs Ruby on Rails: <http://news.ycombinator.com/item?id=195423>

Python vs ruby in depth: <http://news.ycombinator.com/item?id=741257>

I use Python, Some resources for learning Python in no particular order:

The Official Python Tutorial - docs.python.org/tutorial/ "Dive Into Python",
by Mark Pilgrim - <http://diveintopython.org/toc/index.html>

"A Byte of Python" - swaroopch.com/notes/Python Google's Intro to Python Class
(online) - <http://code.google.com/edu/languages/google-python-class/>

"The New Boston" Programming Python Tutorials -
<http://youtube.com/user/thenewboston#g/c/EA1FEF17E1E5C0DA>

"Building Skills in Python", by Steven F. Lott -
<http://homepage.mac.com/s_lott/books/python/html/index.html>

"Think Python: How to Think Like a Computer Scientist" -
<http://greenteapress.com/thinkpython/thinkpython.html>

"Code Like a Pythonista: Idiomatic Python" -
[http://python.net/~goodger/projects/pycon/2007/idiomatic/han...](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html)

OpenCourseWare: MIT 6.00 Introduction to Computer Science and Programming -
[http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-
lectures)

"Learn Python the Hard Way" by Zed Shaw - <http://learnpythonthehardway.com>

Practice Questions at PySchools - <http://pyschools.com>

Begin Python - <http://beginpython.com>

More Tutorials - <http://awaretek.com/tutorials.html>

source: <http://www.quora.com/How-can-I-learn-to-program-in-Python>

------
latch
11 hours in and no one suggested JavaScript...I think you guys are all biased.

The rapid growth of MVC client-side frameworks (backbone), the push on the
backend (node.js) and its inclusion in a growing number of technologies
(MongoDB, CouchDB, ...) would seem to make it, at the very least, worth
mentioning.

~~~
richardjortega
Repped. Same situation here, our entire backend is setup with this setup
(backbone, node, d3, mongoDB). We are looking for developers in these areas,
since I'm not a programmer - do you have any good ideas that I can check?

------
abbasmehdi
You learn one, you can mess around in all. Go with either Ruby or Python, and
you will be fine. I'd go with Ruby, because if you decide to do anything for
the web then Rails (Ruby's web framework) is more beginner friendly than
Django (Python's web framework).

~~~
mcrittenden
Just as an anecdote, I found Django much easier to get started with than
Rails.

~~~
nahname
What is your background, if you don't mind me asking.

~~~
mcrittenden
PHP mostly, I'm a Drupal developer by day. I had no prior experience in Python
or Ruby when I tried looking at Django and Rails.

------
thoughtsimple
Start with C. When you understand why it is portable across different hardware
you can move on to C++. It isn't important to become highly proficient in C++
but it will give you a basic understanding of Object Oriented programming.
From there choose JavaScript,python or Ruby to get an understanding of more
dynamic languages.

Too many programmers start out with high level languages and never learn what
a CPU actually does. If you can't understand basic computer architecture, you
will never be competent at optimizing and scaling applications.

------
zura
I'd recommend "How to Think Like a Computer Scientist: Learning with Python" -
[http://www.greenteapress.com/thinkpython/thinkCSpy/thinkCSpy...](http://www.greenteapress.com/thinkpython/thinkCSpy/thinkCSpy.pdf)

MIT introductory course that uses this book:
[http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-00-introduction-to-computer-science-and-programming-
fall-2008/index.htm)

------
drallison
Don't confuse programming languages with programming. You probably will want
to learn a number of different programming languages: Python, C, Lisp,
Haskell, and a few Assembly languages. Programming is the art of using one or
more languages to do something useful. It's about algorithms, the way problems
are approached, and how solutions are decomposed and represented.

~~~
drallison
Strange that my comment would be down-voted. Language wars are fun and grist
for many a comment, but there is more to programming than languages.

------
SkyMarshal
Most practical? Python.

------
pettinato
I have never met a programmer who couldn't write C++. Python is definitely a
good place to start as you can quickly code up something cool.

~~~
tjgillies
being able to write hello world in c++ and knowing c++ like a master are two
different things.

I wrote a nodejs c-lucene extension in c++ and i still feel like a little baby
in c++

------
vonstark
go for ruby and pick it up in 10 mins.

