What is the best way to learn a new programming language?

I was reading this survey by Inform IT asking various programming language book authors, this question "What is the best way to learn a new programming language?".

The common thread amongst all the responses is  work hard on it.  It takes time and involve yourself to the task by practice.

Following were some specific portions that I liked in various responses.

Lauren Darcey, had a solid advice in this form:

The best way to learn a language—whether it's a foreign tongue or a new programming language—is immersion.

Reading a textbook is not enough. Writing an app that compiles and sort of runs is not enough. You need to go deep, and you need to explore broadly.

Cay Horstmann,  shares an insightful statement in an extremely light-hearted vein:

Have realistic expectations. You might learn enough French or Mandarin in 30 days to ask for directions, and you might learn enough of a new programming language in the same time to program a simple game. But it takes months or years to be truly fluent in the new language.

I had taken Cay Horstmann's course at Udacity as I tried to improve my Java skills.

Danny Kalev, takes a scientific approach to learning as he states:

Linguistic theory distinguishes between first language (L1) acquisition and learning a second language (L2). Whereas the former occurs in a natural setting, during the critical age (0-7 years old) and has very good chances of succeeding, L2 learning requires formal teaching (textbooks, exercises and exams), and a lot of skill. Even after years of meticulous practicing, the results never compare to L1. Learning a programming language is similar to learning L2.

I can relate to this statement as my first language is Sourashtra. It has no well known writing system, scripts, literature or any cultural artifacts, like books, movies or songs. Everything we learn is from our childhood and from parents.  And all other popular languages like Tamil, English and sometimes Hindi is gathered by practice as secondary languages.

Coming to to programming, Bjarne Stroustrup, had the following to share about learning a new language.

 Consequently, the best way involves a Mentor who knows the programmer well and is an expert in the new language. That’s a luxury, we rarely have.

And his devotion to Computer Science is visible when he states:

 What is common for my books is that they assume the reader to be reasonably smart and willing to work to learn. I try to avoid oversimplification and sugar coating: programming can be a noble art and involves some skilled craftsmanship. I hope for readers who want to build real-world systems, rather than just toy programs to be able to get a grade or to tick a box on an interview form.

Here is the Link to the full article.

NO TITLE

Happy to pose with the astronauts of Apollo 13 Happy to pose with the astronauts of Apollo 13. James Lovell, John Swigert and Fred Haise. 

Apollo 13 was the third intended moon mission which actually failed on land on moon. The feat was to bring the astronauts back alive to earth and the team on earth managed it by propelling the shuttle to a free-fall on pacific ocean.

It was classed as "successful failure".

How to get better at Programming

http://youtu.be/qN7u1j44QTo

Richard M Stallman talks about it. I wholeheartedly agree with his claim. Programming is a craft, not a science, it cannot and should not been seen as academic exercise, like reading books, solving problems from scratch and feeling complete, but programming should help you build something, contribute to building of something, like you can contribute to an existing Free Software.

Excellent point.

Amar Bose (1929 - 2013)

Image

I have not owned any high-end audio system and i have only known Bose audio systems as one of the high-end and costliest ones. Recently did I come to know about the man behind Bose Audio systems and his passion for acoustics. Amar Bose went for quality research in acoustics and implemented them with his company Bose corporation.  I admire the Bose corporation's stance on concentrating on quality and not forsaking that for market conditions.

“I would have been fired a hundred times at a company run by M.B.A.’s. But I never went into business to make money. I went into business so that I could do interesting things that hadn’t been done before.” - Amar Bose

MIT News highlights his contributions in this field, his research and teaching.

Also, watch this video of Dr. Amar Bose sharing his experience to his students on his final lecture. He invites his TA's to share about their experience teaching and then goes on the share his experience as a young graduate student, drafted by his professors, who had confidence in him to take up a Maths problem of Norbert Wiener, when he was not a maths major and he shares his relationship with Norbert Wiener and how it all got started. Later he shares an anecdote on how the same "boring" job given to two students was taken up them in two different thought processes and how it changed the whole experience for them. The point which Dr. Bose is trying to make is, "we are never given a bad card", it is only how we make up in life.

My three wishes for Minecraft

  1. All versions, Android Pocket Edition, iOS Pocket Edition, XBox Edition and computer edition on Mac, Windows or Linux should have same features.
  2. All these should be able to join a server running on any of the other.
  3. Updates should be seamless and possibly happen in the background
  4. Image