Hacker News new | ask | show | jobs
by vtange 2619 days ago
Learning a new language doesn't necessarily deepen the vertical bar if the language cannot really be used to improve productivity/innovation on top of an engineer's current toolset. Learning TypeScript on top of Javascript can be thought of as vertical, but learning say Lua or C# on top of JS is probably better described as horizontal unless you're already intending to do some really specific desktop application.
2 comments

Learning different concepts from other languages can make a big difference. For instance I learned about the value of composition over inheritance by learning Rust, then applied it to my life as an Objective-C developer (prior to Swift). It forces you to break out of your well tread paths, and take the best of other systems and fold it into yours.
Coming from a procedural dynamically typed language like PHP and then learning rust, clojure, and node JS. All have huge benefits.

Rust ownership and types system teach you about the freedom it affords you when reasoning about values in a system.

Clojure teaches you about separating state from logic and the benefit of keeping it at the edges of a system.

Nodejs teaches you about async and programming which is imo, as different as functional is to OO. The way you need to reason about things is very different. The non blocking needs teach you about what types of things are blocking and which are not.

I took all these lessons back to PHP and my systems are massively improved as a result.

Most of the PHP hate comes from people dealing with PHP code written by people who simply don't know how to program.

That is not a defense of PHP, it has many faults, but it's a language like any other. I have problems, big ones, with every language and ecosystem I've ever been exposed to. That doesn't detract from their benefits or the concepts they can teach you.

Also, it takes like 20-30 hours to get mediocre with a new standard library and syntax. You won't "learn the language" but you'll get a good feel for it.

Arguing time cost as a reason to avoid learning new languages is pretty weak when you're spending a career programming.