The Case For the Blue Collar Coder
theodp writes "U.S. tech talent shortage discussions tend to focus on getting more young people to go to college to become CS grads. Nothing wrong with that, writes Anil Dash, but let's not forget about education which teaches mid-level programming as a skilled trade, suitable for apprenticeship and advancement in a way that parallels traditional trade skills like HVAC or welding. Dash encourages less of a focus on 'the next Zuckerberg' in favor of encouraging solid middle-class tech jobs that are primarily focused on creating and maintaining tech infrastructure in non-tech companies. Dash also suggests 'changing the conversation about recruiting technologists from the existing narrow priesthood of highly-skilled experts constantly chasing new technologies to productive workers getting the most out of widely-deployed platforms and frameworks.'"
They've had that in Germany since the 1960's.
http://de.wikipedia.org/wiki/Mathematisch-Technischer_Assistent
Huh? Floats is the standard representation of numbers almost everywhere.
Not in financial transactions. While there are ways to do financial transactions with floating point numbers, they have an alarming tendency to introduce rounding errors. When you are dealing in money, rounding errors are an extremely bad thing because then the books don't balance anymore. One common way to deal with the problem of rounding floats is to treat the stuff to left of the decimal as an integer and the stuff to the right as another integer since there are no rounding issues with integers. While not as fast as floats, the extra accuracy is worth it in this instance. There are other ways to solve this problem but you'll find conventional floating point is used with great caution in the financial world.
There's a reason floats are implemented in hardware.
Which has nothing to do with why floating point numbers are often not used for financial transactions.
The better answer is to use languages with arbitrary precision representations of rational numbers. You will not have to deal with integer overflows, you will not have to deal with losing precision, and you can spend more of your time developing the correct program logic. Yes, it will mean a bit more in resources -- which can be fixed later if it becomes a problem.
There's a reason floats are implemented in hardware.
Yeah, and it is the same reason we continue to use C and C++ to write high level programs: history. If we were starting from scratch today, using the latest technologies and research, it is almost certain that we would do things differently.
Palm trees and 8