3 ms·
Its a width vs depth argument. I think If you wanted to start digging deeper in any of the languages you learned in 2016 you could do so faster than having one
by zengid 10y ago
Its a width vs depth argument. I think If you wanted to start digging deeper in any of the languages you learned in 2016 you could do so faster than having one language to consider. For instance, you've probably noticed that Clojure borrows ideas from other languages (go channels for instance), so learning how Clojure deals with that abstraction will help you compare/contrast it with how Go's abstraction works.
The more languages you know (lots of width), the more you can compare to others as you learn (gaining depth), and the faster you can assimilate new ideas as you go. Analogously, its as if while digging into one language you discover a cave-tunnel that connects you back up to another language you are familiar with. This saves you from having to dig all of the tunnels yourself because you can see how deep concepts in one language can be connected across your broad familiarity (width).
IMHO, I hate approaching tasks with a rigid mindset, whether its "LEARN EVERYTHING" or "LEARN ONE THING". I think its better to just encourage yourself to investigate something because you're interested in it, and then see where it leads you.
For instance, I'm digging into Clojure right now myself, and after watching a Rich Hickey talk about immutability and concurrency, I became curious about how GPU's work, and if they could be used with immutable data structures. Now somehow I've gotten into learning about OpenCL and CUDA and am having my mind blown about the possibilities of using a GPU as a massively parallel processor (concurrency isn't possible on GPU's though). If I were strict, I would've blocked myself from diverging from the Clojure path, and I would not have learned anything about the wonders of the emerging field of Heterogeneous Computing Languages.