Slashdot Mirror


Knuth Previews New Math Section For 'The Art of Computer Programming' (stanford.edu)

In 1962, 24-year-old Donald Knuth began writing The Art of Computer Programming -- and 55 years later, he's still working on it. An anonymous reader quotes Knuth's web site at Stanford: Volume 4B will begin with a special section called 'Mathematical Preliminaries Redux', which extends the 'Mathematical Preliminaries' of Section 1.2 in Volume 1 to things that I didn't know about in the 1960s. Most of this new material deals with probabilities and expectations of random events; there's also an introduction to the theory of martingales.

You can have a sneak preview by looking at the current draft of pre-fascicle 5a (52 pages), last updated 18 January 2017. As usual, rewards will be given to whoever is first to find and report errors or to make valuable suggestions. I'm particularly interested in receiving feedback about the exercises (of which there are 125) and their answers (of which there are 125).

Over the years Knuth gave out over $20,000 in rewards, though most people didn't cash his highly-coveted "hexadecimal checks", and in 2008 Knuth switched to honorary "hexadecimal certificates". In 2014 Knuth complained about the "dumbing down" of computer science history, and his standards remain high. In his most-recent update, 79-year-old Knuth reminds readers that "There's stuff in here that isn't in Wikipedia yet!"

176 comments

  1. Make Programming Great Again by Anonymous Coward · · Score: 5, Funny

    Thanks, Donald!

    1. Re:Make Programming Great Again by Anonymous Coward · · Score: 0

      Knuth Knuth Knuth Knuth Knuth

  2. PHP? by Anonymous Coward · · Score: 5, Funny

    I was with you until "I taught myself PHP."

    1. Re:PHP? by Anonymous Coward · · Score: 1

      The irony of anti-PHP elitism in response to GP post seem to have been lost on the parent AC. :P

    2. Re:PHP? by Anonymous Coward · · Score: 1

      The way I see it, the irony is already there in the first post.

      It starts with a claim that something is not needed and then follows immediately with an example of something horrible happening as a consequence ;)

      But it's true that you can build things with bad tools and that it creates opportunities. Just that there's a limit on how far you can go with those bad tools. In software case the depressing thing is that PHP is just a tip of the iceberg.

    3. Re:PHP? by Anonymous Coward · · Score: 1

      Like they say, "make something idiot proof and the world will find an even bigger idiot." Hell, javascript and node have lowered the bar so far that teaching yourself PHP almost qualifies for mensa status.

  3. Re:IMHO by Anonymous Coward · · Score: 0

    Cool story, coder bro. Now train the monkey who will replace you.

  4. Math is HARD! teeheehee by Anonymous Coward · · Score: 1

      I'm just a girl

    1. Re:Math is HARD! teeheehee by Anonymous Coward · · Score: 0

      Grab her pussy!

    2. Re: Math is HARD! teeheehee by Anonymous Coward · · Score: 1

      Don't you know it by now, pussies have evolved to be grabbed. Unless of course you are a faggy snowflake - grab an asshole.

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

    Similarly, one could argue that a many medical-related treatments are competently performed by people who do not have the benefit of a medical school education. I haven't heard that Knuth considers mastery of, or even familiarity with, his books to be a requirement for writing code.

  6. The "math" of AOCP very important in real world by perpenso · · Score: 5, Informative

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software. I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever. It isn't dumbing down as he claims. It's about creating opportunities. If you can code and you can do it well without mathematics, so be it. The math side is for those that want to do research. I work in the real world ....

    In the "Art of Computer Programming" context mathematics includes various things related to the performance of algorithms (code). Such things are useful, even essential, well beyond the domain of research, in many areas of the real world of software development (coding).

    1. Re:The "math" of AOCP very important in real world by JoeMerchant · · Score: 4, Funny

      Such things are useful, even essential, well beyond the domain of research, in many areas of the real world of software development (coding).

      Shhhhhh! We need monkeys to "code" the web pages, as long as they don't know the math code monkeys get grapes, they'll be happy with their cucumber slices.

    2. Re:The "math" of AOCP very important in real world by __aaclcg7560 · · Score: 1

      Shhhhhh! We need monkeys to "code" the web pages, as long as they don't know the math code monkeys get grapes, they'll be happy with their cucumber slices.

      Code Monkey Video

      https://www.youtube.com/watch?v=qYodWEKCuGg

    3. Re:The "math" of AOCP very important in real world by haruchai · · Score: 2

      Shhhhhh! We need monkeys to "code" the web pages, as long as they don't know the math code monkeys get grapes, they'll be happy with their cucumber slices.

      Original video for those unfamiliar with the reference - https://www.youtube.com/watch?...

      --
      Pain is merely failure leaving the body
    4. Re:The "math" of AOCP very important in real world by Anonymous Coward · · Score: 0

      Such things are useful, even essential, well beyond the domain of research, in many areas of the real world of software development (coding).

      Shhhhhh! We need monkeys to "code" the web pages, as long as they don't know the math code monkeys get grapes, they'll be happy with their cucumber slices.

      We have monkeys "coding" web pages. On second thought, building web pages and "coding" in assembly or even C have nothing in common.

      You forgot to mention politics, religion, NASCAR, race, SJW. Did you think we wouldn't notice.

      Facts and the truth have no place on /.

      {an old hippie}

    5. Re:The "math" of AOCP very important in real world by JoeMerchant · · Score: 1

      On second thought, building web pages and "coding" in assembly or even C have nothing in common.

      Oh, so true... nonetheless, in the 1997-1999 timeframe, guess who was the only guy in the company who could build a web page, or fix anybody's broken e-mail? The same guy who had been coding in C/C++ for the last 10 years, of course.

      People who don't do IT, or web dev, or programming themselves view it all as one big mystery basket. Consequently, many people who "get into" one of the fields also think they're just like programmers.

    6. Re:The "math" of AOCP very important in real world by HiThere · · Score: 2

      Some of them *are* just like programmers. Others... well, be kind.

      That said, all of the higher level languages tend to obscure computational complexity to the point where I can frequently only tell exactly which approach is better by measuring after writing the code in more than one way. Too much magic dust between the level at which I'm writing at and the level it compiles to. But I still think that to be a decent programmer you need to understand things like index registers, storage allocation, and probably accumulators, even though no current chip has them (at the assembler level...probably at the microcode level).

      OTOH, if I'm working at the assembler level, then synchronizing thread data visibility is beyond me. (Well, so is most stuff. I haven't done assembler language programming on any modern chip. The last one was the Z80.)

      But without the assembler background (MIX would count) you can't build a good mental model of C, and without a good mental model of a basic compiler language, you can't really understand a dynamically allocated vector (or array, depending on your language).

      I'm not sure that starting at the top, Python/PHP/Ruby/Scratch/Logo/etc., and building your understanding down will ever work. I haven't seen any good examples. (OTOH, I've certainly seen examples of starting at assembler and then not being able to build up, so perhaps.)

      It used to be said that a good programmer tried to learn a new language every year. But that was back when languages were both very different and small. Still, I'd recommend that any programmer work his way through some sort of assembler, C, Scheme, Erlang, and Java. C++ is too big to include. Ada and Eiffel would be good additions, but don't add anything really important. Smalltalk seems to be dieing out, but you should pick up the Scratch dialect, which shouldn't take as much as a week. If you want you could substitute Logo or Lisp for Scheme. The idea here isn't to really master the languages. Just to learn them enough to create something fairly simple, a bit beyond "Hello, World", but not necessarily as fancy as tic-tac-toe.

      And anyone who does that counts as a "real programmer", even if they prefer to use Javascript or php...or even bash. Some others will also count as "real programmer", because being a "real programmer" is a matter in interest rather than skill or experience. An inclusive test isn't an exclusive test.

      FWIW, I once taught someone to code in Fortran, and he went on to become a professional programmer, but he wasn't a "real programmer", because his interests were in business and astrology, not programming. He *was* a skilled programmer. He was quite intelligent. But that wasn't where his interests were, so he wasn't a "real programmer".

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    7. Re:The "math" of AOCP very important in real world by MikeBabcock · · Score: 1

      I think learning C is still incredibly valuable as a first-3-languages sense so that people appreciate what Python/PERL do for them and yet understand how the complexities of the hardware can affect things.

      --
      - Michael T. Babcock (Yes, I blog)
  7. Re:Knuth by Anonymous Coward · · Score: 0

    Donald, Donald, where are your trousers??

  8. PHP? That's software engineering nowdays? by Snotnose · · Score: 4, Informative

    I've never looked at PHP. I have done javascript/ecmascript. A pathetic pile of shit called a language. I've heard PHP is worse than ecmascript, but as I've never done PHP I don't really know.

    So, you taught yourself PHP and can call whatsisname irrelevant?

    I can only hope I can somehow track your screen name to the name on your resume and get it shitcanned before it hits my desk.

    bought Knuth's 3 books in the 80s

    invaluable

    retired, haven't bought any of his newer books

  9. Re:Knuth by Anonymous Coward · · Score: 0

    Fire all the brown people, and give computer jobs to White Women again. White Women like Admiral Hopper, RIP.

  10. Re:IMHO by Anonymous Coward · · Score: 0

    And it is true. There are physicians assistants and nurses that dispense perfectly fine medical care.

  11. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    At least PHP doesn't use the same operator for addition and concatenation like JavaScript. PHP is better. JavaScript is worse.

  12. Re: IMHO by Anonymous Coward · · Score: 0

    Guess that depends on what kind of code you need to be writing...

  13. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    When I want a tiny webserver I reach for "php -S" because node.js is bloated shite and smells of hipsters.

    captcha: circus
    where the hipsters belong

  14. Re:IMHO by Anonymous Coward · · Score: 0

    Why only do things because we must do them each day? I love studying the depth of my field even if I don't write proofs as part of my day to day routine. It used to be intellectual curiosity wasn't illegal.

  15. Re:IMHO by elrous0 · · Score: 1

    It is not necessary to have a background in mathematics to write software.

    No, but high level math is certainly useful for creating the binary code, on which the assembly code is based, on which the compiler is based, on which the language is based, on which you write software.

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
  16. Re: IMHO by Anonymous Coward · · Score: 0

    Yeah good luck coding games without math. You need linear algebra at least and trig if you plan to use circles anywhere at all. And that's just for the simple stuff.

  17. Martingale by Anonymous Coward · · Score: 0

    Naturally, I looked up martingale on Wikipedia. Yes, it's there, and I learned something on a dull Saturday night.

    1. Re:Martingale by Anonymous Coward · · Score: 0

      dull Saturday night.

      Is your lady friend still out protesting President Pussy Grabber?

    2. Re: Martingale by Anonymous Coward · · Score: 0

      Those "ladies" aren't ladies. They are stupid bitches with pussies covered in cobwebs.

    3. Re: Martingale by Anonymous Coward · · Score: 0

      Skunk pussy covered in cobwebs.

  18. Re:IMHO by Anonymous Coward · · Score: 0

    People who don't know math think they can write programs without knowing math. And for some limited applications, you can and it works out OK.

    The problem is that the people who don't know math don't know when they are facing a problem that could benefit from some mathematical insight. They go on coding blindly, come up with something that sort-of seems to work then tack on reams of conditionals to handle the "special cases" and generally makes a mess of things. And I have to fix it :/

    You get a small idea of the scope of the problem by looking at just about any of the open-source drawing programs. (I'm not saying closed-source work better; just that I have no experience with it to know.) No matter how you set the grid, no matter how careful one might be, invariably roundoff errors becomes large enough that boxes (particularly non-square) no longer close quite right.

    Another hint of the problem shows up in lines of code that look like
    "int i = x + 0.5; // round"
    In C/C++, this only rounds if x >= 0. It fails to round for x < 0.

    I could go on. One doesn't have to be world-class math major, but some courses under one's belt is necessary, if for no other reason than to know when they need to seek more expert opinions.

  19. The "real world"? Seriously? In your cube? by dbIII · · Score: 2

    FFS - those who want to model the real world need to be able to pick up a bit of mathematics somewhere.
    That's why in my workplace we have actual engineers churning out shitty code instead of CS graduates who could produce wonderful and efficient code if they had some clue where to start. If you can't even answer the question "what's a fourier transform?" then you are doomed to attempt to solve many problems in ways that will take orders of magnitude more time than really shitty code from someone who can.

    You don't have to start with it, but if you don't pick up a bit of mathematics along the way in something that is a very mathematical field you will be very limited in what you can do.

    1. Re: The "real world"? Seriously? In your cube? by loufoque · · Score: 1

      People with a background in physics typically make the worst coders.
      Writing software is its own engineering discipline.

    2. Re: The "real world"? Seriously? In your cube? by dbIII · · Score: 1

      Writing software is its own engineering discipline.

      True, but where it is it has a solid base of mathematics (and other things) so still fits what I wrote above about "real engineers", at least according to IEEE who are more worthy to listen to than I.
      Someone teaching themselves PHP and having a few hundred hours of coding experience is closer to individual basket weaving than taking part in an engineering project. Sure, they can do some nice web pages, but eventually something they could handle better if they crack open a few books is going to turn up.

  20. Re:IMHO by PolygamousRanchKid+ · · Score: 0

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software. I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever. It isn't dumbing down as he claims. It's about creating opportunities. If you can code and you can do it well without mathematics, so be it. The math side is for those that want to do research. I work in the real world ....

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software.

    God is an elitist. It is not necessary to have a background in astrophysics to create the Heavens and the Earth.

    I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever.

    God taught Himself PHP and He certainly doesn't have any kind of mathematics background whatsoever.

    So if God programmed the Heavens and the Earth with PHP, it would explain why the world is so fucked up, and we have no chance of fixing it.

    You just think you taught yourself PHP . . . but lacking any kind of mathematics background, you don't have the skills necessary to judge that.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  21. Re:IMHO by Anonymous Coward · · Score: 1

    Writing anything that is intended to scale, anything where performance or security is important, requires a decent understanding of maths.

    Yes, you can often throw together something that will "work" without having any knowledge of algorithmics or of how data is actually stored in your language of choice, but as soon as you hit production you will quickly reach the point where "throw more hardware/compute time at my terrible code" becomes prohibitively expensive.

    I'm not saying you need a degree on Comp Sci to be a decent programmer - you don't - but calling yourself a programmer without an appreciation for the underlying maths is like calling yourself a mechanic without understanding how an engine works. Yes, you can change the tyres and top up the AC, but god help you (and your customers) when you have to do something important.

  22. Re:IMHO by woboyle · · Score: 4, Insightful

    You are, IMHO, and idiot. I have been studying Knuth's work for almost 4 decades now, and am still learning from it. In case you are interested (probably not) it is has a chip in it, I wrote the software that built that chip! Building from his work has given me a US Patent on adaptive systems, numerous technical publications, and such. What can you claim?

    --
    Sometimes, real fast is almost as good as real-time.
  23. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    At least PHP doesn't use the same operator for addition and concatenation like JavaScript.

    Um, Java and Python also support string concatenation using the + operator. So that's maybe not the most awesome argument.

  24. Re:IMHO by hcs_$reboot · · Score: 1

    That's supposed to be funny, I guess, however it's what the PHP authors actually claim!

    --
    Slashdot, fix the reply notifications... You won't get away with it...
  25. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    Ambiguous operators + dick typing = recipe for confusion.

    Cast everything ((parens)) everwhere.

  26. Re: IMHO by Anonymous Coward · · Score: 0

    You don't need math to code in HTML, even indo-chimps at Monkeyshit Corp can do that. Those chimps can also code stupid boxes and circles, which is what Windows is made of.

  27. Re: Knuth by Anonymous Coward · · Score: 0

    Hiding behind his tie.

  28. Re: IMHO by Anonymous Coward · · Score: 0

    Because rounded corners is too hard and it requires math.

  29. Re:IMHO by __aaclcg7560 · · Score: 1

    Everyone told me I should go into computers as a teenager, but I couldn't see myself being a programmer as coding was mumbo jumbo. I did take electronics and mathematics in college. After I started my technical career in software testing, I went back to college a decade after I graduated to take computer programming. Because I took mathematics (algebra in general, order of operations in particular), everything fell into place for me to learn programming with straight A's. Even though I got an A.S. in computer programming, I never became a programmer. I went into IT support to help users solve difficult problems made difficult by professional programmers.

  30. Re: IMHO by Anonymous Coward · · Score: 0

    LOL, yeah. While you two duke it out, oblivious indo-chimps drum out tons of stupid HTML, and get paid hundreds of thousands, meanwhile American families replaced by these monkeys starve.

    Solve this math problem, will you.

  31. Re:Trump by Anonymous Coward · · Score: 0

    Only the shemales.

  32. Re:IMHO by Yaztromo · · Score: 1

    What can you claim?

    First post?

    Yaz

  33. Re:IMHO by Anonymous Coward · · Score: 0

    Study computers, they said. You'll make lots of money, they said. They never said anything about getting replaced by indo-chimps. They never said anything about starving.

  34. Re:IMHO by Anonymous Coward · · Score: 0

    Well there is nothing wrong in being a code monkey. But the people that design software libraries, operating systems and whe whole enchilda that code monkeys use do need to know mathematics. Those graphics libraries you think they write themselves out of thin air ? Those hundreds/thousands of general purpose libraries in java/insert your language of month here appear by fiat out of a php pgrammer's ass ? I get it, you're proud to be a code monkey, just as some slave was proud to push those rock blocks that form the pyramids in Egypt. But just as slave is no architect, a code monkey is no computer scientist.

  35. Re:IMHO by __aaclcg7560 · · Score: 1

    Study computers, they said. You'll make lots of money, they said.

    When I went back to school to learn computer programming after the dot com bust, people told me I was crazy. Study health care, they told me. You're make lots of money, they told me. But I read a study on long-term trends for the IT industry that there will be a severe shortage of skilled IT workers with 1M+ job openings after the baby boomers all retired and foreign workers will stay home in 2030. (A recent study now predict 1.5M+ job openings.) I went into IT support. My friends who went into health care hate their jobs of wiping other people's asses even though they make more money than me. I'm enjoying my career in IT support, and, ironically, my best paying contracts are hospitals.

    They never said anything about getting replaced by indo-chimps.

    I do InfoSec for government IT. No foreign national is going to replace my job. If they do, I'll climb the ladder higher and do something else.

    They never said anything about starving.

    I was out of work for two years (2009-10) because recruiters saw help desk support on my resume, assumed that I wanted to continue doing help desk support, and told me that no help desk support jobs were available. Never mind that wasn't the job I applied for. I ate rice and beans during those two years, the six months I was underemployed (working 20 hours per month) and filed for chapter seven bankruptcy in 2011, and the two years (2012-13) I'ved worked multiple jobs seven days a week until I was financially back on my feet.

  36. Re:IMHO by Anonymous Coward · · Score: 0

    You are easy to replace. A commodity. Learning a tool isn't hard. If you've found it easy to learn something then consider that it also easy for many more people to do the same.

    Are you truly skilled with that tool? Can you stand out amongst the others? They're the question you should ask of yourself. Could you be better at what you do: Yes.

    What are these books? Comprehensive knowledge. How to use these tools properly. Some of these volumes cover things you've already picked up during your learning, but there are details there which CAN benefit the reader. Be it providing better technique, or to provide an explanation why decisions are made in such ways. Donald is a grumpy old pragmatist sure. But don't turn an opportunity to read these because you think you know all there is.

  37. Re: IMHO by Anonymous Coward · · Score: 0

    You are correct, you don't need mathematics to write software, only interesting software. Don Knuth is an accomplished scientist who has expanded human knowledge and who has worked tirelessly to share that knowledge with others. You on the other hand are an angry brogrammer who will be doing the programming equivalent of flipping burgers until you get replaced by a program written by someone who knows math.

  38. Re: IMHO by Anonymous Coward · · Score: 0

    Love the Donald ...Knuth.
    Long division, needed for modulus, needed for crypto. Would have been extra difficult without taocp.

  39. Re:IMHO by Anonymous Coward · · Score: 0

    And it is true. There are physicians assistants and nurses that dispense perfectly fine medical care.

    There are also nurse practitioners who, in some places, work independently of doctors and can be permitted to dispense medications and perform quite advanced care although it doesn't extend to independent surgery anywhere as far as I know.

  40. Your attitude makes me sad. by TiggertheMad · · Score: 4, Insightful

    "There are more things in heaven and earth, Horatio, Than are dreamt of in your philosophy. your philosophy"

    Yes, you are correct, you don't need much math for some types of programming. However, it saddens me that you would attack a man for wanting to expand and master the study of computer science. He has literally devoted decades of his life to writing books to help programmers such as yourself get better at their craft. If you don't want to learn more about your trade, that is fine too. But don't get upset if you get passed over for a job in favor of some other guy who cracked open Knuth and worked all the exercises.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  41. Re:IMHO by fibonacci8 · · Score: 2

    I use LOGO for all of that. It's turtles all the way down.

    --
    Inheritance is the sincerest form of nepotism.
  42. Re: IMHO by Anonymous Coward · · Score: 0

    Einstein would fail to know that if he didn't read the language errata. That's knowledge of the tool (C), not lack of math skills.

  43. Re: IMHO by Anonymous Coward · · Score: 0

    Everything can either be described by maths or bullshit.

  44. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    I've never needed to add two strings, or concatenate two numbers.

  45. Re: IMHO by Anonymous Coward · · Score: 0

    Maths can't even describe an equation of state for water, because water has weird intransitive and inconsistent behavior (triple point, supercooling) that maths forbids in its formal axioms. Such a common substance as water is not analyzable in closed form. Thus maths fails to model nature because nature is inconsistent.

  46. Re:Trump by Anonymous Coward · · Score: 0

    That's not a nice thing to say about Melania

  47. Re:IMHO by Anonymous Coward · · Score: 0

    So you're saying put a truck engine in a go-cart just so it will scale?

  48. Re:PHP? That's software engineering nowdays? by petermgreen · · Score: 1

    I think the real problem is partial substitutability.

    In both php and javascript if you use a number where a string was expected or a string where a number was expected the program will blunder on. If you are lucky it will produce the right results, if you are unlucky it will produce wrong answers. It is relatively unlikely to produce an error message and if it does that error message is likely to be a long way from where the mistake was made.

    php's separation of the addition and concatenation operators increases the chance that a program will produce the right results despite accidental using the wrong type but it's still a minefield.

    Java is statically typed. A caller can only pass your method the types it was expecting.

    Python is dynamically typed but forbids use of the "+" operator on mixed strings and integers and will never compare a string an an integer as equal. So using an integer where a string was expected or vice-versa is likely to fail fast.

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  49. Re: IMHO by Anonymous Coward · · Score: 0

    Basic income! Who wants to code stupid html json monstrosities anyway? We produce persistent food surpluses, we should guarantee access to surplus via a basic income.

  50. Re:IMHO by hcs_$reboot · · Score: 1

    Well, you need to know at least good arithmetic rules, and have a scientific thinking. Besides, no need to be expert in maths.

    --
    Slashdot, fix the reply notifications... You won't get away with it...
  51. Re: IMHO by Anonymous Coward · · Score: 0

    Pretty confident for a guy who couldn't get a job for two years. If you lost your current job, do you now have skills that won't leave you unemployed another two years?

  52. Re:IMHO by Anonymous Coward · · Score: 0

    We need more food stamps. Or a basic income would be better. We have excess food production capacity.

  53. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    You're full of shit: Before his resume hits your desk, yet you said you're retired, bullshitter? Another lying wannabe bigshot with a fake name online talker on slashdot is you. Why am I not surprised?

  54. Re: IMHO by Anonymous Coward · · Score: 1

    Of course mathematical equations can describe water states, just not at a level of abstraction you're happy with.

  55. Re: IMHO by Anonymous Coward · · Score: 0

    Math can't handle contradictions but contradictions are everywhere in nature and real-world data. You need a superset of math, such as natural language, to model nature.

  56. Re:IMHO by Anonymous Coward · · Score: 1

    Anyone, Is there a site that tracks these specific gotchas? I've been compiling a small list of these for the past few months and can't seem to find a single source that focuses on these things.

  57. Self-taught is great. The language is the glossary by raymorris · · Score: 5, Interesting

    > I taught myself PHP

    That's awesome. I respect anyone who has the desire to learn, the puts in the work, and has the discipline to see it through.

    PHP is of course a language, a set of vocabulary. At the back of any textbook, you'll find a glossary, the language or vocabulary used in the book. You've already learned the language, the glossary, of PHP programming. If you look, you may find there's a lot of cool stuff in the other parts of the book, systems architecture stuff, software engineering, analysis of algorithms, etc.

    You need to learn a programming language or two before you learn analysis of algorithms or software engineering, because the languages are the vocabulary words of the field.

    To give a concrete example, when I started my current job, the company had a software system that worked - mostly. A team programmers had worked several years on it, and all knew the language they were working in. Customers just wanted it to be faster. It was definitely too slow. Although it was my first month on the job, when I heard the complaints of slowness I said in a meeting "I'd like to take a look at that; I can probably make it 20%-30% faster easily enough for now, then do more after I understand how it all works." The team was rather skeptical, in fact they chuckled out loud at my claim, saying "I rather doubt you can do that". "How long do you think that'll take?", they asked. "Give me a week", I said, though I hadn't yet seen the code. They laughed again, hundreds of thousands of lines of code and this new guy was going to make it 20%-40% faster in a WEEK? Doubtful, they said. To put me in my place, they said "sure, go ahead and try that [wiseguy]."

    As I left the meeting I realized I had just taken a big risk. When I went home I told my wife that I had just bet my reputation at the new job on a claim I only hoped I could fulfill. If I failed, it would establish that I'm an arrogant prick. If I succeeded, I'd be known as possibly the best programmer in the building.

    Well a week later I had it running 30% faster. Why could I, in a week, make drastic improvements to code they'd been trying to speed up for months and years, code I'd never even seen before? They all knew the language almost as good as I did. But I had been taught to study much more than the language. They knew C, Perl, and Erlang; I knew algorithms and cache theory. So in a week I did in fact make major improvements to their years of work.

    Now, I'm going to go upstairs and check the progress of my benchmark. Now six months into the job, a major customer again complained about slowness, so I've been looking at that for a few days. I hope to see that my three day's work has made the system another 20% faster. I'm a tad nervous because I need to impress the new boss, I think that by learning more than just the language (glossary terms) I'll be able to do that.

  58. Re:Trump by Anonymous Coward · · Score: 0

    When he shook Obama's hand it was a pussy grab.

  59. Re:IMHO by Anonymous Coward · · Score: 0

    Translation: I have got a degree in maths and all I have got is a lousy tech job support. The equivalent of frying burgers in the IT industry.

  60. Re: IMHO by Anonymous Coward · · Score: 0

    Eat shit, AC.

  61. Re:IMHO by quantaman · · Score: 3, Insightful

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software. I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever. It isn't dumbing down as he claims. It's about creating opportunities. If you can code and you can do it well without mathematics, so be it. The math side is for those that want to do research. I work in the real world ....

    There's a lot of jobs for coders who don't know math, but there's a ceiling on how good a programmer you can become.

    Fundamentally all programming is research, you have a problem and you need to develop a robust solution on how to solve it.

    Sometimes those problems don't involve math, but sometimes they do. You might need to implement a specific calculation (and understand how to verify and debug it), if you have a large data base you need some math for your queries to return quickly. And for any non-trivial problem where you need to design your own algorithm you need to have enough of a mathematical mindset to write it efficiently.

    Think of it like race car driving. Driving a race car has a lot of special skills useless for 99% of of driving in a city. But someone who trains with race cars is probably going to be better at that 99% because they push past their limits. And the 1% where those special skills do come in handy they'll see a drastic difference.

    --
    I stole this Sig
  62. Why not extend "Concrete Mathematics"? by Anonymous Coward · · Score: 1

    I mean, "Concrete Mathematics" is a great book more accessible than his TAoCP math sections, more encompassing and with its own approach towards notational conventions. Basically I turn to it when the TAoCP math sections get stuck in too dense and obscure descriptive and ad-hoc math.

    When the math is mainly accompanying algorithms, it just cannot be stacked up in a pedagogical and accumulative manner but has to follow the ordering of the algorithms.

    And make no mistake: TAoCP is obscure and quaint and with little impact on the real world in its actual code sections (which are written in the assembly language of non-existing architectures). Burying the rather mainstream relevant math alongside and structuring it alongside as a side thought is not doing it a favor. It's far too non-trivial for that, and it applies to much more than the presented algorithms.

    "Concrete Mathematics" is a good go-to text series for generating functions, series manipulation, and the general uglinesses underlying algorithmic complexity analysis.

    1. Re: Why not extend "Concrete Mathematics"? by loufoque · · Score: 1

      I've never used tAoCP, it just does not contain enough information in an accessible format.

      Introduction to Algorithms by Cormen et. al. is a good book and covers the same space.

    2. Re: Why not extend "Concrete Mathematics"? by HiThere · · Score: 3, Insightful

      Introduction to Algorithms by Cormen et. al. is a good book and covers part of the same space.

      I do agree that he uses MIX more than is needed, but it's necessary for a part of what he covers. For other parts C would be a superior substitute. And while I keep several works on algorithms on my shelves, and rarely turn to Knuth, we something isn't covered well elsewhere, that's where I turn.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  63. Your skills will be automated too by lorinc · · Score: 2

    I really hope you will retire before 20 years from now on, because at that time being a self-taught PHP developer will be totally worthless on the job market. That's why the maths are important. The more the time grows, the more low cognition level skills loose their value.

    So now you're doing web services in PHP for a living. I'm pretty sure in a not so distant future this will be replaced by a series of drag and drops of functionality boxes in a special designed software that a guy paid on tenth of your salary can do. What will you do when that time arrives? Develop the boxes, these require a lot more maths. Develop the software that produce the software from the boxes? That requires a tremendous amount of maths.

    Yes it is not necessary to have a big background in maths to write basic software now, thanks to simpler programming models. The thing is, writing those software will be unneeded pretty soon, because the next programming models will be so simple that they will render yours obsolete. You're like the mechanic refusing to learn how electric/hybrid vehicles work. No consequence right now, but not a very safe bet on the future...

    1. Re:Your skills will be automated too by Samhain138 · · Score: 1

      https://www.youtube.com/watch?...
      This guy isn't a math guru. And that demo only took him one day to build.

      As many mentioned here lately, software engineers "automate" their own work alllllllll the time.
      So the "boxes" that "require lots of math"?
      Well, I had to build something like that and I had about a dozen (awesome) open-source solutions to choose from.
      I'm not a math god, not even a front-end developer, and yet I got super-impressive results pretty easily.

      Math is way easier to automate than creativity, and that's *exactly* what AI does.
      You have open-source projects like TensorFlow so you don't have to do loads of math yourself.
      Did you ever feel like doing all the math to create your own RNNs?
      No? Well, no one else did, either, and now that they don't have to, they're coming up with super impressive/creative/quick results.
      Only because you need to do *less* math.

      So mr. PHP guy will go on to drag and drop "boxes" around, building awesome, creative, useful things.
      Maybe, just maybe, the simplicity of that process will allow us to create way more complex software that won't necessarily make mr. PHP guy's work less interesting, challenging, rewarding, useful or profitable.

  64. Re:IMHO by thegarbz · · Score: 4, Insightful

    It is not necessary to have a background in mathematics to write software

    No it's not, but it is necessary to have a background in mathematics to write good efficient software. If you're slapping together PHP libraries then that's fantastic, but don't pretend that this same level of knowledge applies to identifying the most efficient sorting algorithm, or figuring out how to software decode a CRC message in the lowest number of CPU cycles.

    If the world was made of people with your views an octo-CPU quad xeon wouldn't be enough to boot up windows in a reasonable time.

  65. Re: IMHO by Anonymous Coward · · Score: 0

    Or people that implement a massively complex algorithm that converts a point cloud into a triangle list, which needs a lot of CPU time, huge third-part library and has all kinds of issues with corner cases, when all they needed to do was to solve an over-defined linear equation (of 3 variables at that). When you choose a solution that is much worse by all criteria (speed, complexity, reliability, ...) you do not know enough mathematics. Problem is, these people usually will never find out just how idiotic their choice of algorithm was.

  66. Computerprogramming is not an art by allo · · Score: 3, Interesting

    But craftmanship.

    1. Re:Computerprogramming is not an art by Anonymous Coward · · Score: 1

      But craftmanship.

      Knuth started his series long before uncle Bob and his friends named software craftsmanship, so I don't think it would be reasonable to give this criticism even if it was correct. However it actually isn't. Craftsmanship overlaps greatly with art. Great tables are not just well made but beautiful and artistically made. A wooden sculpture requires real craftsmanship if you want to have maximum control over the shapes.

      In this case there is very important artistry is in making the code clearly communicative and simple so that it's maintainable and clear. You don't just choose the best way because it's obvious, you also make judgements about what will fit together into a coherent and understandable whole.

      If you aren't both being a craftsman and an artist then you aren't doing the best for the job. You choose the right tools but you also choose which bits to leave in and which bits to leave out. Where to write a rare comment and where to rename a function to make it's meaning clearer. Will this simplification make my API much easier to maintain or will the extra ugliness of the users code be too much of a cost?

    2. Re:Computerprogramming is not an art by allo · · Score: 1

      Yeah, of course there is a great overlap. The trade off is, that you need an art to have beautiful code, but you need craftmanship to decide NOT to use the elegant code, but the fast one. Or not to write a clever loop with pointer calculations, but just copy&paste the line three times. You always need to decide if theres the place for the most beautiful code or for one that works and can be understood without having read many cs books.
      Wasn't Knuth the guy, who wrote "i did not test it, i only proven it to be correct"? The craftsman looks at it an when it looks like it's correct, he tests it. The artist creates a proof, but when you use his code you need to see the pitfalls yourself, when you want to extend his great ideas.

  67. Re: IMHO by Anonymous Coward · · Score: 0

    It fails to work properly on any programming language I've ever come across, it just fails in different ways in other languages and takes more or less time to show up. But, eventually, using those floats comes back to bite you on the ass if you don't know that you shouldn't be using them iteratively. What's worse is that if you're math skills aren't up to snuff, you might not even notice it until you see something looking wrong, then you'll have no idea why that happened.

  68. Re:IMHO by Anonymous Coward · · Score: 0

    A mathematician would figure out that the number of morphisms between objects is potentially way larger than the number of objects themselves and apply that knowledge in design. Huh? What does that even mean? Exactly. This is why software is shit. Code monkeys write 5000 lines of code when 250 would do.

  69. Re: IMHO by loufoque · · Score: 1

    Knowing some classical math won't really help you with floating point

  70. The dumbing down is real by gweihir · · Score: 4, Insightful

    For example, even simple things like hash tables and balanced trees are beyond what most current CS graduates can implement or do understand. Forget about things a bit more complicated like a complexity analysis, or a formally specified invariant or pre- and post-conditions. If you do not understand the basics, all higher-order constructs are meaningless because you can only memorize how they behave, but you can never understand it or verify your understanding. And your understanding will at the very least be incomplete and partially wrong.

    CS continues to fail (and in fact it is getting worse) at education engineers. Yet the human race knows that for technology you need engineers as soon as you are customizing things or doing new things. Until and unless this gets finally understood and becomes the norm, software and everything built around it will continue to suck badly.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:The dumbing down is real by Anonymous Coward · · Score: 0

      YouTube to the rescue. National labs have started picking up the slack.

    2. Re:The dumbing down is real by Anonymous Coward · · Score: 0

      "CS continues to fail (and in fact it is getting worse) at education engineers"

      Yes. It's failing at "education" [sic] engineers. It's "educating", and programmers are not engineers.

    3. Re:The dumbing down is real by gweihir · · Score: 1

      That is pretty much bullshit. You fail at understanding programming _and_ math. Seems you are in the avant-garde of the drive to be even dumber.

      Here is a hint: Transitivity is one of the defining properties of an order-relation. If you do not have it, you do not have an order-relation and some nice things that an order relation gives you do not apply. But you can, of course, have non-transitive relations, and some other nice properties may apply. There is absolutely nothing in math that enforces transitivity.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:The dumbing down is real by cpghost · · Score: 1

      I couldn't agree more. Most CS graduates can get by writing and maintaining application code, but as soon as it gets to getting their hands dirty and doing library / infrastructure work, i.e. touch real data structures, etc., good luck with that! And that's only foundational stuff... I'm not even mentioning serious aspects like IT security, where a solid mathematical understanding of crypto basics is required nowadays, along with a good base of discrete mathematics, complexity theory and so on. Your typical CS graduate will only have a very superficial understanding of those topics, unless he specialized deeply into that... and even then I wouldn't be the farm on their cognitive skills. That's really sad.

      --
      cpghost at Cordula's Web.
    5. Re:The dumbing down is real by Anonymous Coward · · Score: 0

      > For example, even simple things like hash tables and balanced trees are beyond what most current CS graduates can implement or do understand.

      That's why they have the H1B programme in the U.S., so highly skilled foreign workers can come and shoulder their tech sector.

    6. Re:The dumbing down is real by gweihir · · Score: 1

      Did I claim to be an expert in "not making typos"? It is however telling that you did not understand what I wrote and your skills seem to end at identifying the typo.

      The whole point was that most programmers do technical work on the level of engineers while not being qualified as engineers. And that makes the results so bad.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    7. Re:The dumbing down is real by HiThere · · Score: 1

      Well...there are partial orderings where the order can only be determined between parts of the covered domain, but global consistency is a requirement. I can imagine cases where time at which something was noticed was blended with the value of what was noticed which could yield contradictory interpretations if you ignored the time, and various other permutations.

      The GPs actual claim is, as you say, rubbish, but it may be a simplified abstraction of an underlying true statement. (Or he could be a troll.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  71. Re: IMHO by loufoque · · Score: 1

    How is having an understanding of your computer architecture and how your language maps to it 'math'?
    Do Americans just use the word 'math' to mean 'something that requires some thinking'?

  72. Re:IMHO by lucasnate1 · · Score: 0

    I also have a patent on my name, and I can tell you that the main reason that I got it was not innovative talent or good mathematical background. I got it because our company had good lawyers.

  73. Re: IMHO by loufoque · · Score: 1

    I don't understand why you'd choose IT support. It's an ungrateful and underpaid job.

  74. Re: IMHO by loufoque · · Score: 1

    If you need a super sophisticated book to understand long division (taught in elementary school), then your thinking process is unusual to say the least.

  75. I spent $13- dollars on this back in 97, 4 books by BlueCoder · · Score: 1

    last one was 4a....

    Last was 4a. First two were massively outdated. I still have to still admit they are about "computer science". Which should not be what graduates in computers should not have graduated in since '85. Should have been a balance between the science and the engineering. The science part being encryption. Everything else he explained in obtuse language. I'm actually sad he never wrote "the" book on making a compiler. He could have actually predicted superscaler branch prediction with which on ryzen right now includes nural networks.

  76. Re: IMHO by Anonymous Coward · · Score: 0

    No math equation can predict states of water, because at the triple point water can be in three phases at once. Nature permits this; math does not. Similarly with supercooling water exists as liquid below the freezing point, and math does not allow such inconsistencies. You are reduced to a look-up table which is a natural-language construct that allows mappings math functions forbid.

  77. Donald Knuth finally sells out... by Jacco+de+Leeuw · · Score: 1

    Obligatory Doctor Fun reference.

    --
    -------
    Warning: Slashdot may contain traces of nuts.
  78. Re: IMHO by Zontar+The+Mindless · · Score: 1

    Then you don't know as nearly as much mathematics as you think you do, Herr Gödel.

    --
    Il n'y a pas de Planet B.
  79. Re: IMHO by Anonymous Coward · · Score: 0

    From experimental data, fit an equation for two any of two-phase lines (liquid-gas, solid-liquid), then solve for the intersection? Bam, triple point.

    IAPWS (International Association for the Properties of Water and Steam) has the equations in their site.

  80. Re:Trump by Anonymous Coward · · Score: 0

    In which case you are talking about the asspussy. Delicately take her tucked ballsack out of the way, open up her asspusy, and if she's nice and stretched out from rosebudding, you'll be pleasantly rewarded!

    Check out Yasmin Pires in her anal creampie vid to see what I mean.

  81. Re:IMHO by Anonymous Coward · · Score: 0

    I think you don't know what the fuck you're talking about and you should fuck right off. Or at least quit posting the same drivel over and over again.

  82. Re: IMHO by Anonymous Coward · · Score: 0

    Solid goes to gas too. Water is too inconsistent for math.

    From http://iapws.org/relguide/IF97-Rev.html:

    "these equations may also be used to provide good initial guesses for iterative solutions."

    Your equations are really guesses at interpolation schemes, because water displays inconsistent behavior. Math abhors inconsistency and hence loses its ability to express (and predict) water in all its forms under the same conditions ...

    Also note that the industrial formulations from IAWPS are limited to the liquid phase. No triple point, because water is A and not-A at the triple point (and also B and not-B, C and not-C).

  83. More accessible alternatives? by Anonymous Coward · · Score: 1

    Is anybody aware of better alternatives that are easier to read and can still impart the necessary mathematical background knowledge?

    Some people here already mentioned a couple: "Concrete Mathematics" (Ronald L. Graham and Donald E. Knuth, 1994), and "Introduction to Algorithms" (Thomas H. Cormen and Charles E. Leiserson, 2009).

    1. Re:More accessible alternatives? by HiThere · · Score: 3, Informative

      It depends on exactly what you are after. Sedgewick has/had a few books called "Algorithms in C++/Pascal/??" that was decent light coverage. "Algorithms + Data Structures = Programs" by Wirth is pretty good, but I don't think it was ever translated out of Pascal. And the current modern approach is Google (I only recommend that one as a supplement).

      P.S.: One of the Sedgewick books had several errors in the algorithms, so be sure you don't get the first edition.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    2. Re:More accessible alternatives? by sconeu · · Score: 1

      Aho Hopcroft and Ullman (both books). And Horowitz & Sahni.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    3. Re:More accessible alternatives? by Anonymous Coward · · Score: 0

      Thanks! I will go for Sedgewick's "Algorithms" 4th edition because I just found out that he is teaching some of the material at Coursera in a class that started today.

  84. Re:IMHO by woboyle · · Score: 1
    --
    Sometimes, real fast is almost as good as real-time.
  85. Re:IMHO by Anonymous Coward · · Score: 0

    It is not necessary to have a background in mathematics to write software

    No it's not, but it is necessary to have a background in mathematics to write good efficient software.

    No, it isn't. You just need to follow instructions and use the preexisting libraries and compilers. You don't need a degree in biochemistry to brush your teeth well. Creating a new toothpaste however is a different matter, and somebody needs to do that sometimes and better know what's up with that. And you better hope that this results in a job well-done or your teeth will rot and fall out eventually.

  86. Re:IMHO by Anonymous Coward · · Score: 0

    Shame on mods for missing the Woody Allen reference. :-P

  87. Re: IMHO by Anonymous Coward · · Score: 0

    Math can't handle contradictions but contradictions are everywhere in nature and real-world data.

    "Contradictions do not exist. Whenever you think you are facing a contradiction, check your premises. You will find that one of them is wrong."
      - Ayn Rand

    (captcha: unworthy)

  88. Re: IMHO by Anonymous Coward · · Score: 0

    Math handles contradictions just fine. And natural language is not a superset of math. Please learn more about math before you try to make claims about it.

  89. Re:Self-taught is great. The language is the gloss by Anonymous Coward · · Score: 0

    Whenever someone doubts you can improve performance, remind them that there ain't no such thing as the fastest code.

  90. Re: IMHO by Anonymous Coward · · Score: 0

    I meant "any two", sorry for the typo. You can certainly use the solid-gas line for the triple point.

    Iterative solutions are for when you're going for 7+ decimal places of accuracy. Those equations are limited by the accuracy of the measurements from which they were derived - math isn't the culprit there. Yes they're interpolation schemes, do you want to derive it from first principles, i.e. quantum mechanics or better, and not from experiments?

    They do have one for superheated steam. Look for other sources if not? You've seen a PT (or a 3D PVT) diagram, yes? The phase boundaries are freaking simple curves.

  91. Re:IMHO by Anonymous Coward · · Score: 0

    I've met mathematicians who keep talking about how easy it is to write software but don't actually write any. My advice is always the same: "start writing software, it's a very lucrative business." They never seem to do it though. Maybe it's too easy to capture their interest. So we remain in this state you describe, surrounded by shitty software. It is my sincere hope that all these math geniuses will soon reconsider and come to the rescue.

  92. Re:PHP? That's software engineering nowdays? by Anonymous Coward · · Score: 0

    PHP June 8, 1995 (fucking hipster lang, use old school like JS)
    JS May 23, 1995

  93. Re: IMHO by Anonymous Coward · · Score: 0

    contradictions are everywhere in nature and real-world data

    Can you provide an example of one?

  94. Re:IMHO by Anonymous Coward · · Score: 0

    If the world was made of people with your views an octo-CPU quad xeon wouldn't be enough to boot up windows in a reasonable time.

    News flash: it isn't enough to boot up Windows in a reasonable time. I had such a system in my last Windows-related job and it took quite longer to boot than my 10-year old Linux laptop. Let alone to shutdown.

  95. I'm waiting for Donald's ... by CaptainDork · · Score: 3, Funny

    ... "The Art of the Pussy Grab."

    --
    It little behooves the best of us to comment on the rest of us.
    1. Re:I'm waiting for Donald's ... by Anonymous Coward · · Score: 0

      He'll get it ghost-written, claim all the credit, declare bankruptcy but still wind up rich (somehow??), and fail to pay his [cr]editors.

      "The Art of the Pussy Grab" is gonna be HHUUUUUGGGGGEEEE!!

  96. Re: IMHO by __aaclcg7560 · · Score: 1

    Pretty confident for a guy who couldn't get a job for two years.

    I didn't listen to the recruiters who told me I was unemployable and hiring managers that I was overqualified for anything else.

    If you lost your current job, do you now have skills that won't leave you unemployed another two years?

    That's the funny thing about being unemployed for two years after the Great Recession was officially over: job skills didn't matter. As soon as the economy got better in 2011, the Silicon Valley labor market tightened and employers could no longer afford to be picky about whom they hire. I had 20+ contract assignments when I worked for seven days a week for two years. Despite being out of work for two years and having a chapter seven bankruptcy on my credit record! As for my current job in government IT, I'm halfway through a fully funded five-year contract.

  97. Re:IMHO by __aaclcg7560 · · Score: 1

    Translation: I have got a degree in maths and all I have got is a lousy tech job support.

    I got A.A. degree in General Education (1994) after graduating from the eighth grade and skipping high school, and an A.S. degree in Computer Programming (2007) with a 4.0GPA while working 60 hours per week and teaching Sunday school.

    Since I started my technical career in 1997, I was:

    • A software tester for a virtual world (Fujitsu), video games (Accolade/Infogrames/Atari) and an ebook reader (Sony);
    • A help desk support technician (Intuit/Google/eBay);
    • A PC technician for a moving company (Cor-O-Van), several PC refresh projects (eBay/hospital), and a data center (Google);
    • A hardware tester for wireless 11ac cards (Cisco);
    • An InfoSec technician (government agency).

    The equivalent of frying burgers in the IT industry.

    The kind of work I do — and enjoy doing — is virtual ditch digging. Like being a sanitation engineer, someone has to do the work or civilization as we know it will collapse.

  98. Re: IMHO by cpghost · · Score: 1

    Knowing some classical math won't really help you with floating point

    No, not if you keep using that old 1st gen Pentium CPU in the basement...

    --
    cpghost at Cordula's Web.
  99. Re: IMHO by loufoque · · Score: 1

    I'm sorry, I don't see the link.
    Most mathematicians I know are clueless about floating-point arithmetic. You need someone with specialized knowledge in both numerical stability and computer architecture to use floating-point correctly.

  100. Re: IMHO by __aaclcg7560 · · Score: 1

    I don't understand why you'd choose IT support.

    IT support needs miracle workers to solve difficult problems.

    It's an ungrateful and underpaid job.

    That's entry level. Once you finish paying your dues, appreciation and pay gets better. Especially if you have a reputation of being a miracle worker. Miracles can be solving the problem remotely while the user complains about the problem for 15 minutes, reclaiming 600 square feet of storage space from eight years of discarded IT equipment in between tickets over a six-week period, or fixing a failed printer migration project after the server tech ran the script at the last minute and went on vacation for six weeks.

  101. Re: IMHO by Anonymous Coward · · Score: 0

    There's a discontinuity at the triple point. At least an inflection that equations don't model. Water is ice, liquid, gas at once and math struggles to express that which is why you need several equations and observations to verify your interpolation schemes.

  102. Re: IMHO by loufoque · · Score: 1

    You still have to work at fixed hours, sometimes stuck on a silly shifts, with the stress of dealing immediately with many requests as they come in, and even by the end of your career you'll be happy if you even reach 6 figures.

    Developers on the other hand have an easy life, working whenever they please, and get paid a lot more from the get-go.

  103. Re: IMHO by __aaclcg7560 · · Score: 2

    You still have to work at fixed hours, sometimes stuck on a silly shifts, with the stress of dealing immediately with many requests as they come in, and even by the end of your career you'll be happy if you even reach 6 figures.

    My IT support contracts prohibits me from working more than 40 hours a week. I haven't worked overtime in over a decade. I start work at 7AM instead of 9AM or 10AM to avoid the traffic gridlock. I'm responsible for 80,000+ workstations and no longer deal with users. As for dealing with the stress, since I'm working in government IT, I have paid federal holidays (40 hours), paid time off (80 hours) and unpaid time off (40 hours). This year I got an extra month of pay as a Christmas bonus. I'm studying for my InfoSec certifications that should put me in the six-figure club for my next job.

    Developers on the other hand have an easy life, working whenever they please, and get paid a lot more from the get-go.

    The developers I know work 80 hours a week from 10AM to 12AM (programmer hours), owns a Tesla car or two, have a big house, big wife and big kids. They never get any time off to do anything. If they stop running on the treadmill, everything falls apart because they're one paycheck away from bankruptcy.

  104. Re:IMHO by __aaclcg7560 · · Score: 1

    We have excess food production capacity.

    Much of that excess food production capacity is subsidized by the taxpayers. If the subsidies went away, we would be paying $10 per gallon for milk.

  105. Re: IMHO by Anonymous Coward · · Score: 0

    This statement is a lie.

  106. Re: IMHO by Anonymous Coward · · Score: 0

    sqrt(4) = 2
    sqrt(4) = -2
    Therefore 2 = -2

    https://en.wikipedia.org/wiki/Chomsky_hierarchy for formal languages being a subset of context-sensitive.

  107. Re: IMHO by Anonymous Coward · · Score: 0

    Caesar's birth is differently reported, in different wikipedia articles. How do you pick one?

    Gravity behaves differently in the solar system and in galaxies.

    From wikipedia:

    "A further set of physical paradoxes are based on sets of observations that fail to be adequately explained by current physical models. These may simply be indications of the incompleteness of current theories. It is recognized that unification has not been accomplished yet which may hint at fundamental problems with the current scientific paradigms. Whether this is the harbinger of a scientific revolution yet to come or whether these observations will yield to future refinements or be found to be erroneous is yet to be determined. A brief list of these yet inadequately explained observations includes observations implying the existence of dark matter, observations implying the existence of dark energy, the observed matter-antimatter asymmetry, the GZK paradox, the heat death paradox, and the Fermi paradox."

  108. Re:IMHO by MikeBabcock · · Score: 1

    Okay ... so help yourself out. Do a cursory study of software written by people with and without a good elitist education in computer science and mathematics and tell me whether their software is *better* than that of those like you who do not have such a background.
    Importantly to me, is it less buggy and does it have fewer security problems?
    Teaching yourself to do basic coding is great, but learning how to write *good* code is a whole other thing.

    --
    - Michael T. Babcock (Yes, I blog)
  109. Re:PHP? That's software engineering nowdays? by MikeBabcock · · Score: 1

    Read this, don't feel bad: https://eev.ee/blog/2012/04/09...

    --
    - Michael T. Babcock (Yes, I blog)
  110. Re:IMHO by Anonymous Coward · · Score: 0

    I keep posting in response to the same drivel repeated over and over again. Math is great! Math us better than natural language! But if math is so superior as a communication medium, why can't Knuth wtite his book entirely in math alone with no natural language necessary?

  111. Epic textbook by peterofoz · · Score: 1

    This series is epic and a book shelf must have for any serious computer scientist or engineer.

  112. Re:Self-taught is great. The language is the gloss by Anonymous Coward · · Score: 0

    Well a week later I had it running 30% faster. Why could I, in a week, make drastic improvements to code they'd been trying to speed up for months and years, code I'd never even seen before?

    One of my earlier student jobs was to improve the running time of an algorithm creating a height raster from isoline data. The original code had already been optimized where it ran 50% faster but became unstable. Running time on the test data set about a day.

    I tried getting a hang of the code and gave up after about a week of it, saying I wanted to reimplement from scratch. I knew this problem was hard, so I threw my chops in efficiency behind it: I knew that this was done, among others, by an CS PhD.

    About two weeks later, I start compiling. After getting rid of compiler errors and the first segmentation faults and other runtime errors, the program runs, but only for about 2 minutes before exiting.

    I spend about another day with debugging in order to find out where it falls short. No clue. In exasperation, I turn to visualizing the output in order to get a hint what may be missing. The output is fine.

    Heck.

  113. Re:IMHO by Anonymous Coward · · Score: 0

    Okay ... so help yourself out. Do a cursory study of software written by people with and without a good elitist education in computer science and mathematics and tell me whether their software is *better* than that of those like you who do not have such a background.

    In my experience, more often than not the elitist CS education enables people to analyze the mean runtime of sorting algorithms and data structures and algorithms. Until some time after exams are over. They still invariably turn to the linked list as their go-to data structure.

    People who spend the same amount of time coding will actually _use_ hash tables even though not being able to analyze their exact performance.

    Like an experienced handyman being able to tell when a screw is going to break due to having broken a wagonload of them in his life time and a mechanical engineer being able to calculate when a screw is going to break due to having studied the issue: who of the two are you going to trust assembling/disassembling an item manually.

    Designing and analyzing a screw-driving machine: that's a different issue. But the job market for that is small. And even then, having an actual handyman in your design team is likely a good idea.

    It's similar with CS graduates and programming.

  114. The prospect of finishing by koavf · · Score: 1

    As a pure coincidence, it wasn't two days ago that I was editing Wikipedia about Knuth, TeX, etc. One thing I have wondered before and wonder now is if he has some plan for what happens to the work once he dies. Simply put, at this pace, he will not finish the book. Is anyone working with him to ensure that it is completed if he dies? Does anyone know? I'd like to ask him via snail mail but I frankly don't want to waste his time.

    1. Re:The prospect of finishing by tehcyder · · Score: 1

      As a pure coincidence, it wasn't two days ago that I was editing Wikipedia about Knuth, TeX, etc. One thing I have wondered before and wonder now is if he has some plan for what happens to the work once he dies. Simply put, at this pace, he will not finish the book. Is anyone working with him to ensure that it is completed if he dies? Does anyone know? I'd like to ask him via snail mail but I frankly don't want to waste his time.

      That'd be a fun exchange of letters.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  115. Re:IMHO by tehcyder · · Score: 1

    Fundamentally all programming is research, you have a problem and you need to develop a robust solution on how to solve it.

    Sounds more like a definition of engineering than research.

    --
    To have a right to do a thing is not at all the same as to be right in doing it
  116. Re: IMHO by david_thornley · · Score: 1

    Caesar's birth is differently reported, in different wikipedia articles. How do you pick one?

    And this would have what to do with math, software, programming, or nature? The answer to your question is that you do not place undying faith in the God-inspired correctness of Wikipedia but instead look at the sources in the articles. Conflicting sources aren't contradictions either in any formal manner. We know how to deal with differing reports.

    Gravity behaves differently in the solar system and in galaxies.

    The best current explanation is that it doesn't, but there's not enough dark matter in the solar system to cause measurable results. MOND never did get general acceptance, from what I can tell from outside the field. Even if it did, we'd just have to change our understanding of gravity and we'd be fine. Misunderstanding is not a contradiction.

    A further set of physical paradoxes are based on sets of observations that fail to be adequately explained by current physical models.

    To pick an example I actually know something about, matter-antimatter asymmetry is not a paradox or a contradiction. It's something we don''t understand. We don't have one firmly established set of physical laws saying it has to be symmetrical, partly because this appeared at a time when we had conditions we can't come anywhere near close to experimentally, and so we are limited to extrapolation of known laws of physics to situations where some really tiny part of the actual laws that we can't measure on Earth actually matters. Back in 1900, we had an expression for kinetic energy based on mass and speed that worked to the limits of measurement as long as the speed was very small compared to the speed of light. Since then, we've devised much more delicate tests and accelerated stuff to relativistic speeds ("relativistic" here being defined partly by the precision and accuracy of our measurements).

    Also, the observations suggesting dark matter have an easy explanation: there's matter out there that doesn't interact with the electromagnetic force. We're currently trying to figure out some of its other properties. No contradiction there.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  117. Re:IMHO by david_thornley · · Score: 1

    Math doesn't require transitivity. Duh. There are mathematical objects with certain properties, such as transitivity, but that isn't the same thing. "This statement is a lie" requires something more sophisticated than first-order predicate logic, true, but it's mathematically tractable if you know what you're doing. It's analogous to the Goedelian "Proposition P: Proposition P cannot be proved.", and that's mathematically tractable if complicated.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  118. Re:IMHO by Rudisaurus · · Score: 1

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software.

    By this standard, anyone striving to enhance general knowledge in a field is an elitist. Albert Einstein was an "elitist". Richard Feynman was an "elitist". Carl Sagan was an "elitist".

    I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever. It isn't dumbing down as he claims. It's about creating opportunities. If you can code and you can do it well without mathematics, so be it. The math side is for those that want to do research. I work in the real world ....

    As you didn't invent PHP yourself, you stand on the shoulders of giants to achieve what you are doing. Those giants quite possibly benefited from the work of Donald Knuth -- one of the true trailblazers of the field. Unknowingly and unwittingly, therefore, you are a vicarious beneficiary of his work. Have some respect.

    --
    licet differant, aequabitur
  119. Ahhh - Knuth! by BubbaJonBoy · · Score: 1

    There's a scene in MASH where Hawkeye and Trapper are coaching Radar for a date with a a brainy gal.
    They tell him If she mentions Bach, just nod your head and say knowingly - 'ah - Bach!'
    That's the relationship most comp sci majors had with Knuth - they paid lip service to his books which few have even read.
    This from back in an era when all programs were expected to be mathematically proven correct.

  120. Re: IMHO by MikeBabcock · · Score: 1
    --
    - Michael T. Babcock (Yes, I blog)
  121. Re:IMHO by peetm · · Score: 1

    Donald Knuth is an elitist. It is not necessary to have a background in mathematics to write software. I taught myself PHP and I certainly don't have any kind of mathematics background whatsoever. It isn't dumbing down as he claims. It's about creating opportunities. If you can code and you can do it well without mathematics, so be it. The math side is for those that want to do research. I work in the real world ....

    Um, IMHO, no he isn't.

    Formally, there's a big difference between being a 'Coder/Programmer/Developer' and 'Software Engineer' and 'Computer Scientist'. The latter two usually require a mathematical understanding of what a computer system is (includes programs, OSes, networks, languages, ...) and how it will perform.

    At my own institution, our CS degree was really a pure mathematics degree at one time ... the department had a saying "The computers are for email and writing up, please use the blackboards for the Computer Science". We do these days teach some programming - because it's expected - but we usually use this to animate the mathematics.

    --
    @peetm
  122. Re:Self-taught is great. The language is the gloss by Anonymous Coward · · Score: 0

    That's awesome.

    No it's not.

    Watching a star explode would be 'Awesome'! And anyway, PHP is fucking simple - why is it that people heap praise on people like this, and that no one can ever fucking fail or be called an idiot these days!

  123. If you insist by raymorris · · Score: 1

    > why is it that ... that no one can ever fucking fail or be called an idiot these days!

    Okay, you're an idiot. Your comment will be dutifully submitted to failblog.

  124. Re:IMHO by Anonymous Coward · · Score: 0

    RTFA Nowhere does it say Knuth thinks that computer science education is being dumbed down by not including enough math or that CS people need to know lots of math. He doesn't say it. Go read it again if you have time, more slowly this time.

    To aid your reading comprehension:

    In the announcement:

    1.) Knuth has added a new math section which is necessary background if you want to read the 4B volume of the book (which if memory serves is on probabilistic algorithms, and so it is entirely appropriate that this section on probability be included. No claim here that anyone not interested in such algorithms should read it.

    2.) There is a link to _a different Slashdot post_ in which Knuth complains that computer science _HISTORY_ (note: not education, math ability, but history) has been dumbed down. This is not related _at all_ to your inane rant.

    Don't put words in people's mouths and then criticize them for it.

  125. Re:IMHO by Anonymous Coward · · Score: 0

    When you think of mathematics in software it's not about writing 1+2=3, it's about writing those crazy chalkboard covering equations. With more modern languages you can lay the entire program down on line like a very complex math problem. This is like math because you don't sometimes do something if it's used in such and such a context, you always do the same thing based on hard rules.

    Also, just like math, knowing why something works the way it does makes your life easier because you have a better understanding of your tool set.

  126. Re:IMHO by Anonymous Coward · · Score: 0

    Building from his work has given me a US Patent...

    Donald Knuth is one of the foremost critics of software patents. If you idolize him so much, I wouldn't be too proud.

  127. Re: IMHO by Anonymous Coward · · Score: 0

    Well, for starters: Computer programs are mathematical expressions. (Proper) refactoring is an act of transforming and simplifying such an expression.

  128. Re:IMHO by Anonymous Coward · · Score: 0

    They are full of shit since knowing _only_ math doesn't get you anywhere. For starters, mathematical notation is the ultimate in obscure programming: single-letter multiply overloaded globals using half of unicode? Come on. If you did that you'd be tarred and feathered before being thrown out.

    But, if those who have code writing skills also managed to think of things more via invariants and mappings and such instead of sequences of operations, updates and explicit specialcases, we would end up with more straightforward, better performing and more reliable software.

  129. Re:IMHO by woboyle · · Score: 1

    Knuth has my utmost respect, and for the most part I agree that software patents suck. Some are inventions in the truest sense of the word and worthy. In my egoistic way I would like to think mine is such. Here is the link. Check it out, and then tell me what you think. https://www.google.com/patents...

    --
    Sometimes, real fast is almost as good as real-time.