← Back to context

Comment by aleph_minus_one

2 days ago

> Languages are largely teachable, it's just syntax and keywords.

This is like "learning a natural language is just 'cramming vocabulary and grammar' - voila, you've become a fluent C1 speaker". :-)

Seriously: if you argue this way, you have only seen a very biased set of programming languages, and additionally, your knowledge of these programming languages is very superficial (i.e. you have never gotten to the "interesting"/"deep" concepts that make this particular programming language special, and which are hard to replicate in most other programming languages).

I think the argument is that for a good chunk of business work, you don't need to use the "interesting"/"deep" concepts. Sure, you'll need time to adapt to the idioms of the language you're using, but following examples you can be just as productive as others in a relatively short time.

  • > I think the argument is that for a good chunk of business work, you don't need to use the "interesting"/"deep" concepts.

    That's what the MBA people want to believe. To lower costs, or if they see writing code as an operating expense, instead of R&D.

    If this is true or not, it depends on many, many factors, and it can change over the course of the business life.

  • > but following examples you can be just as productive as others in a relatively short time.

    This is not something nice to say about the colleagues. :-)

  • But companies don't pay high salaries for the 80% mundane and easy tasks you do day to day. They pay for the 20% that is challenging and especially for that 1% of problems that occur only once every few months or years. If that 80% was 100% of the job then the company could pay 1/2 to 1/3rd the amount by outsourcing it.

    • I disagree, companies pay based on the problems you can solve to make them money or help achieve organizational goals. One of those ways can be coding, but there are many others.

No, the comparison to natural languages is what is whack. If you understand the underlying concepts that programming languages pick and choose from as features, all you have to learn is what keywords map to those concepts and the language's syntax.

The comparison to natural languages would be if you could learn one language and then quickly pick up every other language of that "class" after learning how that single language works. That's not really how natural language works at all, but it does work with programming languages.

  • > If you understand the underlying concepts that programming languages pick and choose from as features, all you have to learn is what keywords map to those concepts and the language's syntax.

    If you understand the grammatical topics that a natural language picks, all you have to learn is what word transformation rules map to those concepts, and the natural language's vocabulary.

    > The comparison to natural languages would be if you could learn one language and then quickly pick up every other language of that "class" after learning how that single language works.

    There do exist books on this topic (though more commonly for language families). See for example

    https://www.quadrilingual.com/

    or the book

    EuRom 5. Leggere e capire 5 lingue romanze

    > That's not really how natural language works at all, but it does work with programming languages.

    ... it might give you some shallow knowledge in a very limited subset of programming languages.

    • > If you understand the grammatical topics that a natural language picks, all you have to learn is what word transformation rules map to those concepts, and the natural language's vocabulary.

      Yes, and then do that in real time while you're having a conversation with someone who's been learning the language since they were a baby. It is an unreasonable comparison.

In C, implicit type narrowing/widening behavior stumped me as a noob working on noob problems. “Deep C Secrets” was a revelation when I finally found it.

Then again, that’s C.