• Aceticon@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    19 hours ago

    I think it makes sense that people who don’t have actual experience in making projects in a specific language won’t be aware of details such as the value 0 being the default in a certain kind of field in a certain language which makes it a good flag for “data unknown”.

    This is not a problem specific of teenage programmers - it is natural for just about everybody to not really know the ins and outs of a language and best practices when programming with it, when they just learned it and haven’t actually been using it in projects for a year or two at least.

    What’s specific to teenagers (and young coders in general) is that:

    • They’re very unlikely to have programmed with COBOL for a year or two, mainly because people when they start tend to gravitate towards “cool” stuff, which COBOL hasn’t been for 4 decades.
    • They haven’t been doing software engineering for long enough to have realized the stuff I just explained above - in their near-peak Dunning-Krugger expertise in the software engineering field, they really do think that learning to program in a given language is the same as having figured out how to properly use it.
    • spireghost@lemmy.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      12 hours ago

      I think it makes sense that people who don’t have actual experience in making projects in a specific language won’t be aware of details such as the value 0 being the default in a certain kind of field in a certain language which makes it a good flag for “data unknown”.

      The whole “COBOL’s default date is 1875” thing is just a lie. COBOL doesn’t even have a date type.

      So the problem doesn’t have anything to do with COBOL, someone just made it up

      • Aceticon@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        The way I’m reading is that they were holding a date related value in an unsigned integer field, so the start date (corresponding to 0) was a convention (whether internal or broader than that, I don’t know) and they chose 0, the default initialization value for such fields as a flag for “no information”. Back in the day there wasn’t all that memory and storage to go around so I bet this was a 1 byte field holding a year value.

        Those choices in a system to be used for Social Security for a whole nation make sense in software design terms if you’re having to come up with your own solution for storing dates in as fewer bytes as possible in a language with no built-in date type, but present day teenagers would have never have been in such a situation because there are no currently fashionable programming languages without date types, space isn’t as constrained anymore and they don’t have experience in the kind of projects were one has to store records for hundreds of millions of people.

    • jsomae@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      12 hours ago

      my brother taught me to code when i was 6, so at 19 i had 13 years of experience already. At 6 i was mostly doing simple stuff like qbasic, vb6, but still it adds up. I’m not saying I’m a great coder, not by a long shot, just that I was experienced as a teenager. I assume a lot of these teenagers are much better than i was.

      • Aceticon@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 hours ago

        I taught myself coding at 14 on a ZX Spectrum 128 and was doing Assembly within 2 years.

        By now I have over 3 decades professional software engineering experience, almost 4 decades in total if including the stuff I did non-professionally.

        Looking back, I knew how to make programs (even made a Minesweeper for the Spectrum in Assembly) but that’s not at all the same as knowing the good or industry standard practices in the languages I used.

        Whilst it should be way easier now to find those things out (there was no Internet back when I started), in my experience one needs to actually have been coding in a spaghetti way long enough and in enough projects you can’t just ditch if they get too messy to actually feel the need to learn those better ways and hence go search for it.

        Also I bet that it’s a lot harder to find advanced tutorials on COBOL on the net from people with actual experience doing it professionally for a couple of years than it is for, say, Python.

    • Malfeasant@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      17 hours ago

      I’ve been surprised multiple times by coworkers who don’t know the significance of midnight January 1st 1970… We support an embedded Linux device, among other things…