5) Recognition of Stupidity
This could also be “understanding how computers think.” We’ve all been told not to make assumptions, but assuming common sense on behalf of a computer while programming or coding is a recipe for disaster. Computers are dumb, and ruthless. Their strength is their processing power, not independent or creative thought. They’ll do exactly what they’re told to, even when it might seem obvious to gently tweak instructions, or not follow the same ones again and again. People like Bill Gates and Stephen Hawking have warned about artificial intelligence leading to the apocalypse. Nick Bostrom, a student of super intelligence and the director of the Future of Humanity Institute at Oxford University, laid out how the world could be destroyed by artificial intelligence under instructions to maximize the number of paper clips in the world. If that AI was able to invent technology and build manufacturing plants…look out. “How could an AI make sure that there would be as many paper clips as possible?” asked Bostrom. “One thing it would do is make sure that humans didn’t switch it off, because then there would be fewer paper clips. So it might get rid of humans right away, because they could pose a threat. Also, you would want as many resources as possible, because they could be used to make paper clips. Like, for example, the atoms in human bodies.” So when you’re coding, make sure what you’re inputting is what you expect to be output, no more, no less. The program can’t make adjustments or improvements that it’s not told to do first.
Some of the greatest achievements in programming have been creating algorithms that get computers to think in more independent, brilliant and productive ways. Look into algorithms like Quicksort, Huffman Compression, the Fast Fourier Transform, and the Monte Carlo method to see what I mean. All of these have helped develop a major goal for coders: getting computers to do more of the heavy lifting through artificial intelligence, yet doing so in a way that is useful, focused and doesn’t lead to our species’ destruction. So when you’re coding, try to think the way a computer does, and use your attention to detail skills to make sure you specify exactly what you want, without leaving anything to chance or adaptation. You won’t have to specify EVERYTHING, some calculations will be made automatically to free you up to directing the program. But maintaining a mind frame where you don’t trust what you’re working on to do anything it wasn’t explicitly told to is extremely important.