Live data from Hacker News

Learn more programming languages, even if you won't use them

thorstenball.com

141–150 of 319 posts

Re: Learn more programming languages, even if you won't use them

#141
post #105

Learn more ? I'm actively trying to unlearn a bunch of languages at this point! ofcourse, when I was a wageslave in the bay area, its nice to know python, java, javascript, scala etc. - got me jobs every 2-3 years & put food on table. now that i'm in academia, its completely upside down. literally everybody is way more productive than me in just about any task. The other day I as supposed to program a poisson clock,…

It's perfectly possible to know several languages in-depth. It just takes a lot of time and effort. Moreover, it gets easier with time and practice. Knowing N languages makes learning N+1 language just a bit easier. For me the turning point was around N == 10, since when learning a new language - and yes, in-depth, including idioms, stdlib, some external libraries, maybe some framework (if needed), and also some fact…

[deleted]

Re: Learn more programming languages, even if you won't use them

#142

At this point I have almost 20 languages that I've used for at least two years, which is what I consider an decent bar for "knowing" a language. The problem I now have is that I don't know if I'll ever be able to master any language anymore. Mmmmaybe C, since I've used that fairly consistently, albeit on-and-off for 25 years. But whenever I get to an "if" or "for" or function declaration, I often have to look at an e…

Try clustering similar languages into groups centered around shared features, then try to come up with high-level statements which hold true for all the languages in a group. Then try to derive the individual differences within the group from these statements. Use mnemonic techniques as required and prepare cheatsheets if needed.

One thing to realize, though, is that syntax - outside of a few special cases - is the most trivial part of any language. It's 100% acceptable to forget the syntax of a `for` loop in one language, as long as you still know that, in that language, the `for` loop is actually a for-each construct working on sequences of some types and additionally it's an expression which returns a sequence of results, making it equivalent to `map` higher-order function. Now, I described the `for` loop of (for example) Elixir, CoffeeScript, Racket, Common Lisp (`loop` with `collect`) and F# and Scala (with `yield`). As long as I know that a language I'm using right now belongs to this group, I can plan my implementation around the semantics outlined above. Then, when it comes to writing the code, I can just look up the syntax, or more commonly - just make my editor autocomplete and snippet-insert the relevant bits for me.

So, my advice would be to first learn and understand as many programming language features as possible, focus on their semantics, and then group the languages you know around the features. The syntax is really a trivial matter, and "mastering it" (ie. having the whole grammar constantly in your head) is not actually necessary in my experience.

Re: Learn more programming languages, even if you won't use them

#143
post #105

Learn more ? I'm actively trying to unlearn a bunch of languages at this point! ofcourse, when I was a wageslave in the bay area, its nice to know python, java, javascript, scala etc. - got me jobs every 2-3 years & put food on table. now that i'm in academia, its completely upside down. literally everybody is way more productive than me in just about any task. The other day I as supposed to program a poisson clock,…

It's perfectly possible to know several languages in-depth. It just takes a lot of time and effort. Moreover, it gets easier with time and practice. Knowing N languages makes learning N+1 language just a bit easier. For me the turning point was around N == 10, since when learning a new language - and yes, in-depth, including idioms, stdlib, some external libraries, maybe some framework (if needed), and also some fact…

I mean, I basically agree with you, but I like your challenge.

What about Rust's borrow checker? I considered it novel, but I'd love to find out it was stolen from somewhere.

Re: Learn more programming languages, even if you won't use them

#144
I’d add make sure you’re learning languages in very different fields. IE, you won’t get much out of learning Ruby after Python (some, but not much). But C or Haskell? Definitely. Also don’t automatically be afraid of old languages. People still write a lot of new things in FORTRAN for instance (really!). And you can make better COBOL jokes if you read it’s wikipedia page at least. Also, languages for describing hardware or FPGAs can be mind bending (Verilog or VHDL), and GPU languages are an excellent thing to have in your toolset whether it’s just for making pretty pictures or doing machine learning. Also learn at least one assembler/bytecode, even if it’s just a vm one. Whatever language you learn make sure it adds something to your toolset you couldn’t do in another language.

The whole “10x programmer” thing probably is based on warped ideas for the most part, but I would guess that if you have a colleague that’s ten times more productive than the rest of the team it’s because they understand and can reason about parts of the stack and machine others can’t

Re: Learn more programming languages, even if you won't use them

#145

Learn Prolog - everything else is an extension. "One [language] to rule them all."

The great thing about Prolog is that it's so radically different, without being intentionally difficult or obscure.

There's not that much value in learning yet another imperative object oriented language. If you want to put the field of programming into perspective, Prolog is even more alien than Haskell.

Re: Learn more programming languages, even if you won't use them

#146
the point is never to learn more, but to learn the essence. there's only one basic language must to be learned by every top-notched engineer is assembly. After that, it's just another layer of abstraction. The concept is just stack + pointer to memory on heap, period. Then, learn whatever language that you are currently need to use. Life is short, don't waste learning something that doesn't matters.

Re: Learn more programming languages, even if you won't use them

#147

Given my limited memory abilities, I have doubts that I'll ever have a master level or even very strong grasp of more than 2-3 languages at any point in time. C, C++, python, Clojure, and Java are usually in that circular queue (both when I was in school and now in industry), but I find myself humbled every time I come back to one after 6+ months. I imagine that if I were to truly sink 10 years into a single environm…

Did you find yourself writing Java differently after writing Clojure?

Re: Learn more programming languages, even if you won't use them

#148
post #50
post #16

Earlier quoted context omitted.

"Here are the languages and DSLs that ended up in the mix: cron, Makefile, bash, sed, regex, jq query, python, R, sql, nginx conf" And also anyone who could replace you will have to know all these languages. Nice approach to job security.

That’s good or bad dependent on the world you want to see. In my opinion, engineers should have an ample toolbox for much the same reason that a good carpenter has a tool for any given thing. If well tooled engineers is what you’re after then you’ll be replacing one with another; with few surprises.

From the client's perspective it must be bad because they cannot task their own employee who can program a little bit with making minor changes to your solution.

Re: Learn more programming languages, even if you won't use them

#149
post #82

Earlier quoted context omitted.

...and everyone knows code has nothing to do with algorithms and data structures.

Well, if you’re doing yet another software as a service CRUD app or another bespoke app that will never be seen outside of a company - like most developers - knowing: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). Isn’t that useful or how to invert a binary tree. I would much rather you show some competence in the language we are using. Knowing le…

Trees - although not necessarily binary ones - are everywhere. If you don't know about them, your CRUD will explode if objects can form a multi-level hierarchy. Don't make too light of CRUD apps - there's complexity there, too.

Re: Learn more programming languages, even if you won't use them

#150
post #19
post #7

I’m getting tired of this. Yes I see the benefit of knowing multiple languages but let’s look at the other side of that coin. There’s the dev that is familiar with a dozen languages and writes terrible code in all of them. When exactly are we supposed to be learning all these languages? Nights and weekends that effectively has you working 24/7? Or more likely some developer that has a personal relationship with the C…

> When exactly are we supposed to be learning all these languages? Nights and weekends that effectively has you working 24/7? By that logic, you might ask how we have time to do anything? How do we find time to eat? How do we find time for HN? Learning a programming language doesn't have to mean mastering the language. Make a game out of it. Pick one "thing" about the language and spend 15 minutes on reading / practi…

Perhaps you could eat using your left hand, and use your right hand to make Anki cards. Then you could have lunch and learn a new programming language in 15 minutes.

Meanwhile, you can use one of your legs to relax, and the other one to interact with your family (unless having a family is too unprofessional).

Post reply on HN