CodeSOD: Off by Dumb Error
"We're bringing on my nephew, he's super smart with computers, so you make sure he is successful!"
That was the long and short of how Reagan got introduced to the new hire, Dewey. Dewey's keyboard only really needed three keys: CTRL, C, and V. They couldn't write a line of code to save their life. Once, when trying to fumble through a FizzBuzz as a simple practice exercise, Dewey took to Google to find a solution. Because Dewey couldn't quite understand how Google worked, instead of copy/pasting out of StackOverflow, they went to r/ProgrammerHumor and copied code out of a meme image instead.
Reagan couldn't even just try and shove Dewey off on a hunt for a left-handed packet shifter in the supply closet, because Dewey's patron was watching source control, and wanted to see Dewey's brilliant commits showing up. Even if Reagan didn't give Dewey any tasks, Dewey's uncle did.
That's how Dewey got stumped trying to fetch data from a database. They simply needed to read one column and present it as a series of HTML list items, using PHP.
This was their approach.
$sql = "SELECT information FROM table"; //yes, that is actually what Dewey named things in the DB$result = $conn->query($sql);$list = $result->fetch_assoc();$i = 1;$run = true;while ( $list == true && $run != false ) { if ( $list[$i] <= count($list) ) { echo '<li>' . $list[$i] . '</li>'; $i++; } else { $last = array_pop(array_reverse($list)); echo '<li>' . $last . '</li>'; $run = false; }}
Presumably, this is one of the cases where Dewey didn't copy and paste code, because I don't think anyone could come up with code like that on purpose.
The fundamental misunderstanding of loops, lists, conditions, arrays, and databases is just stunning. Somehow, Dewey couldn't grasp that arrays started at zero, but blundered into a solution where they could reverse and pop the array instead.
Needless to say, Dewey never actually had any code get past the review stage. Shortly after this, Dewey got quietly shuffled to some other part of the organization, and Reagan never heard from them again.
[Advertisement] ProGet supports your applications, Docker containers, and third-party packages, allowing you to enforce quality standards across all components. Download and see how!