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."

7 of 616 comments (clear)

  1. Yes, but you SHOULD get good at math by Theovon · · Score: 3, Informative

    Ok, so you can do a lot of coding without knowing math. So what? If you want to do anything really sophisticated, like design games or do high performance computing or any non-superficial use of a computer, you have to know math.

  2. Re: Programming by Anonymous Coward · · Score: 2, Informative

    Saying you can code without Math is like saying you can repair a car without being a certified mechanic.

    Sure you can do some basic programming/logic but just like a backyard mechanic , you will still have limits imposed. Of course, there's no harm in learning but Math is necessary for more advanced programming.

  3. Re: Programming by Anonymous Coward · · Score: 1, Informative

    need lots and lots of discrete math all over programming. and gotta be good at doing binary arithmetic and binary decimal conversions in your head.

  4. Re:Programming by Jane+Q.+Public · · Score: 3, Informative

    Indeed. You can be a good programmer in most sub-fields without having a good grasp of multi-variate calculus, but you will never be a good programmer without at least some decent math skills.

    You might do okay at coding web sites. But even then: if you don't understand how the encryption works, how do you know what method to use for encrypting the passwords on your website. Should you just take someone's word for it? (Answer: no. And yet that's how bcrypt became popular.)

  5. Re:Programming by Ichijo · · Score: 1, Informative

    To her, this is "programming".

    No, to her it is "coding." She never used the word "programming" in her article.

    --
    Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
  6. Re:Programming by Darinbob · · Score: 2, Informative

    Good programmers know something other than how to code. People can code while being generally ignorant of all other skills, but that doesn't make them good at it. Math is important, at the very least so that you don't have to go to the next cubicle every ten minutes to ask a stupid question. If you don't know math, then don't even consider the advanced art of floating point and the countless ways that programmers who don't know numerical analysis screw it up. If you don't know abstract math then generally stay away from coding unless you have given highly detailed notes from your boss about every step of what you're doing, otherwise you'll screw it up and make dumb mistakes.

    If your program is going to be involved in some way with physical processes, then damn it you need to learn some physics! If your program is going to be involved some way with mathematical operations, then damn it you need to learn some math! If you're going to use graphics, you need to learn math. If you're going to be dealing with a radio then you need to know some physics and EE. If you're going to write something dealing with health or medicine (heaven forbid the ignorant masses attempt this) then damn it all to hell you need to know some small measure about health or medicine (and not from a tabloid).

    Why is this? Because you will NOT be programming exclusively. There will be times when you need to use your brain. Not the programming part of the brain but the part of the brain that has to deal with the actual problem that the program is solving. If you need to write a control loop then how do you do this without knowing about control theory? Google won't help as you'll spend weeks getting the basics. What normally happens is that these ignorant programmers will waste the time of their coworkers asking questions. Yes, you can't know everything, and yes you will have to ask your coworkers dumb questions, it's just a fact of life. But that college level science and mathematics really does help when you're trying to learn new things or have them explained to you. It applies to the arts and humanities too, not just science and math. Being a well educated person across the board is a huge advantage to a programmer.

    At the very least this ignorance will make one spend all day Googling stuff; something this author seems proud of. Like someone saying arithmetic is a pointless skill because you can use a calculator.

    About the only possible job you can get programming while knowing nothing about anything except programming might be web applications. Surprisingly, this is where most programmers migrate too, especially those who take things like "coding boot camp" courses. Even then you'll stay as an entry level programmer for your entire career.

  7. Re:Programming by crioca · · Score: 5, Informative

    But even then: if you don't understand how the encryption works, how do you know what method to use for encrypting the passwords on your website. Should you just take someone's word for it? (Answer: no. And yet that's how bcrypt became popular.)

    As someone who works in the infosec industry, the fact this comment is rated +5 Informative fills me with panic. Yes, you should absolutely take someone else's word for it, specifically you should take NIST's word for it. Because unless you're one of a handful of the most knowledgeable people in the world, you don't know enough about cryptography to judge the merits of a cryptographic hash algorithm.