Knuth Previews New Math Section For 'The Art of Computer Programming' (stanford.edu) 176
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!"
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!"
Make Programming Great Again (Score:5, Funny)
Thanks, Donald!
Math is HARD! teeheehee (Score:1)
I'm just a girl
Re: Math is HARD! teeheehee (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.
PHP? That's software engineering nowdays? (Score:4, Informative)
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
Re: (Score:2)
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 incr
Re: (Score:2)
Read this, don't feel bad: https://eev.ee/blog/2012/04/09... [eev.ee]
Why not extend "Concrete Mathematics"? (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 l
Re: Why not extend "Concrete Mathematics"? (Score:2)
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.
Re: Why not extend "Concrete Mathematics"? (Score:4, 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.
Computerprogramming is not an art (Score:4, Interesting)
But craftmanship.
Re: (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 communicativ
Re: (Score:2)
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
The dumbing down is real (Score:5, 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.
Re: (Score:2)
Re: (Score:2)
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 transitivit
Re: (Score:2)
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.)
Re: (Score:2)
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.
I spent $13- dollars on this back in 97, 4 books (Score:2)
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 whic
Donald Knuth finally sells out... (Score:2)
More accessible alternatives? (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).
Re:More accessible alternatives? (Score:4, 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.
Re: (Score:2)
Aho Hopcroft and Ullman (both books). And Horowitz & Sahni.
I'm waiting for Donald's ... (Score:4, Funny)
... "The Art of the Pussy Grab."
Epic textbook (Score:2)
The prospect of finishing (Score:1)
Re: (Score:2)
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.
Ahhh - Knuth! (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.
PHP? (Score:5, Funny)
I was with you until "I taught myself PHP."
Re: (Score:1)
The irony of anti-PHP elitism in response to GP post seem to have been lost on the parent AC. :P
Re: (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.
Re: (Score:1)
Re: (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.
The "math" of AOCP very important in real world (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).
Re:The "math" of AOCP very important in real world (Score:5, 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.
Re: (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.
Code Monkey Video
https://www.youtube.com/watch?v=qYodWEKCuGg [youtube.com]
Re: (Score:3)
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?... [youtube.com]
Re: (Score:2)
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.
Re: (Score:3)
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 pro
Re: (Score:2)
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.
Re: (Score:1)
Of course mathematical equations can describe water states, just not at a level of abstraction you're happy with.
Re: (Score:2)
Well; https://www.quantamagazine.org... [quantamagazine.org]
Re: (Score:2)
Then you don't know as nearly as much mathematics as you think you do, Herr Gödel.
Re: (Score:2)
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.
Re: (Score:3)
Re: (Score:2)
Re: (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.
Re: IMHO (Score:2)
Knowing some classical math won't really help you with floating point
Re: (Score:2)
No, not if you keep using that old 1st gen Pentium CPU in the basement...
Re: IMHO (Score:2)
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.
The "real world"? Seriously? In your cube? (Score:3)
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.
Y
Re: The "real world"? Seriously? In your cube? (Score:2)
People with a background in physics typically make the worst coders.
Writing software is its own engineering discipline.
Re: (Score:2)
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 t
Re: (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 ....
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.
Re: (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 t
Re: IMHO (Score:2)
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'?
Re:IMHO (Score:5, Insightful)
Re: (Score:2)
What can you claim?
First post?
Yaz
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: IMHO (Score:2)
I don't understand why you'd choose IT support. It's an ungrateful and underpaid job.
Re: (Score:2)
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
Re: IMHO (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.
Developers on the other hand have an easy life, working whenever they please, and get paid a lot more from the get-go.
Re: (Score:3)
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
Re: (Score:2)
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
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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:
Your attitude makes me sad. (Score:5, Insightful)
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.
Self-taught is great. The language is the glossary (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.
If you insist (Score:2)
> 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.
Re:IMHO (Score:4, 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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Your skills will be automated too (Score:3)
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 sa
Re: (Score:1)
https://www.youtube.com/watch?... [youtube.com]
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, an
Re:IMHO (Score:5, 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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (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
Re: IMHO (Score:2)
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.
Re: (Score:2)
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.