Live data from Hacker News

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

thorstenball.com

71–80 of 319 posts

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

#71

Earlier quoted context omitted.

>When exactly are we supposed to be learning all these languages? Some argue that as a professional, you should be spending time outside of work learning to improve your career. You can't expect your employer to give you time to learn. I find it can be difficult though, especially when you want to spend your time outside of work on other things like family and hobbies.

I absolutely expect my employer to give me paid time to learn, and only work for those that do.

I expect employers to give me paid time to learn stuff they require me to use at work, but if it is something unrelated to the company I am not expecting them to give that time.

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

#72

I don't think it's worth studying many programming languages just for the sake of doing so. It's very rare that you get to choose the language to use on a project. If your goal is to be a great software engineer, your professional development time would likely be better spent working on domain knowledge and skills complementary to coding such as communication and leadership.

> I don't think it's worth studying many programming languages just for the sake of doing so. It's very rare that you get to choose the language to use on a project.

Studying languages help you way more than just providing you one more choice for the language of the next project. That’s precisely what this blog post is about.

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

#73
post #60

Frankly I've never understood the desire to be a polyglot. The time spent learning new syntax and a new standard library could have been spent learning libraries, algorithms, data structures, etc, so I don't think it's the most productive way to improve yourself as a programmer. I'm more interested in learning a new language because it lets me do something I couldn't do before.

I only got my current job because I happened to be reading a book on C#, which is strange because we barely code in C#. I spent several years programming in Elixir which got blank stares from recruiters. But saying I know Elixir and C# actually got me a pretty good gig! In an ideal world, knowing data structures and algorithms would get job interviews, but without being able to at least speak to some specifics of the…

Why would knowing “algorithms and data structures” be ideal? In the real world, most jobs aren’t about knowing either. They are about translating business requirements into code.

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

#74
post #61
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.

> cron, Makefile, bash, sed For a programmer with a minimal amount of linux experience, it likely takes a week to catch up to what the codebase is doing with these. > regex There are good tools to destructure regex. > python sql jq query I consider those as "given" or "learnable good enough in a week" > nginx conf Don't know this. Overall, "knowing all these languages" seems overblown in the choice of words for me. J…

There is a difference between “knowing a language” and knowing the frameworks, idioms, ecosystems etc.

I could learn Swift in a week but that doesn’t mean I would be a competent iOS developer.

Someone who knew Python couldn’t do anything useful with the type of automation that I do with Boto3 without knowing the intricacies of AWS.

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

#75
post #61
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.

> cron, Makefile, bash, sed For a programmer with a minimal amount of linux experience, it likely takes a week to catch up to what the codebase is doing with these. > regex There are good tools to destructure regex. > python sql jq query I consider those as "given" or "learnable good enough in a week" > nginx conf Don't know this. Overall, "knowing all these languages" seems overblown in the choice of words for me. J…

2 general purpose languages: R and Python.

Multi language solutions make sense with languages that specialise. So I'd never write in "Go and Java" for example, or "Clojure and C#" or some other pair of general purpose languages.

For me, Python usually ends up being the glue. But otherwise, I use a tonne of special purpose stuff. E.g:

AMPL

Prolog

R

Lua

SQL

sed/awk/grep/jq/etc

C++

Makefile DSL

cron DSL

Docker DSL

etc.

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

#77
post #62
post #56

I learned many languages for years and I received a poor return on time investment. Later, I started learning AWS in depth and studying for certs. I now know way more than I previously did about networking, envelope encryption, messaging, infrastructure as code, pipelines, caching, CDN’s, networking protocols, load balancers, dns, and designing highly available and scalable systems. In summary, don’t forgo learning a…

Learn shell, a scripting language like Python, and a systems language like Java, C, Rust, Go, etc. I think that’s all you need to know as a backend or systems/DevOps Engineer.

“That’s all you need to know” is very reductive. Never stop learning: add JS and functional languages such as Clojure, Scala, OCaml. You don’t need to use a language every day for it to be useful. Learning a bit of Objective-C taught me a lot about naming variables. Smalltalk taught me about non-class-based OOP. Forth taught me low-level stack operations. Prolog, Io, BASIC, Erlang taught me a lot of things I use everyday, even if I don’t use the languages themselves.

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

#78

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…

Perhaps try learning sufficiently different languages? For me it's hard to make cross-language mistakes except within the {} groups:

C, {all kinds of assembly}, {C++, Java, C#}, {Python, Ruby}, {Haskell, OCaml}, Prolog, {VHDL, Verilog}

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

#79

Earlier quoted context omitted.

I'm this way with foreign languages: Spanish and french. I know french very well, and learning/speaking Spanish is significantly harder because I'm always using french words by mistake. sure it'll get better with practice, but interlingual dyslexia is real.

Interesting, I feel like I have the opposite issue. Coming from Portuguese, learning Spanish was a breeze and I can usually surprise French speaking people with “hard” words in my basic French sentences — just because I reached out to a Portuguese word and “frenchyfied” it.

Spanish and Portuguese seem to be unusually close. Studying one helps me with the other.

Portuguese and Japanese on the other hand...

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

#80
Based on my personal experience, I'd say there are good "buckets" of language-context pairs and you can pick one from each according to taste.

C/C++/Rust/Ada on bare metal or systems work for building abstraction upwards from the hardware.

Clojure/Scheme/Common Lisp/Racket: A good dynamic language that's extremely composable, to build abstraction downward from human logic.

ML/F#/Haskell: Powerful type systems that can layer abstraction on abstraction.

I have no experience of the following, but I imagine at least cog and erlang belong to similarly mind-expanding buckets.

Post reply on HN