Live data from Hacker News

Learning new languages makes you a master of none?

news.ycombinator.com

11–18 of 18 posts

Re: Learning new languages makes you a master of none?

#11
If you mean by mastering that you never have to look at the API documentation, then more languages can have a negative impact. I'd concede that.

But that is comfortably offset by the advantages you gain from seeing through the syntax to the language concepts. It is not even the correct question to ask really. Because mastering of a language might be a secondary goal.

A more interesting question might be: do I know at all which language I should strive to master? And that will require you to look at a few.

Re: Learning new languages makes you a master of none?

#12
This may be the case for natural languages, but is simply not the case with programming languages. A natural language is evolved over thousands of years and contains cultural nuances and hundreds of thousands of words in the vocabulary. A programming language is engineered to be simple and concise, containing a grammar that can fit in a few pages of BNF and at most a few hundred words in the vocabulary.

Re: Learning new languages makes you a master of none?

#13
A language is a tool, not the end in itself. We need to be, or strive to be, masters of computer programming, not of computer languages.

Of course, a master knows its tools. He has many tools in his toolset and chooses the ones that better fit the task he is working at. Sometimes he may need to use a new tool, which he learns and adds to the toolset.

New languages rarely introduce substantially new concepts, mostly new ways to represent those concepts and put them together in a better way. However, if we are talking about new concepts, not just new languages, that is different. Other commenters have mentioned functional versus imperative programming style (enforced, or at least suggested, by the language) and so on. Learning new concepts makes us better programmers in older languages too.

Re: Learning new languages makes you a master of none?

#15
post #4

Nonsense. Learning Python helped my JavaScript and PHP, and learning JavaScript in turn has helped my Python. Learning Erlang has helped both. PHP didn't help anything. By making you approach the same problems in different ways, new languages make you a more versatile programmer less tied to a particular technology while improving existing skills.

Upvoted for "PHP didn't help anything". I'm pretty pragmatic about language selection (I've used Perl, Python, Tcl, C, C++, sh, and probably others over the years, and all have had their nice qualities), but I've been lightly working in PHP now for a couple of years for maintaining our company website, and I've never once thought, "Hey, that's neat! I wonder if I could do that in JavaScript/Perl/Python/Ruby."

It's a subtle but very depressing aspect of working in PHP. I just feel sad working in PHP, in a way that I've perhaps never experienced in any other language. Maybe I'm just getting too old to read more crappy code, and it would improve if I started working on better written code. And maybe I was lucky enough to mostly work with good code in the past in those other languages.

To be fair, there are some things about PHP that are surprisingly good and worth looking to for inspiration: Ease of app deployment, marketing for a "good enough" product, allowing a very large community to contribute without muddying the waters too much (comments on doc pages, for example, rather than a wiki), solving the right problems at the right time (even poorly), etc. None of these are aspects of the language itself, only the resulting full experience that is PHP.

Re: Learning new languages makes you a master of none?

#16
The quick and dirt: your mileage may vary.

It's probably worth mentioning that the reality is that not every developer is of equal ability, nor has the same level of potential ability.

I've met many developers that clearly don't have the same capacity for learning and applying languages to problems as well as others. Do what works for you based on your own perceived capabilities.

Re: Learning new languages makes you a master of none?

#17
Some people have already mentioned that learning a new language often makes you a better programmer in other ones. I don't have any experience in improving skills that way (I started learning Haskell, but it's too early to see whether it's making my Erlang better or not), but what I've learned is that unwillingness to learn new languages makes you a fanboy of language(s) you already know. Being a fanboy of any language is what I'm actually afraid of (just because I know what it is to be a fanboy =)

Suppose, there is a guy (I will name him "Poluekt"), who is a master of Foo language (sounds like "a master of kung-Foo!"). Foo is a really good functional language having active community, excellent runtime and good libraries; Poluekt is good at writing in Foo but isn't brave enough to say "I'm not a Foo, I'm a programmer who wants to choose between languages when it comes to solving non-trivial problems".

What will happen with such a guy when he hear of nice features a new language (say, Bar) offers to solve problems in domain where Foo is (was?) the language of choice? Oh, it will be very offensive for our guy to hear that Bar beats Foo in some cases or even is press it. It will make Poluekt so unhappy, irritable...

Nobody knows how many Bars there will be on the Poluekt's way, but learning them seems a good way to become a good specialist.

Re: Learning new languages makes you a master of none?

#18
post #10

I find learning each new language is easier than the one before it; the concepts of software development are largely the same from language to language and are often transferable from language to language. Then again, I started out on C, so pretty much everything besides Haskell seems like a piece of cake.

I started out with Haskell and now C is killing me. The cognitive distance between the two is enormous.
Post reply on HN