The thing self-taught programmers really miss is the core of computer science, which is computational theory. A lot of them pick up parts of complexity theory because it is so useful (and some parts are intuitively obvious), but most miss computability theory because you can get through your day without it.
On the other hand, it is what Dijkstra is referring to when he says "Computers have nothing to do with computer science." It discusses what kinds of problems can be solved and what kind can never be solved, and what kinds of computers can be used to solve them. Fascinating, I think.
I guess I'm really atypical. I'm self-taught, but I have read and thought about computability theory a lot (and I've read Goedel Escher Bach:))
I had an interesting problem: Port the unzip program to OS9. Looks easy - change all the system-specific stuff, compile it and... it crashed. I finally figured out that the original code was written for an Intel CPU, which is low-endian but I was on a Motorola M68030 so everything came out with the nybbles reversed.
I didn't need to know hex to solve the problem but I did have to look at a hex dump of the output to discover the reversal.
A Computer Scientist should always be a good programmer -- it's one of the core skills in CS.
Good, no. Able to program? Yes. For example I had a coworker who just got his masters in CS develop a text parser. Instead of simply doing a loop that iterates every line, he argued with me it would be impossible without a character that delegated the end of a line. After I told him that was the '\n' character, he broke it down character by character and parsed it to find the \n character, where he then stored it into a double character array. It was quite a bit slower (exponentially) and after that I would not longer trust him to do anything. That was kinda a big deal. So again, Good? No by no means necessary.
I had a simlar experience. I worked with a guy with a PhD in nuclear physics. He wrote a really ingenious program to optimize photographic plate usage for composite images. This he did in Visual BASIC. I was given the job of translating it to C. I found no fewer than 15 places in the code where he wanted to interpret a single character input by the user. Here's what he did (each time!):
IF C == 'A' || C == 'a' THEN x = 1
ELSE IF C == 'B' || C == 'b' THEN x = 2
ELSE... etc.
Even cutting & pasting this would have made me vomit.
You could teach people all they need to know about big O and common algorithms in an afternoon.
Sorry, but I gotta call B.S. on that one.
You need YEARS of mathematical training to grok this stuff.
Have you ever tried teaching college level programming to recent American high school graduates?
I have had young adults [some already with bachelor's degrees who were coming back to school to brush up] who couldn't reliably compute anything in Base-16 [hexadecimal].
They need the better part of a decade's worth of intensive mathematics training to get to the point that they could really grok the difference between what goes into a "slow" O(n^2) algorithm and its "fast" O(nlog[n]) counterpart.
And let's face it, lots of people doing basic HTML or VBA [Visual Basic for Applications] probably don't have sufficiently high IQs to make that transition.
And even if they do have sufficiently high IQs, then summoning the self-discipline [not to mention just the spare time] to tackle this stuff is going to require a really formidable application of the will.
Which is not to say that it can't be done, but the odds are definitely stacked against them.
This wasn't my experience but I guess I'm atypical. I'm self-taught, but in 1987 I bought the 3 extant volumes of Knuth's Art of Computer Programming. You don't need calculus to understand the math, just limits. I can't imagine its taking YEARS for the average person to learn the concept of limits
How do we know other galaxies and stars are not anti-matter. It's not like we can touch them and find out.
Would it not be likely that thermal explosions could have sorted the two into far flung clumps in the early days of the universe.
Interactions might not be observed if all of the clumps are already flying away from each other.
The only way to tell matter from anti-matter at a distance is to observe their neutrino emissions. Anti-matter objects will preferentially emit neutrinos in the direction of spin of the baryons (the majority of which spin in the same direction as the containing object assuming a magnetic field.) while matter objects will emit them preferentially in the opposite direction.
Actually, anti-matter stars emit neutrinos while ordinary matter stars emit anti-neutrinos, so if you can tell them apart and where they came from, it would make things a lot easier.
Electron volts are a unit of energy, not temperature. Those two are different physical quantities. For example, a test tube of liquid and a bathtub of liquid can both be the same temperature, but the bathtub holds more heat energy just because its mass is larger.
A very tiny unit of energy, the energy required to move 1 electron across a potential difference of 1 volt. Think of how many teraelectron-volts there are in a sneeze.
How do we know other galaxies and stars are not anti-matter. It's not like we can touch them and find out.
Would it not be likely that thermal explosions could have sorted the two into far flung clumps in the early days of the universe.
Interactions might not be observed if all of the clumps are already flying away from each other.
The only way to tell matter from anti-matter at a distance is to observe their neutrino emissions. Anti-matter objects will preferentially emit neutrinos in the direction of spin of the baryons (the majority of which spin in the same direction as the containing object assuming a magnetic field.) while matter objects will emit them preferentially in the opposite direction.
Yes but they do not know why, and research such as this may help reveal something about that.
We've known you need air to live for millenia and some short sighted folk back then probably said 'duh' too. Others tried to find out why. Now we know why. Are we better off not knowing?
Anti-matter is just regular matter moving backward in time so wouldn't it have all (except for a small fraction produced by high-energy collisions) been destroyed at the big bang instead of being created?
You know that the WWW is only a PART of the Internet?
As in: The USA is just a PART of the world.
You know that the Inernet was little-known outside of universities before the Web? You also know that Tim is British, right? And that he invented the WWW while at CERN? You know, the European Organization for Nuclear Research?
Reducing this to some problem you have with the USA only exposes your own ignorance and predjudice.
But who invented the internet? More than any other single person it would have to be Bill Joy, sine qua non.
Cerf & Kahn invented the protocol, but that was like Babbage "inventing" the difference engine - It didn't exist and therefore did not work. Joy's writing an efficient TCP/IP stack was what made it all possible.
You know that the WWW is only a PART of the Internet?
As in: The USA is just a PART of the world.
You know that the Inernet was little-known outside of universities before the Web? You also know that Tim is British, right? And that he invented the WWW while at CERN? You know, the European Organization for Nuclear Research?
Reducing this to some problem you have with the USA only exposes your own ignorance and predjudice.
But who invented the internet? More than any other single person it would have to be Bill Joy, sine qua non.
Not only is it not particularly hoppy, it has a pretty significant rice content. If anything, bud is hop-flavored rice alcohol. This being said, it's still my favorite mass market beer.
Yes, we live in a cultural backwater as far as beer is concerned. In Mexico the cheap regular beer is some of the best on the planet.
Users are the weakest link in the security chain. And the least trained users are normally those on the de facto standard of Windows with IE, which implies a higher infection rate on thos systems.
If we substitute eg. Firefox for IE as the default browser in Windows, unskilled users will still remain unskilled users. They will still follow any shady link they come over, some of which will undoubtedly manage to poke a hole in FF's security.
The challenge and solution to security in the current environment is to educate the "average person."
Well! "Educate the average person"! It's so simple! I'll get on it as soon as I've developed my FTL drive and cured the common cold!
I might add to this list: Recursion.
IMO, if you don't understand recursion before you learn to program, you have no business being a programmer.
design patterns
I have to agree with that a little. One of the main hurdles in my learning Cocoa was model-view-controller program design
The thing self-taught programmers really miss is the core of computer science, which is computational theory. A lot of them pick up parts of complexity theory because it is so useful (and some parts are intuitively obvious), but most miss computability theory because you can get through your day without it. On the other hand, it is what Dijkstra is referring to when he says "Computers have nothing to do with computer science." It discusses what kinds of problems can be solved and what kind can never be solved, and what kinds of computers can be used to solve them. Fascinating, I think.
I guess I'm really atypical. I'm self-taught, but I have read and thought about computability theory a lot (and I've read Goedel Escher Bach :))
I had an interesting problem: Port the unzip program to OS9. Looks easy - change all the system-specific stuff, compile it and ... it crashed. I finally figured out that the original code was written for an Intel CPU, which is low-endian but I was on a Motorola M68030 so everything came out with the nybbles reversed.
I didn't need to know hex to solve the problem but I did have to look at a hex dump of the output to discover the reversal.
A Computer Scientist should always be a good programmer -- it's one of the core skills in CS. Good, no. Able to program? Yes. For example I had a coworker who just got his masters in CS develop a text parser. Instead of simply doing a loop that iterates every line, he argued with me it would be impossible without a character that delegated the end of a line. After I told him that was the '\n' character, he broke it down character by character and parsed it to find the \n character, where he then stored it into a double character array. It was quite a bit slower (exponentially) and after that I would not longer trust him to do anything. That was kinda a big deal. So again, Good? No by no means necessary.
I had a simlar experience. I worked with a guy with a PhD in nuclear physics. He wrote a really ingenious program to optimize photographic plate usage for composite images. This he did in Visual BASIC. I was given the job of translating it to C. I found no fewer than 15 places in the code where he wanted to interpret a single character input by the user. Here's what he did (each time!):
Even cutting & pasting this would have made me vomit.
You could teach people all they need to know about big O and common algorithms in an afternoon. Sorry, but I gotta call B.S. on that one. You need YEARS of mathematical training to grok this stuff. Have you ever tried teaching college level programming to recent American high school graduates? I have had young adults [some already with bachelor's degrees who were coming back to school to brush up] who couldn't reliably compute anything in Base-16 [hexadecimal]. They need the better part of a decade's worth of intensive mathematics training to get to the point that they could really grok the difference between what goes into a "slow" O(n^2) algorithm and its "fast" O(nlog[n]) counterpart. And let's face it, lots of people doing basic HTML or VBA [Visual Basic for Applications] probably don't have sufficiently high IQs to make that transition. And even if they do have sufficiently high IQs, then summoning the self-discipline [not to mention just the spare time] to tackle this stuff is going to require a really formidable application of the will. Which is not to say that it can't be done, but the odds are definitely stacked against them.
This wasn't my experience but I guess I'm atypical. I'm self-taught, but in 1987 I bought the 3 extant volumes of Knuth's Art of Computer Programming. You don't need calculus to understand the math, just limits. I can't imagine its taking YEARS for the average person to learn the concept of limits
How do we know other galaxies and stars are not anti-matter. It's not like we can touch them and find out. Would it not be likely that thermal explosions could have sorted the two into far flung clumps in the early days of the universe. Interactions might not be observed if all of the clumps are already flying away from each other.
The only way to tell matter from anti-matter at a distance is to observe their neutrino emissions. Anti-matter objects will preferentially emit neutrinos in the direction of spin of the baryons (the majority of which spin in the same direction as the containing object assuming a magnetic field.) while matter objects will emit them preferentially in the opposite direction.
Actually, anti-matter stars emit neutrinos while ordinary matter stars emit anti-neutrinos, so if you can tell them apart and where they came from, it would make things a lot easier.
No, a particle moving forward in time is indistinguishable from its anti-particle moving backwards in time, in terms of quantum states.
[snip]
Sorry my terms were not precise, but isn't that what I said (since the antiparticle of an antiparticle to a particle is the particle itself)?
Electron volts are a unit of energy, not temperature. Those two are different physical quantities. For example, a test tube of liquid and a bathtub of liquid can both be the same temperature, but the bathtub holds more heat energy just because its mass is larger.
A very tiny unit of energy, the energy required to move 1 electron across a potential difference of 1 volt. Think of how many teraelectron-volts there are in a sneeze.
How do we know other galaxies and stars are not anti-matter. It's not like we can touch them and find out. Would it not be likely that thermal explosions could have sorted the two into far flung clumps in the early days of the universe. Interactions might not be observed if all of the clumps are already flying away from each other.
The only way to tell matter from anti-matter at a distance is to observe their neutrino emissions. Anti-matter objects will preferentially emit neutrinos in the direction of spin of the baryons (the majority of which spin in the same direction as the containing object assuming a magnetic field.) while matter objects will emit them preferentially in the opposite direction.
Yes but they do not know why, and research such as this may help reveal something about that.
We've known you need air to live for millenia and some short sighted folk back then probably said 'duh' too. Others tried to find out why. Now we know why. Are we better off not knowing?
Anti-matter is just regular matter moving backward in time so wouldn't it have all (except for a small fraction produced by high-energy collisions) been destroyed at the big bang instead of being created?
Damn, these guys can burn soup and they admit it.
MeeGo is supposed to be the result of merging Maemo and Moblin
Who named these platforms, a Lord of the Rings fan with a speech impediment?
Be happy they didn't name it M&M.
Probably a Lovecraft fan
You know that the Inernet was little-known outside of universities before the Web? You also know that Tim is British, right? And that he invented the WWW while at CERN? You know, the European Organization for Nuclear Research?
Reducing this to some problem you have with the USA only exposes your own ignorance and predjudice.
But who invented the internet? More than any other single person it would have to be Bill Joy, sine qua non.
Cerf & Kahn invented the protocol, but that was like Babbage "inventing" the difference engine - It didn't exist and therefore did not work. Joy's writing an efficient TCP/IP stack was what made it all possible.
You know that the Inernet was little-known outside of universities before the Web? You also know that Tim is British, right? And that he invented the WWW while at CERN? You know, the European Organization for Nuclear Research?
Reducing this to some problem you have with the USA only exposes your own ignorance and predjudice.
But who invented the internet? More than any other single person it would have to be Bill Joy, sine qua non.
This might mean that version 3.0 of the Linux kernel will be a total respin to eliminate cruft.
From your mouth to God's ear. The apex of Linux development as far as I'm concerned is SuSE release 5, which had whatever came before 2.64.
Not only is it not particularly hoppy, it has a pretty significant rice content. If anything, bud is hop-flavored rice alcohol. This being said, it's still my favorite mass market beer.
Yes, we live in a cultural backwater as far as beer is concerned. In Mexico the cheap regular beer is some of the best on the planet.
"but also got a worrisome +4."
I can't find the 'worrisome' option, and I have mod points at the moment.
lol, really.
Stronger, faster, more efficient.
Downside is it has a tendency to encroach on polandium lasers...
Wow, Godwin's Law didn't waste any time kicking in here.
My sig is from "The Thing on the Doorstep"
it is freaking awesome, especially with a good single malt whisky.
Yeah, and I have a good bet on what the optimal order of consumption is.
There's ritual toast and recitation of Burns before you cut into it, yes.
Better informed implies more depressed. End of story.
With Apple making so many bone-headed moves recentlty, it makes me wonder: Could Jobs have received a Microsoft liver???
Users are the weakest link in the security chain. And the least trained users are normally those on the de facto standard of Windows with IE, which implies a higher infection rate on thos systems.
If we substitute eg. Firefox for IE as the default browser in Windows, unskilled users will still remain unskilled users. They will still follow any shady link they come over, some of which will undoubtedly manage to poke a hole in FF's security.
The challenge and solution to security in the current environment is to educate the "average person."
Well! "Educate the average person"! It's so simple! I'll get on it as soon as I've developed my FTL drive and cured the common cold!
You probably don't like bagpipes, either, do you, pissant?