Slashdot Mirror


You Don't Have To Be Good At Math To Learn To Code

HughPickens.com writes: Olga Khazan writes in The Atlantic that learning to program involves a lot of Googling, logic, and trial-and-error—but almost nothing beyond fourth-grade arithmetic. Victoria Fine explains how she taught herself how to code despite hating math. Her secret? Lots and lots of Googling. "Like any good Google query, a successful answer depended on asking the right question. "How do I make a website red" was not nearly as successful a question as "CSS color values HEX red" combined with "CSS background color." I spent a lot of time learning to Google like a pro. I carefully learned the vocabulary of HTML so I knew what I was talking about when I asked the Internet for answers." According to Khazan while it's true that some types of code look a little like equations, you don't really have to solve them, just know where they go and what they do. "In most cases you can see that the hard maths (the physical and geometry) is either done by a computer or has been done by someone else. While the calculations do happen and are essential to the successful running of the program, the programmer does not need to know how they are done." Khazan says that in order to figure out what your program should say, you're going to need some basic logic skills and you'll need to be skilled at copying and pasting things from online repositories and tweaking them slightly. "But humanities majors, fresh off writing reams of term papers, are probably more talented at that than math majors are."

2 of 616 comments (clear)

  1. Re:Programming by lkcl · · Score: -1, Troll

    Programming -- I don't think that word means what she think it means.

    actually... i believe it's you who doesn't understand what programming is. programming is about "achieving results". the results - by virtue of their success - have absolutely NOTHING to do with the method by which those results are achieved. this is provable by either (a) unit tests or (b) a system test.

    so if this person has found an unorthodox and successful way to do programming (which, by the way, is *exactly* how i do pretty much all of the programming i've ever done, including in programming languages that i've never learned before), then *so what*??

    just because *you* memorise all the APIs, go through all the books, go through all the tutorials, go through all the reference material and then re-create pretty much everything that's ever been invented from scratch because otherwise you would not feel "confident" that it would "work", does NOT mean that there isn't an easier way.

    there are actually two different types of intelligence:

    (a) applied (logical) intelligence. this is usually linear and single-step.
    (b) random (chaotic) intelligence. this is usually trial-and-error and is often parallelisable (evolution, bees, ants and other creatures)

    an extreme variant of (b) is actually *programmable*. it's called "genetic algorithms".

    personally i find that method (a) is incredibly laborious and slow, whereas method (b) is, if you write good enough unit tests and spend a significant amount of time reducing the "testing" loop, you get results very very quickly. genetics - darwin selection - is a very very good example. we don't "understand" each iteration, but we can clearly and obviously see that the "results" are quite blindingly-obviously successful.

    by applying the technique that the original article mentions, i've managed to teach myself actionscript in about 48 hours, and java was about the same amount of time. i knew *nothing* about the APIs nor the full details of *either* language... yet i was able to successfully write the necessary code for a project that was based on red5 server and a real-time flash application. it was up and running within a couple of weeks.

    in short: to call the method described in the article as "nothing to do with programming whatsoever" is complete rubbish. it's a proven technique that gets results, and, you know what? the most critical insight of the article is that it's *not* people who are "good at maths" who are good at achieving results with this technique: it's people who are creative and who understand language.

  2. Re:You know there's a problem... by lkcl · · Score: 0, Troll

    ...when you need to google the hex representation of 'red'. *much* better to understand the encoding, and it certainly isn't hard or requires tricky math. it's literally RRGGBB

    you are completely and utterly missing the point, by a long, long margin, and have made a severe judgement error. the assumption that you have made is to correlate "understanding" with "successful results".

    believe it or not, the two are *not* causally linked. for a successful counter-example, you need only look at genetic algorithms and at evolution itself.

    did you know that human DNA contains a representation of micro-code, as well as a factory which can execute assembly-level-like "instructions"? i'm not talking about CGAT, i'm talking about a level above that. to ask how on earth did such a thing "evolve" is entirely missing the point. it did, it has, it works, and who cares? it's clearly working, otherwise we would not be here - on this site - to be able to say "what a complete load of tosh i am writing"!

    what this person has done is to use their creative intelligence as well as something called "inference". they've *inferred* that if enough google queries of "what is hex HTML for red" come up with a particular number and it's always the same number in each result, then surprise-surprise it's pretty much 100% likely that that's the correct answer.

    *later on* they might go "hmmm, that's interesting, when i search for "red" it comes up with FFnnnn, when i search for "green" it comes up with nnFFnn" and then they might actually gain the understanding that you INCORRECTLY believe is NECESSARY to achieve successful results.

    but please for goodness sake don't make the mistake of assuming that understanding is *required* to achieve successful results: it most certainly is not.