"I've been programming professionally for about 3 years at this point, and I've noticed some interesting patterns in other programmers I've worked with. One of the key differentiators among programmers is motivation. I'm not referring to an individual's passion to simply be successful in their career, but rather the type of work they want to pursue. The thing they want to do with computers every day, the types of problems they are interested in solving."

From my experience interviewing hundreds of Computer Engineering/Computer Science graduates all these years, I can say most of them fulfill the following condition:

if ( !(developer) && !(engineer) && !(scientist) ) {}

For example, I interviewed a semi fresh grad with one year work experience last Friday. I asked him to write a piece of code (in C++, because that's the language he claimed to be most comfortable with) that returns the absolute value of some 32-bit signed integer, just for warmup. He wrote a function that converts the input integer into a string and checks whether it has a negative sign, then... You know the rest.

It got even worse when I asked him to write a function that returns the value of a user-specified octet in any valid IPv4 address. This means the function should take an IPv4 address and the octet number the user wants returned. He did it in an extremely convoluted way that he even had a hard time explaining how the code works.

Needless to say, he had to write an entirely different code for IPv6. *

I passed all his code around to my coworkers after he left my office, and everyone was laughing so hard. One of them even accidentally swallowed her chewing gum.

In case anyone is curious, this one liner function gives you the absolute value of some 32-bit integer 'num':

int myAbs(const int num) { return num < 0 ? (~num) + 1 : num; }

There is another way: multiply the number by itself and return the square root of the multiplication (which will make it work with real numbers if you replace all instances of 'int' with 'double'). But the above code should suffice, given the requirement explicitly states 'some 32-bit signed integer'.

Computer Engineering/Computer Science graduates who don't understand why or how the above code works have wasted years of life studying a subject they're not even interested in.

Based on my own professional experience, more than half of 'programmers' that have formal education background in relevant fields (Computer Engineering/Computer Science) barely know how to program these days, which is sad.

This is just my observation. YMMV.

[*] OT: Have they come up with an official name to call IPv6 address parts, yet?