Well, in science even what "everyone knows" doesn't count
While the idea behind your statement has elements of truth to it, it is not entirely true (what ever is?). Scientists, as a community, rely just as much on the "commonly accepted wisdom (of their own scientific community)" as lay people do on the commonly accepted knowledge/wisdom of their (sociological) community. This is one interpretation of Kuhn's "normal" versus "revolutionary" science.
Of course one mark of a (good) scientist is skepticism with respect to "accepted" wisdom that allows for them to develop of new models/theories/experiments/measurements/etc and win fame and glory (heh!).
You obviously don't develop.
Wrong, but this is only an appeal to ridicule, a well documented logical fallacy, so I'll chose to ignore it.
I wish you would have said: "... fallacy, so this space is intentionally left blank." Either way, it made me smile.
Anyone have a guesstimate as to the size of the backend, frontend, and synchronization/distribution codebase sizes?
Much like in politics (paid by the people at uneven intervals -- more regularly by "interests" -- and definitely no QA) and the media.
$500 these days can buy you a decent machine that will run most office software (outside of heavy 3d graphics).
Unfortunately, when IT departments insist on loading crapware, even substantial machines can grind to a halt.
And even fewer will realize that "statistical significance" and "real world significance" are orthogonal concepts. I can have a huge sample show a statistically significant tiny difference that doesn't matter.
There is no science in Computer Science.
Unfortunately, that is a false statement. Philosophers will go round and round, but I hope we can agree that science is a process of observation, experimentation, manipulation, and recording of outcomes. All of these are evident in computer science (particularly outside of "theory of computation").
For example, you develop a new algorithm. You perform some algorithmic complexity analysis on it and get some formal, mathematical results (and yes, math -is- a big part of computer science). But, you won't stop there. If you do, you are really falling into the trap of the medieval scholastic philosophers: arguing at the number of angels on the head of a pin. You are going to then actually run the program for different input sizes and record the amount of time the program took to run.
Actually running the program and recording the results is comparable to synthesizing a new chemical and checking its reactivity, verifying its molecular weight, etc. You are quantifying the properties of something new.
This -is- science. Furthermore, in many large systems, there are too many practical obstacles (size, interactions, etc.) to performing a formal complexity analysis and thus
All that said, the end result of your claim is pretty spot on: if you are afraid of math, you might want to look elsewhere.
As a former and future CS professor, this issue is near and dear to my heart.
The conflation and confusion over what constitutes computer science is just as rampant at the college/university level as it is in high schools. Perhaps the "CS" moniker is even more abused in post-secondary institutions. At least those high school programs that were designed around the AP exam had *something* to focus them (I'm not wading into CS versus programming right now, just saying that the AP exam gave a concrete body of material that is at CSy enough).
Now certainly, CS is well- and correctly defined at R1 type schools and at the top 10 to 25% of liberal arts schools (the top 100 at Princeton Review or some such). It's not too bad at the top 5% of "master's" institutions (say top 50, but I haven't gone through the list carefully. I know there are VERY BAD examples further down the list -- say around 100. The "master's" category of institution is typically for schools that can't compete with R1 or quality liberal arts). [Note, those are my intuitive numbers from personal experience (I'm intimately familiar with about 15 programs in the broad northeast of the US at all three levels. I know the structure and reputation of another 50, but my comments are mostly based on those I have more personal knowledge of.)].
What makes the problem worse at the (weak) post-secondary level is that CS is turned into IT (or CIS) and the students wonder why they can't get jobs doing something other than MS system administration with a bit of "pluggy pluggy" networking and a side of "pointy clicky" databases. Of course, the same students shy away from anything 1. hard and 2. involving that evil, demonic subject: math. So, the schools take the path of least resistance and produce students who will peek their career in about 3 months (except for a few that have the natural political/business ability that will move up in management after 5 years).
I wish this were mere fancy. But I can name multiple schools, without stopping to think, that fall into this category. Sadly, almost any school that isn't good (as defined above) is going to be bad. Some of them are honest enough to name the programs CIS/IT and have a gutted/token CS department with two students; a few of the schools defined CS as CIS + two or four math classes; some schools just name it CS and let the dice fly. Fortunately, at some of the schools, there are folks working to improve things. But, it is an uphill battle with entrenched faculty who are tenured (can't get rid of them), don't have advanced CS degrees (aren't really qualified), are currently uncertain about the economy (have motive to keep earning money), don't have anything better to do (have motive to go to work), and may work for another 10-20 years (ugh).
I think the portion about cows is mostly clear -- there's different standard that the US applies to US cows (media) and that the US applies to non-US cows (media).
The puck *ahem* probably refers to the biological excrement of a cow used in a "sporting" fashion. So, foreign cow deposits US dirt and it gets a slap shot back in the US's face.
From Stroustrup, in the article:
"Know your fundamentals (algorithms, data structures, machine architecture, systems) and know several programming languages to the point where you can use them idiomatically.
Know some non-computer field of study well — math, biology, history, optics, whatever. Learn to communicate effectively in speech and in writing. Spend an unreasonable amount of time on some difficult topic to really master it. Try to do something that might make a difference in the world."
I guess he wouldn't do to well on Slashdot.
We definitely agree more than we disagree. I personally grew up in better circumstances than you describe. I'm also living in (probably) worse circumstances that you are now (with a family to support).
"you're just privileged card" with me either.
I didn't play that card, nor did I imply it. You found it yourself. I was simply speaking of others. I know plenty of folks doing substantially differently than their economic upbringing.
In the meantime, my dad was working his tail off to get an education and still provide for us.
And that example (of character) is worth
When most people say, "we can't afford for mom to stay home," what they really mean is, "we can't afford for mom to stay home, and still have two late-model cars, America's Favorite 500 Channels cable package, a 56-inch flatscreen television, a separate media room with surround sound, a PS3 with scores of games, and three eat-outs a week."
I'm disgusted by that, myself. I also think it is a caricature. In contrast to your opinions below, most of the folks I know (including faculty at small colleges) are not in the scenario you describe of deciding about luxury goods. They are driving older, second hand cars, scrounging left and right, and generally struggling to get by. I mention this group of workers because (1) their household incomes are above median and (2) they (generally) have less interest in "stuff" and more interest in substance. Generally.
But that's not true for most people I know, and probably not true for most families in America. Most families I know could find a way to do it if it was important to them.
It's a choice that we made.
If I might rephrase your claim: most families in America could afford to live on a single income (for the purpose of having one parent at home with the kids).
Hummmm. I really don't know about that. I really don't. My brother (with a family of 4) does manage it. But, many of the families I know certainly don't have much to go around (on two incomes). I'm very curious if you live in or are familiar with folks that live in an area that has very cold winters. Seriously. The cost of heating can literally put a family in debt.
Tieing this back to the existence of an (implicit) selection process in American education, I'd like to reiterate my question from above:
What if some children are raised in an economically poor environment without examples of character (and the importance of education)?
I think the answer is that they are going to be very unlikely to pursue any sort of personal advancement in terms of college or technical education.
In fact, from spending a lot of time working with first generation college students (and their peers that are not 1st generation), there is dramatic difference in perspective and, often, ability. Hard work seems more evenly distributed but I'd probably give the nod to the 1st generation students. They know what they are fighting against.
It's hard to argue against someone who is basically an example of the "American Dream". I just don't think success for folks from less than ideal circumstances is that obtainable for the majority -- and it's not from a lack of hard work and due to too many 56" TVs.
This really isn't true. I live on a comfortable upper-middle-class income. My wife stays home with the kids, so they don't get sent to day care.
You should check out the number of folks that cannot survive on a single income. Thus, negating the possibility that one parent can devote their full time and attention to between say, one and three offspring. That custom attention (and the level of caring and devotion typical in a parent in an upper-middle-income household) is more educationally valuable than a "premium" day care or kindergarten and even elementary school. Also, don't underestimate the value of living "comfortably". Less stressed parents means both more patience for the children and less stress on the children. Both of which improve the living and developmental environments.
If you really want your kids to be successful, let them be kids while they're young, fill your home with lots and lots of books, make education a priority, and spend time with them. Eat dinner together, for crying out loud and then sit down and read with them and help them with homework.
Yes, yes, and yes. However, understand that if two parents are working (or, in a single parent scenario, that parent is employed), there may be severe constraints on time and energy. Certainly, those parents that understand the potential of a better life for their children will make the sacrifices necessary to raise their child well (as you discuss).
I agree that "early excellence" is a red-herring. But, I think a better description is that "early specialization" is the real killer. In the physical realm, the best nationally programmed sports (former Soviet bloc) recognized that early specialization basically killed the ability to succeed as an athlete. There just wasn't enough general balance, strength, stamina, coordination, etc.
The same thing holds in mental development. The arguments can be duct taped together from developmental and cognitive psychology.
Are you kidding me? Are you really *(*$@#ing, Grade A kidding me?
Python/Perl/Ruby require interpreters. Scheme and Lisp are frequently run within interpreters. "stand-alone executable" require HARDWARE. Any programming system requires *something* underneath it unless you are programming in a purely physical system like an automated abacus with mechanical gears that buzz and whirr.
Programming languages are defined by their Turing completeness: can they do things repeatedly, can they assign values to memory locations and perform some basic set of operations (nand works nicely), can they make decisions. Everything else is fluff.
Perl has "fluff" that handles regular expressions very well.
Python (and others) have "fluff" that make networking and database ops easy.
R has "fluff" that makes it terribly convenient to work with data.
Matlab has "fluff" that makes it very easy to do numerical methods programming.
Mathematica has "fluff" that makes it very easy to do symbolic computation.
Each and every one of these, and most well-known languages, with all their warts and beauty marks are Turing complete and are deserving of the term "programming language".
(1) Lisp can be used in a functional fashion, but it is not a "pure" functional language.
(2) Lisp can be optimized to machine detail, just as C is (up to the capabilities of the compilers -- which for most purposes is sufficiently well-done by Lisp compilers). (See the back of Practical Common Lisp by Peter Siebel, I think it is available online).
(3) Some would argue that writing a program in C is the same sort of pre-mature optimization you refer to. Harken back to the idea of C as glorified assembly code. Solve the same program in Lisp (or another "very" high level language). Profile. Optimize the critical sections (algorithm first, then machine specifics -- which, as I mention in point (1) can be done in Lisp). Voila.
Of course, many "very" high level languages allow interfacing to C for speed critical sections. So, you could apply the same process from (3) with Perl, Python, etc.
A better criticism of Lisp is getting your hands on convenient libraries for some common tasks. However, there are good libraries out there.
For the record, I'm a much better, much more experienced C programmer than I am a Lisp coder.
I have a very small mind and must live with it. -- E. Dijkstra