Live data from Hacker News

The Polyglot Programmer

agilefrog.se

21–30 of 41 posts

Re: The Polyglot Programmer

#21
My effort to becoming a polyglot programmer was to learn different languages for different jobs. For instance, my chosen languages are C, Python, Java, Javascript and more recently Go. I believe that each language is better suited for some jobs than others, and it comprises a full stack as far as languages are concerned.

But I may be working on a device driver in the morning (C) and the prototyping some UI ideas in the afternoon (javascript).

Re: The Polyglot Programmer

#23
post #19

Programming languages are just one subset of tools used by programmers. Therefore, simply counting how many languages one knows is simplistic. It's not incidental that high-rated CS curricula don't spent most of the courses teaching new programming languages. I know amazing polyglot programmers who just know 3-4 languages.

I agree. I would place much more emphasis on high-level mathematics, algorithms and data structures.

I believe mastering two languages with complementary strengths would be far preferable to just syntactically learning a bunch of languages.

Stated another way, I believe if someone can program at an expert level in one lisp, they probably don't need to insist on learning more of them.

If you progress to "merely adequate" in a smorgasbord of languages but all you can do is churn out CRUD apps but couldn't implement basic algorithms for a search engine you've plateaued.

Re: The Polyglot Programmer

#24

Earlier quoted context omitted.

Most programming languages are essentially the same; skills are directly transferable and you just have to learn minor syntactic difference. I would think it would be much harder to master guitar just because one already mastered drums, or the other way around. Show me someone who has mastered computer graphics and say databases, then I'll be in awe.

I have to disagree, functional and object oriented languages produce very different solutions. Syntax is just the grammar. Compare e.g. Mandarin to a Latin based language and you will see what I mean. :) But indeed, mastering more areas is even more impressive.

Few languages are pure FP or OOP, at least all the modern mainstream languages are hybrids. How different is python from c#? Ya, they are different but not incredibly so. Definitely not the diff between Latin and Chinese.

Re: The Polyglot Programmer

#25
post #6
post #5

We should clarify that knowing how to write a "Hello World" in a programming language does not make you "know" that programming language. In other words, how much should you know about a language to call yourself a polyglot?

Take the analogy from natural languages, and you're fluent in any language where you can write simple programs without consulting the documentation (or only minimal consultation), conversant in any language you can get real work done in, and speak broken language X if you know Hello World and not much more. A polyglot should be fluent in multiple languages, from at least a couple different families, and conversant in…

What it means to be "fluent" in a natural language is probably even more disputed than with programming languages. It is a good metaphor in that sense though.

Re: The Polyglot Programmer

#26
post #14

Earlier quoted context omitted.

I understand where you're coming from, but I strongly disagree. I've worked with multiple living counterexamples to your point - they only knew one language (sometimes old and non-maintained), but they could blow the next whiz-kid out of the water in terms of logical thinking and its application to software development. IMO the only requirement to being a "programmer" is "programming", and restricting it any way beyo…

I'm not even talking about the little languages that just come in and out of fashion all the time. If you know c++ you could basically roll right into C#, Java, PHP, etc in under a week and be doing real work in them. Maybe you wouldn't have the intricacies down immediately but you could be doing production code level work very quickly.

You could, but I wouldn't recommend it.

Learning a new language, say C++ -> Java is WAY more than just learning the syntax. There are best practices for solving certain kinds of problems in each language that differ between language.

Sure, there is a high level similarity between the solutions (hey, its just the observer pattern, right?), but there are also likely (IME) to be many critical differences in the details.

Re: The Polyglot Programmer

#27
post #5

We should clarify that knowing how to write a "Hello World" in a programming language does not make you "know" that programming language. In other words, how much should you know about a language to call yourself a polyglot?

A language that doesn’t affect the way you think about programming is not worth knowing. — Alan Perlis

Just enough to change they way you think about programming. E.g., One need not be an expert programmer in Haskell to have learned the benefits of lazy evaluation or strong static typing.

Re: The Polyglot Programmer

#28
post #17
post #13

Earlier quoted context omitted.

I am not saying you can't focus on a single language. But for example, if you know c# than you basically know java, and you basically also know php. You could easily pick up a pretty good understanding of these languages in under a week. If you know c++ you could basically roll right into any of those languages I named above in under a week as well. It is sort of difficult to do anything worth doing on the web unless…

I think you're conflating "knowing" a language with knowing the syntax of a language. It was an easy transition into C++ syntax from my usual C#/Java programming, but the transition into thinking like a C++ programmer was not a simple or easy one. Weeks (months?) later, I am still learning how to be a "good" C++ programmer. I remember "learning" PHP when I was younger and could probably program quite a few things wit…

It's easy transiting from C++ to Java/C#, the the reverse transition is not as easy. I would say that the "mental toolbox" of a C++ programmer includes a lot of things that also belong in a Java programmer's "toolbox" (i.e. classes, inheritance, virtual functions), which helps someone who knows C++ pick up Java relatively easily. But there are important aspects of C++ that are NOT in the Java toolbox, i.e. manual memory management, pointers, templates (which are way different from generics in java, by the way), these make the reverse transition harder.

Re: The Polyglot Programmer

#29
post #19

Programming languages are just one subset of tools used by programmers. Therefore, simply counting how many languages one knows is simplistic. It's not incidental that high-rated CS curricula don't spent most of the courses teaching new programming languages. I know amazing polyglot programmers who just know 3-4 languages.

I couldn't agree more. I've encountered many "programmers" that know a wide range of languages, but once you begin to delve deeper you realize that its a matter of quality over quantity. "Jack of all trades, master of none."
Post reply on HN