Learning Programming Languages

I think learning new programming languages is both easy and very difficult. Syntax is nearly always easy, but understanding when to use a language and what are its strong points. Failing at this leads to the familiar “when all you have is a hammer, every problem looks like a nail.” On the other hand I [...]