

Asked to choose a programming language for a beginner - AllenShi
http://rachelbythebay.com/w/2012/11/14/choose/

======
mooreds
At the end of the post, the advice is "Just pick something and see how far you
can get with it."

I have to disagree. I wouldn't point anyone who is non technical towards a
language that is not memory managed, nor would I point them to a non
mainstream language.

Why point them to a language where they have to worry about memory allocation.
While it is important to understand eventually, for most beginners it is a
needless complication and chance to shoot yourself in the foot.

Why point them to a non mainstream language whe the number of tutorials,
forums and ore resources for help are plentiful with a more popular language.
There is tremendous value in learning languages that are wildly different, but
for starters, one with lots of support is the best option. Here's a nice post
about programming language popularity:
[http://redmonk.com/sogrady/2012/09/12/language-
rankings-9-12...](http://redmonk.com/sogrady/2012/09/12/language-
rankings-9-12/). The languages I would recommend would be in the upper right
corner of the graph.

Finally, and most important, what did the beginner want to do? If they wanted
to write an excel plugin, steering them to objective C would be a disservice,
and if they wanted to build a webpage, choosing something like vb would be a
bad idea as well.

------
venomsnake
Something short, hard and brutal. C and Haskell or LISP. Then Python.

They both require relatively little time to learn, but are with a very steep
learning curve. And the moment you have groked pointers, recursion and monads
you are capable of translating whatever is needed into code. Also chances are
they are not heavily used in a modern startup. Because when a non technical
person decides to become technical - we add a junior developer to the team
that just happen to inhabit the body of the designer. And that could be a
strain on the already limited resources of the technical cofounders. So you
don't need a person that have a habit of "fixing" your stuff to the best of
his lack of experience.

------
microwise
The proposed solution already exists, rather the question is being debated is:
which language is someone supposed to start with? Everyone is ever shifting
from language to language in order to make applications. One programming
language has never been enough. The language a person is supposed to start
with must provide a guideline to good programming practices and it is supposed
to enable one to have the knowledge they need in order to fully explore other
languages.

