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

13 of 616 comments (clear)

  1. Programming by fyngyrz · · Score: 5, Insightful

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

    --
    I've fallen off your lawn, and I can't get up.
    1. Re: Programming by ShanghaiBill · · Score: 5, Insightful

      Math is necessary for more advanced programming.

      Linear algebra (matrices) and trig are essential for doing 3D graphics. Calculus and differential equations are need for doing simulations of physical processes. Otherwise, programming is not very mathematical. Web coding just requires enough arithmetic to do the layout, and most business programming doesn't even need that.

    2. Re: Programming by Anonymous Coward · · Score: 5, Insightful

      You're totally wrong. Only complete idiots or actual cryptographers roll their own.

    3. Re: Programming by Anonymous Coward · · Score: 5, Insightful

      math is the manipulation of symbols in a formal language.

      coding is the manipulation of symbols in a formal language.

      they are the exact same thing. If you can do one well, you can do the other well. Most people can't do either very well.

    4. Re: Programming by Darinbob · · Score: 5, Insightful

      A lot of this just pushes all the buttons for me. My pet peeves with modern society are with the morons who revel in their own ignorance. There used to be a time when learning stuff was considered important. Even the president of companies would feel the need to learn what their company was about, how their product was made, how it worked, etc. Today ignorance is celebrated. Morons can go on the internet and say "I can code without knowing math", which sort of implies that people who do learn things are wasting their time. Cretins advocate that college can be skipped as a waste of time. Even those in college whine like kindergarteners that stuff is too hard or irrelevant to their future career behind a help desk.

      Ignorance should never be treated as a virtue. And yet that is what is happening and this original post proves that this attitude is still alive.

    5. Re:Programming by Wycliffe · · Score: 5, Insightful

      Because of this: how she taught herself how to code

      She didn't teach herself to code. She taught herself how to cobble together a website.
      Yes, you can cobble together a website with minimal coding skills by using already created widgets but what if you want a widget that doesn't exist yet?
      If you want to cobble together a website, there are plenty of programs like wordpress that require no coding skills at all.
      True programming doesn't require math as much as it requires you to be able to understand how to take small pieces like if statements and arrays and
      create something with it. I can explain if statements and a flow chart to someone in 10 minutes but the hard part of programming is being about to see
      how you can combine several thousand of those if statements to do something like generate an image. Being able to imagine the end product and plot
      a course to get there through several thousand steps using rudimentary blocks is what makes programming hard. Building a webpage is not programming.

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

  2. Learning to program by Googling + Trial & Erro by ahbond · · Score: 5, Insightful

    This is why so much poor software exists in the world. I can only imagine what nightmare code is being generated by such efforts. Yes, anyone can code, just as anyone can build a house. Whether or not the house collapses immediately, whether it has any real value, or by any other measure still depends on the skill of the builder, just as in software. Garbage in -> Garbage out, applies to the code as well as the data. -AB

  3. Interesting by Moridineas · · Score: 5, Interesting

    I spoke to a computer science professor about 2–3 years ago who said he had noticed a curious thing over the last few years. The students in his classes didn't seem interested--or even willing to--in solving programming problems. They just expected to be able to come in, download this framework and that framework, find a solution to a tricky problem on Stackoverflow (or wherever), and maybe write some really rudimentary code to just glue the bits together. Many of the "old " assignments--implement three different sorting algorithms and compare their properties just seemed totally archaic to his students--why would you ever want to actually write a sorting algorithm? After all, somebody out there has already done it better, and that's nothing you would ever need to do as real programmer.

    The professor was somewhat alarmed by this, but not totally in disaster mode, because it was probably true that MOST of his students would never need to write a sorting algorithm. Most of his students would never need to implement an algorithm that draws a circle, etc. But still--this was computer science--not community college.

    The writer here seems to fall squarely into this class of learner. Honestly, the first thing this article made me think of was that awful Barbie learns programming book where Barbie gets some other people to write the code for a program she designed, thereby becoming a real computer programmer. Maybe the book wasn't that far off the mark after all...

  4. It's true by Anonymous Coward · · Score: 5, Insightful

    I've been writing software for more than 20 years at this point. While yes, if you're doing anything involving creating algorithms or computer graphics/gaming you will likely need higher level math, the average programmer (making websites, making desktop business apps) does not need to learn anything more than basic mathematics.

    It irritates me when I hear elitist coders or hiring managers harp on about the need to be a PhD Mathematician on the side while also being an expert in coding. Just as you don't need Picasso painting your bathroom, you don't need a rocket scientist to code your shitty business app.

  5. If you need math, learn it. If not... by Tenebrousedge · · Score: 5, Insightful

    And there's a shit ton of CRUD apps that people want written that don't need anything of the sort. There's a world between high-performance computing and the most superficial use of a computer. Excel macros spring to mind, as an example. We can also draw a line between simple computation and more complex mathematics -- simple calculations are absolutely the computer's job.

    To answer your "So what?": useful shit can be done even without having learned everything that you did. What useful purpose does elitism serve?

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
  6. math talent, not math knowledge. SQL is algebra by raymorris · · Score: 5, Insightful

    The author doesn't seem to understand what math IS, how and why programming IS math. The author writes that you don't do a lot of algebra and such in typical web pages. Does your PHP script use SQL? That's algebra, relational algebra. It's not that you need to remember mathematical formulas; it's that have a half decent design for your software, you need mathematical THINKING. If your high school algebra homework was wrong, your sql is probably wrong too.

    The author likes to copy and paste a lot. Yeah, I've seen a lot of that kind of code, mostly while rewriting it to work properly.
    Programmers with a clue #include, they don't copy-paste.

    It's not that you need to write the tangent function from scratch, and purely from memory. It's realizing that tangent() SHOULD be a function, which you should call from libmath. The author managed to copy-paste code that computes a tangent into the middle of the onclick() handler. That's Doing It Wrong.

  7. Hey, I do that! by Anonymous Coward · · Score: 5, Interesting

    Math is a tool like a hammer or a screw driver. A carpenter typically does not love their tools, but they sure know which one to use with a nail or a screw.

    Math is being taught wrong. Most math teachers love their subject and do not understand why the students do not also love the subject, when they provide no practical use. Practical uses are many, such as amortization, 3D physics accurate simulation, and robotics.

    For example, I teach typical HIGH SCHOOL students bubble sort, then merge sort using recursion in GCC. We then create a list of 1,000,000 fake names using "rig", and temporarily replace the /usr/bin/sort program with our own, discussing the big O.

    The students typically enjoy these assignments as they begin to understand the GNU tools, and have a practical use for both math and logic. The problem solving process and application of new concepts are valuable whether or not students will ever write a sort program again in their lives.