

Ask HN: Would you still recommend a new learner to start from an old language? - tazb

I have a friend that understands programming. He wrote a little in C over a decade ago. He now wants to get back in development. He asked me if he should start back from C&#x2F;Java or jump in with the new languages Ruby&#x2F;Go? And if that will make his job hunting tougher if he did go with the new languages.<p>What would you recommend?
======
chjohasbrouck
I don't think it makes sense to start this endeavour by choosing a programming
language.

I think he should choose something he wants to develop, and then choose the
programming language as a technology choice in the development of that
project.

If he wants to do web, Python/Ruby would be good choices. If he wants to do a
native iPhone or OSX app, he should probably start by brushing up on his C
then learn Objective-C.

When you're programming, the biggest motivator for me isn't to learn a new
programming language, it's to work on a new project, and being motivated is
important. I always choose language as a tech choice of the project. YMMV

------
informatimago
If the only criteria is only to get "a" job, then only the ratio job
applicants / job offers categorized by programming language should be taken
into account.

If you add other criteria, such as salary, happiness, difficulty, locality,
etc, then the choice will become more difficult.

That said, the programming language should just not be a consideration for a
programmer or to get a programming job.

Do you ask your surgeon whether he uses knifes or clams from such or such
provider?

Do you think that hospitals will reject a surgeon because he never worked with
knifes of the same made as the ones they have and use at the hospital?

A real programmer will be able to use any programming language. If you ask an
experienced real programmer, he will tell you what programming language to use
to write what application, and it may very well not be the same language for
all your applications.

(Actually, this is because languages have different features that are required
or more adapted for different applications, that languages such as lisp or
scheme that have a good macro system, ie. compiler hook, allowing the
programmer to _change_ the language and implement domain specific language
features (or use libraries implementing domain specific languages), that
language as lisp are so good and should be used more, if you asked
experimented programmers, instead of newbies or managers; this is also a
reason why newer languages like ruby or python that try to be more like lisp
have such current development, but people would do better with lisp).

So as a future professional programmer, your friend would be well advised to
become acquainted with several programming languages. For example, he could
write a small smartphone applications with a backend server, where he would
have to write android java, iOS Objective-C, some C or C++ library used by
either, a Common Lisp server, using some PostgreSQL database (programmed in
SQL), with a Ruby on Rails front end, and a few bash glue scripts. To be
efficient in his work, he would also learn emacs lisp to customize and
automatize his emacs workflow. In addition to the smartphone apps, he would
write some administrative web server, including some Javascript stuff
generating HTML and CSS.

[http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa650...](http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa6506e2f35eaac)

