6 ms·
The Polyglot Programmer
Which languages do you know and why did you learn them?
- kermitten 13y agoWhich languages do you know and why did you learn them?
- seanmcdirmid 13y agoWe are in the dog days of summer, so the amount of good content to report here has probably gone down, leading us to puff pieces like this with very little content.
- kermitten 13y agoI'm sorry you didn't like the post. Perhaps you can provide a little more feedback? :)
- seanmcdirmid 13y agoThere is nothing wrong with it for what it claims to be. It is just content free and shouldn't be normally front page material, except right now there isn't much competition. Most everyone is on vacation.
- pcunite 13y agoIn my personal experience the most talented developers have been polyglots. Not that someone who knows only two syntaxes is not useful. It must be like musicians ... when you see a person get off the drums and pick up the guitar ... it just puts you in awe.
- seanmcdirmid 13y agoMost 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.
- kermitten 13y agoI 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.
- seanmcdirmid 13y agoFew 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.
- deleted 13y ago[deleted]
- pfisch 13y agoSo it seems to me like this article just described being a programmer.... If you don't know at a minimum 4+ languages I'm not sure you should be called a programmer at all.
- krapp 13y ago“I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.” Bruce Lee
- cookingwithrye 13y agoI 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 beyond that hurts the field. The guy that's been doing systems programming in C++ for 10 years should probably be considered a "programmer" despite not knowing the latest compile-to-js language of the week.
- pfisch 13y agoI'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.
- ics 13y agoThat may be true for many languages, but if those people never roll into that sort of situation it's probably fair to still call them programmers.
- bandushrew 13y agoYou 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.
- omegote 13y agoWe 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?
- BruceIV 13y agoTake 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 many more.
- kermitten 13y ago"Conversant in any language you can get real work done in", I think this is a pretty good baseline to define if you know a language or not. :)
- cgag 13y agoWhat 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.
- SkyMarshal 13y agoFwiw, I've always understood "fluent" and "conversant" to be the opposite of above - "fluent" being the highest level, indistinguishable from a native speaker (slang, dialect, accent all spot on), while "conversant" means able to communicate and get along but obviously it's a second language to you. I don't doubt linquists dispute something like that though.
- cgag 13y agoSame here. I would never call myself fluent in Spanish, but then I've seen people on my level or worse who do and it's frustrating. I've seen plenty of similar arguments online about what it means to be fluent.
- Moto7451 13y agoTotally agree. While it's true you won't master every language you learn, I find I transfer little gems and idioms from one language into the languages I use on a daily basis. I pretty much ignored the dynamic programming available in C# until I worked with Perl for a year. I've also transferred some functional programming idioms into my Perl and Objective C.
- eliben 13y agoProgramming 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.
- dylangs1030 13y agoI 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.
- rob_b 13y agoI 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."
- w3pm 13y agoI agree that simply "counting" is a useless metric. I believe what's useful is exposure to different ways of thinking about programming and problem solving. In my personal experience, exposure to imperative, functional, logic, actor, and meta-programming have all enabled me to learn more about problem solving and to think about programming at a higher level. Can you gain exposure to all of those concepts, and more, in just 3 or 4 languages? Absolutely. Does the potential for learning and growing as a programmer end there? I'd hope not! As a related note, learning new syntax is by far the least useful aspect of learning a new language. Coincidentally, it's also the easiest element to pick up and takes little time at all. Incorporating new paradigms into your way of thinking takes far longer.
- 13y ago
- MaxScheiber 13y agoThis is why I prefer telling people about the programming paradigms I know, not the languages I know. I'm not impressed by someone who knows Java, C#, and PHP compared to someone who knows object-oriented program, functional programming, and programming in an S-expression language.[0][1] I've found that a multi-paradigm programmer often has superior reasoning abilities about how to write scalable, readable code. Language acquisition within a paradigm is usually laughably easy, once you've been exposed to that paradigm in the first place. Thus, I agree with the author's argument if polyglot is defined with respect to paradigms, not languages. [0] I'm not sure if picking up a Lisp is considered its own paradigm, but it seems radically different enough to me. [1] This sentence is, of course, a generalization. Someone who knows every nook and cranny of a language is certainly impressive, as they can do some really remarkable things. However, this generalization has usually held up, in my experience.
- ishbits 13y agoMy 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).
- BruceIV 13y agoAgreed - I think that good programmers will become polyglots naturally (from picking up different tools for different jobs), which in turn will reinforce their programming skills.
- dylangs1030 13y agoThis read like a book report.
- etfb 13y agoNot so! If it were a book report, it would be returned for using light grey ink on white paper. Give teachers some credit!
- arxpoetica 13y agoLets not forget the polymaths in this analysis.