Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Thursday September 03 2015, @09:23AM   Printer-friendly
from the ignorance-is-bliss dept.

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


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 5, Insightful) by Justin Case on Thursday September 03 2015, @10:43AM

    by Justin Case (4239) on Thursday September 03 2015, @10:43AM (#231658) Journal

    I would agree that a programmer does not even need to know how to multiply; the programmer merely needs to understand the effect of multiplication and therefore when to use it.

    However...

    > I spent a lot of time learning to Google like a pro.
    > you’ll need to be skilled at copying and pasting

    I do my best to avoid hiring these people, and if they sneak in somehow, I look for opportunities to move them along.

    How do they think those answers got into Google in the first place? Where did their copy-pasta come from?

    I'll give you a clue: a programmer figured it out. If you can't figure things out, step back from the keyboard. Or in your case, probably mouse. Loser.

    Starting Score:    1  point
    Moderation   +3  
       Insightful=3, Total=3
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   5  
  • (Score: 1, Insightful) by Anonymous Coward on Thursday September 03 2015, @11:42AM

    by Anonymous Coward on Thursday September 03 2015, @11:42AM (#231674)

    I transitioned myself from the world of RTFM to the "I have a prob, I search online for the solution".

    But that makes sense only if you have a sufficient background to discriminate among solutions. Else your cobbled up project that does not require any math is likely to crumble when it enters the real world, with concurrent access to data, scaling, upgrading, performance issues.

  • (Score: 4, Insightful) by BasilBrush on Thursday September 03 2015, @11:59AM

    by BasilBrush (3994) on Thursday September 03 2015, @11:59AM (#231684)

    It depends what you are doing. If you're programming something low level, like embedded software direct to the metal, or a creating a fundamental library, then you can do it all out of your head, with perhaps the occasional reference of a manual, a spec or a datasheet. But if you are creating a complete application, then you are dealing with more libraries than you can know - libraries for GUI, graphics, networking, data, io, analytics, video, analytics, logging, security, compression, etc. etc. All of which will have defects, depending on version, and depending on which OS version they are running on.

    When facing something which looks like a defect in someone else's code, trying to het a library to do something unusual, or simply trying to get a library up and running with a deadline looming, the wise programmer spends 10 minutes googling, and often finding a solution on stack-overflow, rather than spending half a day trying to work the problem out all by himself.

    Give me the programmer than knows when to consult stackoverflow any day, rather than the one who's too proud to seek out other people's experience.

    --
    Hurrah! Quoting works now!
    • (Score: 3, Insightful) by Anonymous Coward on Thursday September 03 2015, @12:02PM

      by Anonymous Coward on Thursday September 03 2015, @12:02PM (#231685)

      Seeking out other people's experience is fine, but not mindlessly copying and pasting other people's code.

      • (Score: 2) by urza9814 on Friday September 04 2015, @01:22PM

        by urza9814 (3954) on Friday September 04 2015, @01:22PM (#232232) Journal

        I do this a lot actually. But it's never directly copying and pasting someone else's code. If you do that the damn thing won't even compile most likely. You're gonna get five lines from them that need to fit into your thousand line file, so what are the odds that they're using the exact same variable names, the exact behavior you need, the exact error checking, etc? Basically zero. Of course you have to understand how it works, or you can't copy/paste at all!

        On the other hand, Google is replacing reference docs. So I'll go to Google to see if the language has a built-in function to do what I need before I go write my own. And maybe I find that it doesn't -- but here's a function someone else wrote to do what I need. Assuming it's halfway decent code, what kind of idiot *wouldn't* take advantage of that? I wouldn't be a programmer if I wasn't lazy -- the whole point is making the computer work so I don't have to :)

        Also, there's really zero difference between constantly Googling code and using any halfway modern IDE. They all do autocompletion and tooltip function definitions and all that. Personally I don't particularly like IDEs, so I use Notepad and a ton of DuckDuckGo/Google/Yahoo -- I find that more efficient than fighting an editor that thinks it knows what I want better than I do...but of course, YMMV.

    • (Score: 2) by frojack on Thursday September 03 2015, @03:37PM

      by frojack (1554) Subscriber Badge on Thursday September 03 2015, @03:37PM (#231800) Journal

      Give me the programmer than knows when to consult stackoverflow any day, rather than the one who's too proud to seek out other people's experience.

      True, Stack is great for the odd little things you don't quite find documented clearly, or are non-typical things. Seldom useful for core problems.

      (My last use involved converting an established blocking socket to non-blocking for the duration of a connect, and then converting it back again once the connect completes.)

      Still, hardly your average use case, and nothing to do with mathematics.

      --
      No, you are mistaken. I've always had this sig.
  • (Score: 0) by Anonymous Coward on Thursday September 03 2015, @01:14PM

    by Anonymous Coward on Thursday September 03 2015, @01:14PM (#231714)

    I would agree that a programmer does not even need to know how to multiply; the programmer merely needs to understand the effect of multiplication and therefore when to use it.

    The mathematician also doesn't need to know how to multiply; he needs to know the properties of multiplication. And so does the programmer; even more so, as the programmer must know when the properties of multiplication on a computer differ from the properties of mathematical multiplication.

  • (Score: 1, Informative) by Anonymous Coward on Thursday September 03 2015, @01:46PM

    by Anonymous Coward on Thursday September 03 2015, @01:46PM (#231725)

    Maybe but take something like this https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms [wikipedia.org]

    I just googled that up. I knew it existed because I have been using it for a different thing I am working on. But there are at least 4 different sorts on there that were invented after I got my CS degree. Which of those is the best one? Without a basics of what big O means you might just pick the one with nlogn across the board. But that may not fit your data model, or how data comes into your system. Maybe just a simple bubble sort may suit you better just because of all the baggage that goes along with the other sorts. The assumption is that comparison is the costly operation. What if moving data is?

    But do I memorize all the different sorts? Hell no. I have a basic idea of what they are and google up the details.

    To put it in every day usage I used to memorize everyone's phone number. Now I do not bother. I make my phone do it. If my phone breaks? I have it written down on a notepad. If I can not get either well guess I am not making a call. Which I can not do because well my phone is broken...

  • (Score: 3, Insightful) by Hyperturtle on Thursday September 03 2015, @11:56PM

    by Hyperturtle (2824) on Thursday September 03 2015, @11:56PM (#232038)

    I would like to say the same thing about networking and security.

    The people that can copy and paste their way into a job will find themselves in jobs suited only for those that can copy and paste. Nothing wrong with pumping gas, but I don't call those folks mechanics. I won't call someone a network engineer or a security engineer because they could be relied upon to never remember how to do anything except to find someone else who has. I *can* rely on the person pumping my gas at a full service station to at least do the job he is paid to do.

    I cannot properly articulate how there are people out there, VP of Engineering at Captain Stupid Consultants for example, who sees NO problem in promising they can do a job, and then going to the client and phoning up Cisco for help, because they don't yet have an internet connection to search from to get the rest of the configuration. And it's OK because no client wants you to open the book on how to do it in front of them. Uh hello? Shouldn't you know how to do this in front of the customer without needing the book?

    I have received statements of work, and have been asked to work on projects, where the documentation I was provided about the client network -- was listed as having been written by some guy at another company, because the consulting firm shamelessly lifted the document and used it as their own, and couldn't even be bothered to check the properties tab or look for watermarks. I've even contacted these folks, it's happened enough. Half of the time the documents were written at a company that both the author and one of the consultants had both worked at in the past. They think its funny. The other half of the time it was from a document posted online, and the guy had no idea people had re-purposed the document as a template at a for-profit organization. They usually do not find it to be funny--far from it.

    As a consultant myself, I implore you to never accept only a PDF of documentation, and never accept only a printed copy. Network/Microsoft partners seem to like to give only three-ring binders of documentation, or PDFs. My experiences have been that it is the rare Microsoft partner that will give you a word document of your official documentation, no matter what the content.

    Demand an editable document because you are paying for the documentation, and you deserve to be able to mark it up however you please and use it going forward. Then check the properties--do the needful and make sure that you are getting what you paid for written by the people you paid or will pay. You might find that like in the example above, you've found a resource that is very skilled in claiming to know a lot of things that they can reliably lift from somewhere else. If you are paying them to document your network, make sure they just didn't print a bunch of PC icons with IP addresses and then paste it into some template they found. Places charge a lot of money to give you stuff that you, who may not understand networks, think looks good but is not helpful nor accurate. And how are you to know unless you already have a good understanding of your network?

    I once did packet captures on a network connection where a developer was blaming the network for his issues. (Everyone blames the network. I have no one to blame...) Ok, so what do we see. Gee EXAMPLE@EXAMPLE.COM is repeatedly being emailed and connection attempts to 10.0.0.x is being frequently made. I wonder if someone copied code they found and don't understand why it doesn't work because they found code they assume works?

    Oh people sure argue with you about how they wrote it themselves until you send them the link to the site they lifted it from because you searched for what you saw in the capture and were able to find the website with example code. I can search google, too, you know.

    The unfortunate thing is that one has to constantly be on guard for this behavior -- the charlatans I have seen most are either the copy and paste people, the paper cert who thought they could learn after they got on the job (or had no idea it was really that hard despite years of claimed experience) or a confidence man, the guy who confidently claims to be able to do anything yet seems to do nothing, and at best turns in crummy work that a friend of his did or a small outsourcing outfit in another country managed to bang out the night before after results were demanded from him.

    Note that I haven't mentioned any women. It's not that I haven't worked with any -- I just haven't encountered any yet in IT that have actively tried to mislead me or rip me or the customer off.