Hacker News new | ask | show | jobs
by thatcodingdude 2138 days ago
Nice, that's really interesting ! How did you touch so many different languages, was it only on personal side-projects or did you learn on the job ?

I'm afraid learning too many different languages just for fun would be detrimental on my main "job" language, like I'd forget the main patterns. But probably not.

1 comments

> How did you touch so many different languages, was it only on personal side-projects or did you learn on the job ?

Mostly in my free time yes. But I've also written tools I use in my job now. With Clojure I've written a data integration/migration tool that I use directly in the REPL. In Rust a small automation tool that fetches some APIs and puts the data into a PDF (because the document has to be printed and signed by hand).

> I'm afraid learning too many different languages just for fun would be detrimental on my main "job" language, like I'd forget the main patterns. But probably not.

I get the feeling but it is completely the other way around. You get a better understanding of languages and programming in general and many concepts are language agnostic. The next you thing you learn gets easier because you know what questions to ask.

Learning Clojure helped me write better JS, you can even compile it to JS and integrate it into a JS application as well.

Rust teaches me to write better imperative code. Allocation and lifetimes for example are language agnostic concepts once you see behind the abstractions. Also with WASM you get to use Rust from other languages like JS and even PHP.

Tips/opinion:

- I don't learn a new language that doesn't challenge me in some qualitative new way. For example if you know Java, there is no point in learning C# in depth except you are looking for a specific job. You can almost always directly translate Java concepts to C# concepts and be fine.

- I prefer learning a new language that also lets you do a thing you couldn't do before. For example tapping into a new runtime/community/mindset. Or doing things way faster, or dynamic. Or interacting with a set of libraries that have a different reach.

- Languages itself are not the most important thing. It is what they carry around that is interesting and useful.

- I also prefer learning languages that have some useful interoperability with the ones I already use. The ones I mentioned above are in this category. Another big one would be C. Not a strict rule though.

- As I mentioned: SQL and Regex are probably the most important languages to learn and get a deeper understanding of as a web-dev.