All I Really Needed to Learn About Programming, I Learned from Java

Write once, debug everywhere; Prefer compile time errors to run time errors; Gotos and pointers are like bad words — they can get you into a lot of trouble; Novice-friendliness and expert-friendliness are at a trade-off; An intentionally simple syntax is compatible with a complex collection of objects; Programming in a high level language is faster than programming in a lower level language; It takes longer to learn the high level ways of calling algorithms than the low level building blocks needed to implement them; Every once in a while, you will be surprised at what you have to implement yourself — a ready-made method to return a stacktrace as a string, or have a method find its caller's class; Use the most restrictive keywords you can — it's kindness in disguise; If you want to circumvent security, you can't cast to (char *) and reconstruct private members; If you want to circumvent security, you very well may be able to serialize to a stream and reconstruct private members; Resurrect objects and die; There are some things that words cannot explain — for everything else, there are over 100 megs of documentation; Your program will see much more use if people can run it from their browsers; You can program your server to use any encryption algorithm allowed, but you can't stop your clients from storing their private keys on unsecured Windows boxes; Carefully designed languages can reduce bugs, but debugging will always be a part of programming; No matter how carefully designed the language is, people will still write code that should be indented six feet downwards and covered with dirt; A good new language makes it unnecessary to use older ones, just as a good cordless screwdriver makes it unnecessary to use a hammer or a wrench; You can lead a programmer to objects, but you can't make him think; You can paint on a glass pane in your computer or at your house — but just because you are allowed to do it doesn't mean it's (usually) a good idea; Writing a DWIM compiler is AI-complete; No matter how fast computers get, there will always be a way to make them move like molasses;

Author: C.J.S. Hayward

Who is Christos Jonathan Seth Hayward? A man, made in the image of God and summoned to ascend to the heights of the likeness of God. A great sinner, and in fact, the chief of sinners. One who is, moment by moment, in each ascetical decision choosing to become one notch more a creature of Heaven, or one notch more a creature of Hell, until his life is spent and his eternal choice between Heaven and Hell is eternally sealed. Man, mediator, midpoint, microcosm, measure: as man he is the recapitulation of the entire spiritual and visible creation, having physical life in common with plants and animals, and noetic life in common with rank upon rank of angel host, and forever in the shadow of that moment when Heaven kissed earth and God and the Son of God became Man and the Son of Man that men might become gods and the sons of God. He’s also a writer with a few hobbies, but really, there are more important things in life.