4 ms·
Ask HN: Becoming a Better Programmer
I feel strongly that one of the best methods to become a better programmer is to learn new programming languages (http://softwaremaven.innerbrane.com/2009/05/pearls-from-multiple-languages.html). I was reading on of EWD's letters last night and came across this:
"I often feel that the American programmer would profit more from learning, say, Latin than from learning yet another programming language." (PDF http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD611.PDF)
That got me asking two questions: First, would Latin (or Japanese or Spanish...) make me a better programmer? Second, what would this community (with so many people who are better programmers than I am) think is the best way to become a better programmer?
- bartonfink 16y agoAlan Perlis said "A language that doesn't affect the way you think about programming, is not worth knowing." The whole point of learning a new computer language is to change the way you structure your thoughts and to give you a new mental vocabulary for expressing ideas. I believe a similar argument can be made for human languages, and I think that's probably what EWD was getting at. I was, at one point, fluent in Latin (that is, could converse with a knowledgeable speaker at full speed), and I believe that my knowledge of Latin had a profound effect on the way my brain analyzes languages. I'm sure that, if I learned Japanese or another language that is drastically different from English, it would have a similar effect. Would it directly make me a better programmer? Probably not. Would it make me a smarter human being? Probably so, and in doing so, it could have an indirect effect on my programming skills.
- stonemetal 16y agoKnowing Java and picking up C# doesn't have a major impact on your ability to express yourself. Knowing Java and picking up Lisp stretches you further, but you can only learn Lisp once. That is to say after you have experienced several different programming paradigms, you get less from learning yet another paradigm X language. Human languages have the same ability to impact the way you think. What do I think is the best way to become a better programmer? Well learning new programming paradigms is good, it adds breadth to your knowledge. Building apps in specific topics is important it adds depth to your knowledge. That is to say a shallow but wide box is OK and a narrow but deep box is OK, but the biggest box is both wide and deep.