• r00ty@kbin.life
      link
      fedilink
      arrow-up
      1
      arrow-down
      3
      ·
      8 months ago

      I’m not really a fan of this kind of question. Especially if there’s enough questions that time will be an issue for most. Because at first glance it’s easy to think the answer might be the length of a day.

      There shouldn’t be a need to try to trick people into the wrong answer on an open question. Maybe with multiple choice but not an open answer question.

      • RagingRobot@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        8 months ago

        I get your point about it being a trick question but I think in this case it’s pretty reasonable that you would see code like this in real life. Where the programming metaphor and your understanding of the real world clash. It’s a very important skill to be able to spot the difference.

        • onlinepersona@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          4
          ·
          8 months ago

          The compiler or interpreter does that for you. There’s no point in these “gotcha’s”. They are cute brain teasers that belong on those useless “are you a programmer” quizzes you find on random meme websites, not an exam.

          CC BY-NC-SA 4.0

          • RagingRobot@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            8 months ago

            In the error shown a compiler would be just fine and run as usual but the person programming it would be expecting a different result so a compiler wouldn’t do this for you since it’s a logical error and not a syntax error.

            • onlinepersona@programming.dev
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              2
              ·
              8 months ago

              If it’s a statically typed language and x is of type Date, it’s for sure throw a type error when trying to assign a string to it. If it had autoboxing / auto type conversion from String to Date, length could return a number or a string.

              If this were Javascript on NodeJS, it would fail at print(x) because that doesn’t exist in JS. If it were Python it would fail at x.length because that has to be len(x). And so on.

              If this were all to pass, at the latest at runtime, when the programmer sees the output “6”, they would know something’s up.

              As I said, cute, but worthless test.

              CC BY-NC-SA 4.0

      • Adlach@lemmygrad.ml
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        8 months ago

        Software engineering as a discipline is pretty much a series of trick questions.

      • CanadaPlus@lemmy.sdf.org
        link
        fedilink
        arrow-up
        2
        arrow-down
        2
        ·
        8 months ago

        It relies on critical thinking (meaning thinking about your own thinking), basically, and most students aren’t very good at that.

        • Couldbealeotard@lemmy.world
          link
          fedilink
          English
          arrow-up
          5
          ·
          8 months ago

          This doesn’t rely on critical thinking. It just relies on understanding what “.length” does, which would’ve been previously covered in the lessons.

          • CanadaPlus@lemmy.sdf.org
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            edit-2
            8 months ago

            Well, both. If you rushed through without recalling that length has specific meaning relative to strings, even though you do know that, that’s a critical thinking failure. But yeah, not knowing strings could do it too.

            • Couldbealeotard@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              arrow-down
              1
              ·
              8 months ago

              If you didn’t know the answer, it’s a critical thinking exercise? Not at all.

              Answering this question relies completely on understanding programming. A correct answer cannot be reached without an understanding of programming.

              • CanadaPlus@lemmy.sdf.org
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                8 months ago

                A correct answer cannot be reached without an understanding of programming.

                Yes. It does not follow, though, that knowledge of programming always leads to a correct answer. Since you seem like someone who might appreciate a formal logical description, you are affirming the consequent here.

                Again, without sufficient critical thinking one might just miss the detail that “Monday” is a string and not a custom unit-of-time object, inheriting from Day.

                • Couldbealeotard@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  8 months ago

                  But you can only mistake it as a custom object of you understand how coding works. I’m not saying an understanding will prevent you from being wrong, I’m saying having critical thinking will not reach the answer if you don’t have an understanding.