My SAT Math score is 660, ACT Math is 26, I'm in average-level math classes and usually wind up with an A- or B+.
I've done MIT Intro to Computer Science on OCW and am currently working on Stanford Algorithm Design and Analysis on Coursera. MergeSort took maybe 10 minutes to implement in Python. I have little trouble with recursion (now), and am decent at understanding and mentally modeling complex systems (i.e. AP Chemistry).
But The Powers That Be have decided that the rapid and accurate selection and application of procedures to small, contrived "problems" are the best measure of suitability for a STEM education, so I have little to no shot anywhere besides my state's JavaSchool. Maybe they're right.
But from experience, I will say this: when you teach or test sorting algorithms, you're teaching and testing ideas and how students think. When you teach and test fractions, you're teaching a procedure and testing a student's ability to execute it quickly and accurately without getting bored or transposing digits.
IMHO, the relative weights we put on those completely separate abilities are backwards.
(I have never had trouble with the ideas behind fractions, but make me find the common denominator ten times in 5 minutes and I'll probably screw up once or twice.)
I never said you shouldn't try implementing division yourself; everyone should try implementing everything themselves someday. I'm saying that anyone can, if they wish, do a lifetime of useful work (including writing "real-time 3D engines") without ever knowing or implementing a division algorithm. They will start with anything they want.