That's the problem. In this era of budget reduction, our scientists are now forced to buy their Quantum Dots off of Ebay.
Unfortunately, not only have many of these dots been defective, following the installation and usage instructions included with the Dot have left many of our top scientists sterile.
It is possible that this is a plot by Al Queida to weaken the population of intellectuals in the US.
Cellular Automata can be used to generate almost perfectly random numbers (much more random than even some of the most tried-and-true methods), but that technique was not being used in the 70's, when this supposedly started.
My guess is that since they describe RNG's as "black boxes", they are using hardware RNG's, which use the fluctuations derived from an apparently random 'natural' process, like electric (resistor noise, by far the most common) and radioactive decay.
But I find it interesting and ironic that each of the events they have talked about predicting in many cases have associated electrical phenomenon!
They even mentioned it in the article. A billion people watching Princess Di's funeral, or 9/11 -- ok, so a billion tv sets around the world turn on, and if your RNG is plugged into the wall . . . is it going to affect it? I dunno, but if it's a resistor-based RNG . . . the OJ Simpson trial, ditto. People are gonna start tuning in before the verdict; this produces, at the very least, an ELECTRICAL EVENT that is likely detectable anywhere on the power grid.
With showing the person slides of pictures, and the random number fluctuations happening prior to the person seeing the picture . . . um . . . is there any electrical machinery plugged into the wall that takes an action to ready/display the next slide? Wouldn't that be funny, now . ..
And, of course, a tsunami produces measurable electrical phenomena as well. I don't know if it produces electrical phenomena in advance, of course, and it would seem that if that was the case we would be able to use it to predict seismic events
I don't know anything about whether fluctuations in resistor/semiconductor-based RNG's can happen as a result of electrical phenomenon, but I think that the fact that the article makes no mention of attempts to screen for electrical interference, to detect correlating electrical/field events, or to isolate the RNG's in some way is a good indicator that these guys aren't trying very hard to play devil's advocate.
And actually, coders have been marginalized for a long time -- I don't think that many non-programmers realize that the amount of time that a programmer spends thinking about his work, and actively working on the problems related to it, is easily on par with that of other creative problem-solvers -- architects, mathematicians, engineers everywhere.
However -- and this is something that almost NOBODY outside of programming/mathematics/compsci realizes -- programming is so very different from almost all of those disciplines (not counting mathematicians, obviously, since nowadays an increasing number are also computer scientists by necessity). Programming ends up requiring a deeper committment because the possibilities are so much greater.
An architect may work his whole life, design thousands of structures, and finally write a book about some of the fundamental principles that the good designs share.
Likewise, a programmer may create a system every bit as complex, and frequently more complex, than the overall complexity of the CAD for a medium-sized office building. However, the good programmer immediately looks for the common elements, and is in effect able to -- because of the radically different nature of programming from most other disciplines -- from that point on, deal with those principles in the abstract. This is something that you can only do in a limited sense with non-programming jobs.
After all, repetition is a part of life, and life experience, but in programming you can solve a problem "once and for all". The only use for experience is, not in having solved a problem before, but in learning how better to understand a problem.
In effect, then, good programmers are never solving the same problems twice, and thus everything they are working on is new to them. If it's not a fundamentally new problem, the effort required is often trivial in a large subset of problems where the architectures exist for a high degree of abstraction (some of the problem areas being GUI programming; toolkits like Glade are still a ways away from providing the kind of abstraction we can enjoy in, say, the persistence layer).
All good programmers are constantly trying to understand problems better, trying to understand methods and techniques better, and most of all, trying to understand themselves better so that they, as humble programmers, can better understand how to use the limited capacity of their skull to accomplish potentially unlimited things.
What this means for managers: if your company hires good programmers, they have the capability to design a solution based on a problem. The more they understand the problem -- all facets of it, including what the user expects to see -- they better the result will be. There literally is a direct connection between how "good" a programmer is -- in terms of problem-solving, not hacking -- and how overall effective and useful he will be, and the quality of his results.
So -- and stop and think about the implications of this -- programming may be one of the few job categories on the planet where regular, continual, honest self-evaluation and training and personal improvement are a job requirement.
I don't think that most programmers need to worry about yoga classes or philosophy classes. All they have to do is continue to elevate their level of understanding, and these improvements come with the territory.
This is what I, and others, mean when we say that we doubt that Design Patterns will catch on with management! Design patterns are there to take the mystery out of abstraction, to take the mystery out of efficiency, to take the mystery out of success! This is the kind of thing that is fairly unique, and doesn't tend to be well-received, let alone become a cornerstone of an industry.
Contrast this with management. As someone who's had to take a managing role in a lot of different contexts, I haven't heard the
Let's not be naïve; obviously, successful programmers -- as is stressed in one of the books I quoted as a reference, Code Complete -- always need to know how to work with others and have a realistic, comprehensive understanding of how the needs of management, and the requirements of the project, work together.
However, it's naive to think that the team of good coders -- and by now it should be obvious that I'm not using a narrow-minded 'creative hacker' definition; I mean good programmers, good architects, good with people, good communicators -- is really better off, in terms of potential, when they have a manager -- even one running interference -- than in an ideal situation where each programmer can know the point of view of the customer, can sit down with the customer and get inside their head and their business and bend their minds to the problem of delivering software that lets their customer take over the world on the one hand, and works within the budget of and accomplishes the goals of their company.
Manifestly, an ideal situation is one where the programmers know the needs of their company -- because they know its state, possibly have some ownership. Where they know the needs of their customer -- really know them inside and out. There is a reason that some of the most successful stories when it comes to programming are those involving companies and teams of very small size. Viaweb (Paul Graham) is an example of an agile product; features were often rolled out within a day of introduction by a competitor.
In the less-than-ideal world that many (but not all:)) of us live in, management is a necessary shield from inefficiencies of a beaurocracy, and more importantly, is possibly the only way that programmers can get their information about the requirements of the system. The burden is laid upon the manager of really communicating effectively, of communicating requirements, of clearly expressing the company's needs and position on a project, of ensuring that programmers have the correct context available with which to successfully approach a problem.
That is a huge burden. And the fact is that most managers of IT professionals do not know how to manage the special case of programmers. The fact that the programmers often have to prod their management, gouge them for any sliver of information that could lead to an actual understanding of the real requirements and goals behind a project -- this fact is not a proof that coders need to know how to "work with" management.
Programmers will often go above and beyond the call of duty to solve the problems of the organization in a very real way -- often, as we have seen in the cases of small, successful, programmer-driven companies, in a real enough way to rocket a company from obscurity. A Manager is not going to do that.
He can, however, try to present a more ideal environment for his problem-solvers to solve problems effectively within. He can communicate ceaselessly, so that he's not excluding what could be data that is crucial to a complete or correct understanding of a problem. He can educate himself by reading the last few chapters of books like Code Complete and Rapid Development (these I picked just because they're on my desk right now; there are plenty others. The Pragmatic Programmer is solid, and there are a good dozen or so more that should be requird reading, including some of Joe Celko's later articles in Intelligent Enterprise, like "The Logic of Failure"). A Manager will likely be surprised -- if he has good coders, he will find that many of them have read all of those books already, and he will be amazed at the amount of practical knowledge they have about the realities of scheduling and organizing software projects. Rapid Development alone . ..
Realistically, most programmers with that kind of an understanding of the issues involved -- and, of course, knowledge of the appropriate principles of abstraction -- will probably ha
That's what I meant when I said "I don't hold out a lot of hope for it".
Rigorous, unflinching, honest examination of one's thought processes and motivations and examination of one's ideas -- in the manner of a good programmer -- seems as though it would get in the way of most "effective management".;)
Those blessed to work in a programming environment with only one or two other coders always enjoy a productivity advantage over our friends in much larger teams.
I honestly think that most of these patterns could be synthesized simply by looking at things that good small teams do. Each of the patterns described seems like a no-brainer that we've likely had some experience with -- but the same harsh criticisms have been levelled by less-than-Humble Programmers against the GoF's Design Patterns: they're window dressing, they're an attempt to claim intellectual real estate that everyone with a brain already uses ..
The critic would be well-served to read The Humble Programmer again; I mean, it's ridiculous that it has taken the time it did for the notion of Design Patterns to come about when Djikstra specifially described the concept in '76.
This book, and it's potential benefits, should be looked at from the same viewpoint that intellectually honest people looked at Design Patterns.
Unfortunately, many bright (but not bright) programmers saw Design Patterns as an attempt to undercut their own intellectual conquests, an attempt to lend mass production to the concepts that they had discovered for themselves, inch by inch. It takes considerable humility and intellectual honesty to benefit from DP's -- programmers are probably one of the lines of work where those two qualities are so strongly stressed (Code Complete, etc).
I would probably buy this book when and if I went independent (likely not within the next five years), but I don't hold out a lot of hope for it for the simple reason that it seems to also require intellectual honesty, and humility.
Thank heavens, the last 2 jobs I've been at shared the view that multiple monitors -- or screen real estate in general -- were a necessity, not a luxury.
At my first job it was a fair-to-middlin' double monitor setup. It rocked for coding, obviously, particularly since we were dealing with the most obnoxious environment for coding: ColdFusion/ASP.:( To effectively and cleanly debug our code, we had to go with a debug layer that we could turn on, and encapsulate tests and their results on each page. This would have been madness on a single monitor.
With my new job (where I get to work from home) we took a different tack. I also have to be mobile -- so we went with a desktop replacement laptop with a 1920x1200 screen.
I have to mention that this would not be for everyone, not by a long shot. It takes some getting used to, and you need to have good eyes to begin with -- so that it will take longer for the laptop to destroy them -- but I've ended up actually preferring it! Here's why:
The windowed environment exists for a reason; the overlapping windows make it easy to switch between apps; very intuitive to just move a window out of the way and switch to another one for a little while. Everyone but Xerox knows that, but how often are we taking advantage of it on single-monitor, or even multimon with limited resolution? Stop and think about even multiple monitors that are constrained to, say, 1280x1024. How many times are you essentially constraining yourself to an SDI (Single Document Interface) instead of a potentially more information-dense MDI? BUT YOU HAVE TO -- it isn't worth it to try and navigate Visual Studio or Eclipse at an effective resolution of less than 12280x1024 (via resizing) if you have a job where you have to deal with many different levels of an application simultaneously (make changes to the database/to persistence mappings/to Business Service Objects/to UI/to XSL). You need every bit of screen real estate you can grab; in Visual Studio, if I maximize it, I can actually cleanly use three sets of tabstrips -- three sets of SDI viewpanes, but with the names of the other documents clearly accessible via the tabs.
But I don't maximize anything anymore, unless I'm going to have a 20-hour day within the confines of a single app; generally, I do all of my work with my windows floating. There's enough screen real estate to do it now, and make sense of the windows!
It's really ironic, in a way. Essentially, the philosophy here is "Give us more screen real estate, so we can use it sloppily, and not be hassled". Give us more, so we can waste it! But just like Beer And Hooker Thursdays and Casual Fridays (you guys have those in offices, right?), what doubtless seems to a penny-pinching scrooge like an excess to be trimmed ends up resulting in an increase in productivity that would be hard to deny.
For home, I'm trying to save and snap up a pair of Dell 2100FP's -- they're going for $450 on ebay; 3200x1200, here I come . . .
Obviously, when it comes to issues like child pornography and child consent, we come to issues that are very much subjective.
However, we have to examine these issues, not from some idealistic "the world should be like X" standpoint, but -- as responsible citizens -- from the standpoint of how a democratic republic can responsibly enact laws to protect those with little to no sexual experience from being outright exploited, bullied, cajoled or otherwise manipulated into sex, *without* trampling on the beliefs of cultures, religions and the individual.
You mention 'maturity'. What is 'maturity'? You say that you would have no problem having sex with a minor if you found one you were interested in and figured she was too.
There is a reason that we have laws of the nature that we do. Granted, a lot of those reasons are based on superstition, hearsay, 'folk wisdom', and the like, but the one thing they do an excellent job of is protecting the rights of children until they reach an age where they are probably much more capable of deciding whether or not to sleep with *you*.
Look -- I'm no mysogynist, but the fact of the matter is that due to societal pressures and the sex/self-worth culture that we have bred today, there are a LOT of girls in the 15-to-17-year-old age range that have daddy issues, serious self-worth issues, and are otherwise way more likely to be vulnerable to a predator such as yourself.
If you find a minor and you figure that she's "interested" in you -- and you're older than, say, 20 -- then that's probably a sign that
a) she is fucked in the head, and you would be taking advantage of her. On average, what is more likely -- that a girl somehow manages to overcome all of the pressures of being a teenaged girl, escape from the worldview being pressed on her, and happens to INDEPENDENTLY arrive at a state of emotional, mental and sexual maturity where she honestly feels that she could enter into a sexual relationship with an older man without harm to herself, or that she's just another girl who is fucked in the head during her teenaged years and needs a few more years to cool off?
or, the other thing that this would indicate:
b) *you* are fucked in the head. You'd be projecting your latent desires (since as you said you never screwed a minor when you were a minor) on some girl who does little more than act like a girl, and you rationalize away serious sexual abuse.
It also means that the remotest hope of seeing "Se7en: The We Are Killing Off Police Academy One Stomach-Turning Person At A Time" would go out the window.
The hope of at some point being able to see the cast of Police Academy die horrible deaths is sometimes all that keeps me going.
The reaction of people like your mother is a very, very visceral one -- and it's visceral because AT THE TIME, you really WERE stupid! You were a retard.
I was in exactly your shoes, and I agree totally. I got around it by (thanks to my voracious reading) being more informed than my mom, who was an asolutely amazing airhead-savant artist who painted naked chicks on a 16-foot canvas and hung it behind our huge living room window on the one hand, and on the other hand sent me to my room because the word "vagina" is just inherently bad to say if you're a kid. She was so cheerful about it, so good-heartedly oblivious, that I never begrudged her trying to shield me from violent video games. Or trying to 'artistically' discolor my jeans with bleach when I was in 5th grade, to make me cool. Or wrapping my sack-lunch sandwich in a Panty Hose bag (thank god the whole thing was in a brown paper bag . . . gah).
So, I hear you. I was smart enough at age 10 to acquire whatever media and video games I wanted, without my mom being any the wiser, which worked out surprisingly well. And I turned out to be a really smart, well-adjusted dude.
But the legitimate concern that really DOES exist is that in between the time that you're 5 and the time that you're about 15, you can be a total effing lunatic retard.
A lot of the kids I know whose parents let them have all of the video games they wanted ("Doom 2", ooooh, "GoldenEye", oooooh, Mortal Kombat, "oooooh") and watch whatever martial arts movies they wanted -- these guys didn't end up being bad adults, but they were absolutely retarded as young adults, and a menace to society. I knew this one chunk/fat white kid that took his social cues from what he saw of urban culture as depicted by video games, so he would say things like "G money" and have a serious -- EXTREMELY serious -- expression on his face. Also, he one time was joking with a girl and when she dissed him, brought his palms down to the side of his crotch, said "Suck it bitch!", and they threw his hands out, flyaway style. He later received one of the most beautiful beatings I have ever seen delivered, at the hands of that girl's boyfriend.
And the miniature retards are even worse. GTA3 would actually scare me more because of the bad driving habits it encourages, the unrealistic expectations it creates, than I am about some hypothetical offspring of mine trying to beat a hooker to death and stealing her money in some dark alley.
Video games, even violent and explicit ones, don't have a twentieth the long-term negative effect that television and movies have. Shit, put the effects of those two together, and you've got the explanation for why we have so many insecure slutty girls with daddy issues.:P
So it's not that it will make you a worse person in the long run, it's that it can make you even more of a dangerous retard when you're going through the time in life where you're practically Timmah with an AK.
There is such a huge moral difference between a game that has, for instance, an unavoidable in-game cutscene or scripted sequence that is terribly violent, or that offers such as part of the story -- and a game that just models a world, and you can CHOOSE to pick up a gun and shoot someone.
After a while, the GTA-esque games will have such advanced simulations for every part of the gameplay experience -- better vehicle physics, better AI, better "flocking" crowd behavior, etc -- because it becomes physically impossible to create all of the content by hand. We saw this is GTA3 already; mix-and-match, swappable body components to create random citizens, etc.
Already, easily half of the time you spend playing GTA 3 -- maybe much more than half -- is spent interacting independently with the simulations entirely apart from the presented story of the game.
Thus, it is really unfair to judge GTA-esque games on anything other than the material that they explicitly *present* to you. The fact that their physics subsystems may eventually make it possible to hit someone at 120mph and actually see their limbs separate from their body (soft-body physics to display the rippling and approximate tearing, but with much simpler joint systems in place that build on already existing ragdoll code) -- this should not weigh in the rating one way or another. Only what the game explicitly presents. Including perhaps the default violence the game depicts as you play it.
After all, what the fuck were you doing driving 120mph?
I would love to see GTA take a completely new turn, take a page from Postal (which sucked) and put a "job" into your next game. The idea being -- hey, criminals exist, and you COULD get involved with organized crime. That's always out there, and we've written plausible dialogue and a gripping, gritty story. But that is NOT WHAT OUR GAME IS ABOUT. Our game is a life simulator, and we never trap the player into things -- we even give him moments of revelation where he makes up his mind to just walk away, go back to his day job, and run errands for his genuinely loving girlfriend. She will send you to get milk, ask you to take her for a drive, and so forth. Every day, you drive to work, and we have an engaging "Worktris" minigame to simulate exciting cubicle life, where all the blocks are the same size and color: plain!
Outside is a dangerous world -- guns, corruption, and cocaine just waiting to be snorted off of the clitoris of a Cuban hooker -- and that is TERRIBLE and exciting. Our game is about the American Dream of a normal life, and we strongly urge our players at every point in the video game NOT TO CONTINUE to do what they are doing! There are heartfelt cutscenes where your family members cry and ask you to please step away from the darkness, to return to the joys of job and family!
God . . . God . . . . what beautiful, wonderful, tearfully poigniant irony! I can even see the game cover; it would look like a Christian Youth Rock Band poster, with a young man in wholesome khakis and a polo shirt, with a plain wholesome pregnant wife in the background wearing a plain wholesome unappealing Adidas sweatsuit . . . and in the shadows of the lower right-hand side, the dark reminders of the depths of depravity and sin that lie in wait for all of us!
GRAND THEFT AUTO: SAN SUNSHINE (San Diego) The Flight From Temptation
My plans are similar, but the games I already pwn I will pawn, so I will have the money to pwn whatever games are worth pwning and pawn the games not worth pwning (but worth pawning).
Also, I will likely wait for the early-pwners to pawn their posessions at the pawnshop so I can pwn what they pawned.
"It was the lead item on the government's daily threat matrix one day last April. Don Emilio Fulci described by an FBI tipster as a reclusive but evil millionaire, had formed a terrorist group that was planning chemical attacks against London and Washington, D.C. That day even FBI director Robert Mueller was briefed on the Fulci matter. But as the day went on without incident, a White House staffer had a brainstorm: He Googled Fulci. His findings: Fulci is the crime boss in the popular video game Headhunter. "Stand down," came the order from embarrassed national security types."
That was from the article . .. You illiterate dipshit.
I think that the finely engineered elegance that was the Yahoo! Stores application (still is, but I'd remove the "finely" qualifier, out of lisp snobbery) would have something to say about your "1 example" statement.
On the other hand, I think that it would also have something to say about the trumpeting of SalesForce.com. Sure, it's a great web app. It's not the first one, and it won't be the last.
I just wanted to say that if I had Mod Points, I'd mod that Underrated. But for a different reason.
"Not to say at all that $20/hr would be bad, just by comparison. I'm actually quite happy with my wage."
Myself -- I'm making, quite literally, $10 per hour -- and coding at a very high level, database-to-business objects-to-presentation level, and am even occasionally (read: when I have the time) asked to write and create visual content for the end-user documentation. I only have a 2-year AS degree, from a small technical college. (I got it when I was 18, but it's still just an A.S.)
I'm surprisingly happy with this job, despite the fact that when I work long enough hours, my actual hourly wage has gotten as low as $7.50. I think that the reason for it is two-fold:
1) I live in an area with a fairly low cost of living, in semi-rural Minnesota. More importantly, I have a lot of friends and family in the area -- and it's not that easy of an area to find a job in! 2) Because I am such a good value, I am afforded a lot more freedom in the way that I do my job, and in how I get to solve problems. This is a must, particularly when you occasionally have to work with procedural programmers (who are your superiors) that still feel that OOP (or functional programming, yadda yadda -- no elitism) is not "real work".
And I should probably add to that list a third reason:
3) I love programming. I respect programming as a real engineering profession, not as something that you can just *do*. Even with visual development tools:P. I am amazed by it as a science, enthralled with the study of complexity in general. And I am enormously satisfied by solving problems the *right* way; this is how I imagine most other programmers feel about their jobs, but I've met a few for whom this is very much not the case.
When these sort of things work out in your favor, and you aren't tied down, and the work that you're doing is actually more satisfying the harder you work on it -- then as far as I'm concerned, you've got it made. Regardless of what you're making per hour.
Microsoft actually does have a pretty good hiring process, if a little brutal. But a lot of people are saying things like "well, at least somebody recognizes that exceptional people are worth it" -- I don't think that these examples are exactly displaying that. Microsoft has been hiring relatively exceptional people for a long time now; the only difference is that these people already have multinational acclaim in their profession.
Just thought I'd point that out -- this is a good move and everything, but hiring people that are already well-known in their field is neither A) necessarily good news for those of you stumping for MS jobs, or B) particularly cost-effective for Microsoft.
On a side note, the REAL message that this is sending to professionals around the world is this: Hurt Microsoft And Get Hired. Whether a lawyer, programmer, politician or standards' body member -- I encourage all exceptional individuals to put all of their skill towards the destruction of Microsoft. They like it! Really!
Heh . . . reading stuff like this is what makes me really glad that I'm on a smaller team, making something new, mostly under the corporate (internal/external user) radar screen. If anybody knew that the most time-consuming aspect of the hoary old web-based data entry/import system could be replaced with the new system in a matter of 2 weeks if we were forced to, we would be screwed -- managers of other areas would require us to make it available before the data model (and all of the code necessary to make optimal use of it) is perfected.
I've noticed a lot of the really insightful (heh, and not just Insightful insightful) posts here have mentioned that utility of xsl in these situations; I absolutely cannot agree more. XSL is manna from heaven to app/db (it's a 3-man team, we're everything) designers. Moreover, even in worst-case scenarios, it will end up being cheaper to have the designers (or someone else with intimate knowledge of the product) write up some well-illustrated technical docs explaining how to format your Excel docs for import -- and deal with the sort of pissy, ignorant rants from the less grateful users -- than it will be to provide short-term gratification to a single user (no matter how vociferous) and spend your days and nights dealing with the consequences.
This is just silly, it's been days after the story was posted -- but I'm gonna' respond anyway.
Nobody said anything about being "the hottest shit since sliced bagels". I don't care whether I'm better, worse, smarter or stupider than the other people on a team.
But when the work that I do -- which, as a conscientious student of computer programming and the development processes behind its real-world application, I KNOW to be of very high quality -- is disregarded or dismissed, I get pissed.
When the very things that make the work I do powerful (and difficult to explain to uninitiated) are used as weapons against me at every opportunity, to try and demonstrate that "see, he's doing crazy, over-complicated, non-real-world shit, instead of actual work!", I get pissed.
When other programmers use Fear, Uncertainty, Doubt tactics as a tool to make me look foolish, for whatever their own personal agendas are -- I try not to think about that, because it feels very Dilbert -- when ALL I WANT TO DO is to do my job well, I get pissed.
I don't need some anonymous fucker trying to spoil my rant here.:) The bottom line is that I'm getting paid $10 per hour to code at a higher level than anyone on the team, I'm OK WITH THAT, and that I object to people trying to fuck with my ability to do my work (by attacking the NECESSARY abstraction in my code, and thus making my job incredibly stressful because it undermines management's confidence in my ability to get work done) to make themselves look better, look more necessary, look more authoritative, or FEEL better.
I don't need to back down on a god-damned thing. I don't care about whatever dick-measuring contests the AC obviously does. All I care about is that I be allowed to do my work -- which I happen to love, but that's a side point.
I mean, holy shit. It's not easy to find people that love their jobs -- for MULTIPLES of my current salary. I know damned well that I'm a good value, and that gives me the ability to flip this bird at the people that try to piss in my Cheerios(tm)
Everyone needs to eat. And I sympathize with the pressures and responsibilities that a family must bring with it.
But I'm just trying to do a good job, and not even asking for outspoken appreciation by any means -- and I'm getting shit like this AC post -- in fact, remarkably like this AC post -- telling me that, in effect, anything I do that other people on the team don't appreciate, understand or approve of is entirely wasted effort. I work long hours, so I've been switched to a flat '40 hours per week' on my timecard, essentially salaried -- for $18k a year before taxes. My actual hourly wage is somewhere around $6.80 before taxes. I work weekends and on my spare time to learn.
I'm gonna go out on a limb and say that even OFFSHORE FUCKING OUTOURCING can't provide a better value than me. And all I ask in return is that I be ALLOWED to code, ALLOWED to write good code that won't break down on me tomorrow -- for shit on the scale we're working, that means you had better damned well be applying abstraction, OOP etc. Or else be a functional structures genius like the guys behind Orbitz . ..
Anyone want to explain to this AC why, for instance, OOP and abstraction are more than useless concepts and buzzwords that get in the way of 'real work'?
I'm only 20 years old, but I'm a very fast learner, and I am very conscientious about the quality of my code. Moreover, since I work on a very small team, I end up contributing to every single step in the process, from db/schema design to semi-advanced SQL coding (nested sets for hierarchies instead of recursion-based methods, for example) to object model planning and data/business/presentation separation planning -- and, of course, every phase of the actual programming, core business objects out to GUI code, in a variety of languages.
And at every step, I have done my best to continue learning, to continue bettering my understanding of what is and is not good code, of the underlying principles of programming and their application -- I've learned the Mathematica programming language and Lisp/Scheme and the whole functional programming paradigm in general, which was my most recent mindjob. In fact, I learned object-oriented programming when I was 15, at a very capable little technical college, and over time have come to realize that it is a poor fit for certain types of problems. I make extensive use of MIT's Open Courseware program (http://ocw.mit.edu/), and actually went so far as to back up the contents of their CS offerings on my hard drive.
Meanwhile, not everyone on our small team is as passionate about programming, or even as motivated to learn -- some members of the team did not choose programming as a profession, and I regularly get yelled at for using words like "abstraction". Or "object-oriented" -- one team member, senior to me, had never heard of OOP, had no idea what it was. Or even "object".
Still -- I never want to be a manager. I never want to be a team lead. I just want to program, ideally for more money and eventually part-time, making enough money to support a family I hope to have. That's my goal for my whole life; I have more important things to do than chase position my whole life. So I can work under any conditions that let me code.
My code is of increasingly higher quality, and as the team is small I have a lot of "stuff" to get done. I have a lot of features I have to implement, and one of the benefits of this small team is that everyone on the team knows the requirements of the system better than the customer; each of us understands their business better than any of them do. So we are all charged with covering a lot of ground, we have a structure in place that lets us work relatively independently on the areas we have to work on -- and I am finally able to produce high-quality code in a new environment, making no concessions to a horribly flawed preexisting framework.
And I am paying the same price you mention!
The other coders, the ones that don't even care about programming, the ones who are coding because it's a job and they'd rather be doing pure design work -- they code without regard to good practice, apparently with blinders on! I recently started on a new section, and in 4 days I had a beautiful object model, beautifully abstracted.
The project requires that I work under.NET, which I had a couple of weeks to train myself on -- no sleep! -- and I am pushing it to its limits. Each and every object contains a representation of its schema and can be populated from XML (in fact, I can populate the entire object hierarchy with a single XML string) -- this is implemented cleanly, and without relying on the (slow) XML serialization methods that most people normally associate with.NET. I can populate the entire object hierarchy in a single pass through a single XML string, fully or partially or at any level; the xml is ultra-simple and objects can publish their schema for runtime use/discovery if necessary. All of the objects provide implementations for ALL of the.NET binding interfaces, so I have "Presentation" abstraction that allows for rapid GUI development; I have extremely clean data abstraction through xml and some helper c
Job 26:7 -- "He suspends the earth over nothing"; "God hangeth the earth upon nothing."
BIBLICAL REFERENCE DISCLAIMER: Blahblahblah, I'm not a creationist, I've read lots of translations of the Bible AND english translations of Kuran and Bhagavad-Gita and I think that religion should be a personal thing and I don't think that the earth was made in 6 days and I don't use religion or god or satan as mythological boogiemen or scapegoats for my problems blah blah blah . ..
Anyhoo. Just thought I'd point out that (in support of your point) since so much of belief is dependent on personal interpretation of texts, it's not impossible by any means to devise an interpretation of the bible that requires direct contradiction of laws of science or known reality.
No offense to all of the people who designed the Comanche and are now surfing Slashdot in their free time -- but I wouldn't compare Open Source software to the Comanche. Active Directory, Outlook, SCO Unix, et al -- these are the Comanches of the world. They have connections, and we can't stop SOMEBODY from buying and (trying) to use them.
That's the problem. In this era of budget reduction, our scientists are now forced to buy their Quantum Dots off of Ebay.
Unfortunately, not only have many of these dots been defective, following the installation and usage instructions included with the Dot have left many of our top scientists sterile.
It is possible that this is a plot by Al Queida to weaken the population of intellectuals in the US.
Cellular Automata can be used to generate almost perfectly random numbers (much more random than even some of the most tried-and-true methods), but that technique was not being used in the 70's, when this supposedly started.
.
My guess is that since they describe RNG's as "black boxes", they are using hardware RNG's, which use the fluctuations derived from an apparently random 'natural' process, like electric (resistor noise, by far the most common) and radioactive decay.
But I find it interesting and ironic that each of the events they have talked about predicting in many cases have associated electrical phenomenon!
They even mentioned it in the article. A billion people watching Princess Di's funeral, or 9/11 -- ok, so a billion tv sets around the world turn on, and if your RNG is plugged into the wall . . . is it going to affect it? I dunno, but if it's a resistor-based RNG . . . the OJ Simpson trial, ditto. People are gonna start tuning in before the verdict; this produces, at the very least, an ELECTRICAL EVENT that is likely detectable anywhere on the power grid.
With showing the person slides of pictures, and the random number fluctuations happening prior to the person seeing the picture . . . um . . . is there any electrical machinery plugged into the wall that takes an action to ready/display the next slide? Wouldn't that be funny, now . .
And, of course, a tsunami produces measurable electrical phenomena as well. I don't know if it produces electrical phenomena in advance, of course, and it would seem that if that was the case we would be able to use it to predict seismic events
I don't know anything about whether fluctuations in resistor/semiconductor-based RNG's can happen as a result of electrical phenomenon, but I think that the fact that the article makes no mention of attempts to screen for electrical interference, to detect correlating electrical/field events, or to isolate the RNG's in some way is a good indicator that these guys aren't trying very hard to play devil's advocate.
I couldn't agree more.
At its core, that is the problem.
And actually, coders have been marginalized for a long time -- I don't think that many non-programmers realize that the amount of time that a programmer spends thinking about his work, and actively working on the problems related to it, is easily on par with that of other creative problem-solvers -- architects, mathematicians, engineers everywhere.
However -- and this is something that almost NOBODY outside of programming/mathematics/compsci realizes -- programming is so very different from almost all of those disciplines (not counting mathematicians, obviously, since nowadays an increasing number are also computer scientists by necessity). Programming ends up requiring a deeper committment because the possibilities are so much greater.
An architect may work his whole life, design thousands of structures, and finally write a book about some of the fundamental principles that the good designs share.
Likewise, a programmer may create a system every bit as complex, and frequently more complex, than the overall complexity of the CAD for a medium-sized office building. However, the good programmer immediately looks for the common elements, and is in effect able to -- because of the radically different nature of programming from most other disciplines -- from that point on, deal with those principles in the abstract. This is something that you can only do in a limited sense with non-programming jobs.
After all, repetition is a part of life, and life experience, but in programming you can solve a problem "once and for all". The only use for experience is, not in having solved a problem before, but in learning how better to understand a problem.
In effect, then, good programmers are never solving the same problems twice, and thus everything they are working on is new to them. If it's not a fundamentally new problem, the effort required is often trivial in a large subset of problems where the architectures exist for a high degree of abstraction (some of the problem areas being GUI programming; toolkits like Glade are still a ways away from providing the kind of abstraction we can enjoy in, say, the persistence layer).
All good programmers are constantly trying to understand problems better, trying to understand methods and techniques better, and most of all, trying to understand themselves better so that they, as humble programmers, can better understand how to use the limited capacity of their skull to accomplish potentially unlimited things.
What this means for managers: if your company hires good programmers, they have the capability to design a solution based on a problem. The more they understand the problem -- all facets of it, including what the user expects to see -- they better the result will be. There literally is a direct connection between how "good" a programmer is -- in terms of problem-solving, not hacking -- and how overall effective and useful he will be, and the quality of his results.
So -- and stop and think about the implications of this -- programming may be one of the few job categories on the planet where regular, continual, honest self-evaluation and training and personal improvement are a job requirement.
I don't think that most programmers need to worry about yoga classes or philosophy classes. All they have to do is continue to elevate their level of understanding, and these improvements come with the territory.
This is what I, and others, mean when we say that we doubt that Design Patterns will catch on with management! Design patterns are there to take the mystery out of abstraction, to take the mystery out of efficiency, to take the mystery out of success! This is the kind of thing that is fairly unique, and doesn't tend to be well-received, let alone become a cornerstone of an industry.
Contrast this with management. As someone who's had to take a managing role in a lot of different contexts, I haven't heard the
Let's not be naïve; obviously, successful programmers -- as is stressed in one of the books I quoted as a reference, Code Complete -- always need to know how to work with others and have a realistic, comprehensive understanding of how the needs of management, and the requirements of the project, work together.
:)) of us live in, management is a necessary shield from inefficiencies of a beaurocracy, and more importantly, is possibly the only way that programmers can get their information about the requirements of the system. The burden is laid upon the manager of really communicating effectively, of communicating requirements, of clearly expressing the company's needs and position on a project, of ensuring that programmers have the correct context available with which to successfully approach a problem.
.
However, it's naive to think that the team of good coders -- and by now it should be obvious that I'm not using a narrow-minded 'creative hacker' definition; I mean good programmers, good architects, good with people, good communicators -- is really better off, in terms of potential, when they have a manager -- even one running interference -- than in an ideal situation where each programmer can know the point of view of the customer, can sit down with the customer and get inside their head and their business and bend their minds to the problem of delivering software that lets their customer take over the world on the one hand, and works within the budget of and accomplishes the goals of their company.
Manifestly, an ideal situation is one where the programmers know the needs of their company -- because they know its state, possibly have some ownership. Where they know the needs of their customer -- really know them inside and out. There is a reason that some of the most successful stories when it comes to programming are those involving companies and teams of very small size. Viaweb (Paul Graham) is an example of an agile product; features were often rolled out within a day of introduction by a competitor.
In the less-than-ideal world that many (but not all
That is a huge burden. And the fact is that most managers of IT professionals do not know how to manage the special case of programmers. The fact that the programmers often have to prod their management, gouge them for any sliver of information that could lead to an actual understanding of the real requirements and goals behind a project -- this fact is not a proof that coders need to know how to "work with" management.
Programmers will often go above and beyond the call of duty to solve the problems of the organization in a very real way -- often, as we have seen in the cases of small, successful, programmer-driven companies, in a real enough way to rocket a company from obscurity. A Manager is not going to do that.
He can, however, try to present a more ideal environment for his problem-solvers to solve problems effectively within. He can communicate ceaselessly, so that he's not excluding what could be data that is crucial to a complete or correct understanding of a problem. He can educate himself by reading the last few chapters of books like Code Complete and Rapid Development (these I picked just because they're on my desk right now; there are plenty others. The Pragmatic Programmer is solid, and there are a good dozen or so more that should be requird reading, including some of Joe Celko's later articles in Intelligent Enterprise, like "The Logic of Failure"). A Manager will likely be surprised -- if he has good coders, he will find that many of them have read all of those books already, and he will be amazed at the amount of practical knowledge they have about the realities of scheduling and organizing software projects. Rapid Development alone . .
Realistically, most programmers with that kind of an understanding of the issues involved -- and, of course, knowledge of the appropriate principles of abstraction -- will probably ha
That's what I meant when I said "I don't hold out a lot of hope for it".
;)
Rigorous, unflinching, honest examination of one's thought processes and motivations and examination of one's ideas -- in the manner of a good programmer -- seems as though it would get in the way of most "effective management".
Those blessed to work in a programming environment with only one or two other coders always enjoy a productivity advantage over our friends in much larger teams.
.
I honestly think that most of these patterns could be synthesized simply by looking at things that good small teams do. Each of the patterns described seems like a no-brainer that we've likely had some experience with -- but the same harsh criticisms have been levelled by less-than-Humble Programmers against the GoF's Design Patterns: they're window dressing, they're an attempt to claim intellectual real estate that everyone with a brain already uses .
The critic would be well-served to read The Humble Programmer again; I mean, it's ridiculous that it has taken the time it did for the notion of Design Patterns to come about when Djikstra specifially described the concept in '76.
This book, and it's potential benefits, should be looked at from the same viewpoint that intellectually honest people looked at Design Patterns.
Unfortunately, many bright (but not bright) programmers saw Design Patterns as an attempt to undercut their own intellectual conquests, an attempt to lend mass production to the concepts that they had discovered for themselves, inch by inch. It takes considerable humility and intellectual honesty to benefit from DP's -- programmers are probably one of the lines of work where those two qualities are so strongly stressed (Code Complete, etc).
I would probably buy this book when and if I went independent (likely not within the next five years), but I don't hold out a lot of hope for it for the simple reason that it seems to also require intellectual honesty, and humility.
In MANAGEMENT!
Thank heavens, the last 2 jobs I've been at shared the view that multiple monitors -- or screen real estate in general -- were a necessity, not a luxury.
:( To effectively and cleanly debug our code, we had to go with a debug layer that we could turn on, and encapsulate tests and their results on each page. This would have been madness on a single monitor.
At my first job it was a fair-to-middlin' double monitor setup. It rocked for coding, obviously, particularly since we were dealing with the most obnoxious environment for coding: ColdFusion/ASP.
With my new job (where I get to work from home) we took a different tack. I also have to be mobile -- so we went with a desktop replacement laptop with a 1920x1200 screen.
I have to mention that this would not be for everyone, not by a long shot. It takes some getting used to, and you need to have good eyes to begin with -- so that it will take longer for the laptop to destroy them -- but I've ended up actually preferring it! Here's why:
The windowed environment exists for a reason; the overlapping windows make it easy to switch between apps; very intuitive to just move a window out of the way and switch to another one for a little while. Everyone but Xerox knows that, but how often are we taking advantage of it on single-monitor, or even multimon with limited resolution? Stop and think about even multiple monitors that are constrained to, say, 1280x1024. How many times are you essentially constraining yourself to an SDI (Single Document Interface) instead of a potentially more information-dense MDI? BUT YOU HAVE TO -- it isn't worth it to try and navigate Visual Studio or Eclipse at an effective resolution of less than 12280x1024 (via resizing) if you have a job where you have to deal with many different levels of an application simultaneously (make changes to the database/to persistence mappings/to Business Service Objects/to UI/to XSL). You need every bit of screen real estate you can grab; in Visual Studio, if I maximize it, I can actually cleanly use three sets of tabstrips -- three sets of SDI viewpanes, but with the names of the other documents clearly accessible via the tabs.
But I don't maximize anything anymore, unless I'm going to have a 20-hour day within the confines of a single app; generally, I do all of my work with my windows floating. There's enough screen real estate to do it now, and make sense of the windows!
It's really ironic, in a way. Essentially, the philosophy here is "Give us more screen real estate, so we can use it sloppily, and not be hassled". Give us more, so we can waste it! But just like Beer And Hooker Thursdays and Casual Fridays (you guys have those in offices, right?), what doubtless seems to a penny-pinching scrooge like an excess to be trimmed ends up resulting in an increase in productivity that would be hard to deny.
For home, I'm trying to save and snap up a pair of Dell 2100FP's -- they're going for $450 on ebay; 3200x1200, here I come . . .
Obviously, when it comes to issues like child pornography and child consent, we come to issues that are very much subjective.
However, we have to examine these issues, not from some idealistic "the world should be like X" standpoint, but -- as responsible citizens -- from the standpoint of how a democratic republic can responsibly enact laws to protect those with little to no sexual experience from being outright exploited, bullied, cajoled or otherwise manipulated into sex, *without* trampling on the beliefs of cultures, religions and the individual.
You mention 'maturity'. What is 'maturity'? You say that you would have no problem having sex with a minor if you found one you were interested in and figured she was too.
There is a reason that we have laws of the nature that we do. Granted, a lot of those reasons are based on superstition, hearsay, 'folk wisdom', and the like, but the one thing they do an excellent job of is protecting the rights of children until they reach an age where they are probably much more capable of deciding whether or not to sleep with *you*.
Look -- I'm no mysogynist, but the fact of the matter is that due to societal pressures and the sex/self-worth culture that we have bred today, there are a LOT of girls in the 15-to-17-year-old age range that have daddy issues, serious self-worth issues, and are otherwise way more likely to be vulnerable to a predator such as yourself.
If you find a minor and you figure that she's "interested" in you -- and you're older than, say, 20 -- then that's probably a sign that
a) she is fucked in the head, and you would be taking advantage of her. On average, what is more likely -- that a girl somehow manages to overcome all of the pressures of being a teenaged girl, escape from the worldview being pressed on her, and happens to INDEPENDENTLY arrive at a state of emotional, mental and sexual maturity where she honestly feels that she could enter into a sexual relationship with an older man without harm to herself, or that she's just another girl who is fucked in the head during her teenaged years and needs a few more years to cool off?
or, the other thing that this would indicate:
b) *you* are fucked in the head. You'd be projecting your latent desires (since as you said you never screwed a minor when you were a minor) on some girl who does little more than act like a girl, and you rationalize away serious sexual abuse.
It also means that the remotest hope of seeing "Se7en: The We Are Killing Off Police Academy One Stomach-Turning Person At A Time" would go out the window.
The hope of at some point being able to see the cast of Police Academy die horrible deaths is sometimes all that keeps me going.
I could not agree more.
:P
The reaction of people like your mother is a very, very visceral one -- and it's visceral because AT THE TIME, you really WERE stupid! You were a retard.
I was in exactly your shoes, and I agree totally. I got around it by (thanks to my voracious reading) being more informed than my mom, who was an asolutely amazing airhead-savant artist who painted naked chicks on a 16-foot canvas and hung it behind our huge living room window on the one hand, and on the other hand sent me to my room because the word "vagina" is just inherently bad to say if you're a kid. She was so cheerful about it, so good-heartedly oblivious, that I never begrudged her trying to shield me from violent video games. Or trying to 'artistically' discolor my jeans with bleach when I was in 5th grade, to make me cool. Or wrapping my sack-lunch sandwich in a Panty Hose bag (thank god the whole thing was in a brown paper bag . . . gah).
So, I hear you. I was smart enough at age 10 to acquire whatever media and video games I wanted, without my mom being any the wiser, which worked out surprisingly well. And I turned out to be a really smart, well-adjusted dude.
But the legitimate concern that really DOES exist is that in between the time that you're 5 and the time that you're about 15, you can be a total effing lunatic retard.
A lot of the kids I know whose parents let them have all of the video games they wanted ("Doom 2", ooooh, "GoldenEye", oooooh, Mortal Kombat, "oooooh") and watch whatever martial arts movies they wanted -- these guys didn't end up being bad adults, but they were absolutely retarded as young adults, and a menace to society. I knew this one chunk/fat white kid that took his social cues from what he saw of urban culture as depicted by video games, so he would say things like "G money" and have a serious -- EXTREMELY serious -- expression on his face. Also, he one time was joking with a girl and when she dissed him, brought his palms down to the side of his crotch, said "Suck it bitch!", and they threw his hands out, flyaway style. He later received one of the most beautiful beatings I have ever seen delivered, at the hands of that girl's boyfriend.
And the miniature retards are even worse. GTA3 would actually scare me more because of the bad driving habits it encourages, the unrealistic expectations it creates, than I am about some hypothetical offspring of mine trying to beat a hooker to death and stealing her money in some dark alley.
Video games, even violent and explicit ones, don't have a twentieth the long-term negative effect that television and movies have. Shit, put the effects of those two together, and you've got the explanation for why we have so many insecure slutty girls with daddy issues.
So it's not that it will make you a worse person in the long run, it's that it can make you even more of a dangerous retard when you're going through the time in life where you're practically Timmah with an AK.
There is such a huge moral difference between a game that has, for instance, an unavoidable in-game cutscene or scripted sequence that is terribly violent, or that offers such as part of the story -- and a game that just models a world, and you can CHOOSE to pick up a gun and shoot someone.
After a while, the GTA-esque games will have such advanced simulations for every part of the gameplay experience -- better vehicle physics, better AI, better "flocking" crowd behavior, etc -- because it becomes physically impossible to create all of the content by hand. We saw this is GTA3 already; mix-and-match, swappable body components to create random citizens, etc.
Already, easily half of the time you spend playing GTA 3 -- maybe much more than half -- is spent interacting independently with the simulations entirely apart from the presented story of the game.
Thus, it is really unfair to judge GTA-esque games on anything other than the material that they explicitly *present* to you. The fact that their physics subsystems may eventually make it possible to hit someone at 120mph and actually see their limbs separate from their body (soft-body physics to display the rippling and approximate tearing, but with much simpler joint systems in place that build on already existing ragdoll code) -- this should not weigh in the rating one way or another. Only what the game explicitly presents. Including perhaps the default violence the game depicts as you play it.
After all, what the fuck were you doing driving 120mph?
I would love to see GTA take a completely new turn, take a page from Postal (which sucked) and put a "job" into your next game. The idea being -- hey, criminals exist, and you COULD get involved with organized crime. That's always out there, and we've written plausible dialogue and a gripping, gritty story. But that is NOT WHAT OUR GAME IS ABOUT. Our game is a life simulator, and we never trap the player into things -- we even give him moments of revelation where he makes up his mind to just walk away, go back to his day job, and run errands for his genuinely loving girlfriend. She will send you to get milk, ask you to take her for a drive, and so forth. Every day, you drive to work, and we have an engaging "Worktris" minigame to simulate exciting cubicle life, where all the blocks are the same size and color: plain!
Outside is a dangerous world -- guns, corruption, and cocaine just waiting to be snorted off of the clitoris of a Cuban hooker -- and that is TERRIBLE and exciting. Our game is about the American Dream of a normal life, and we strongly urge our players at every point in the video game NOT TO CONTINUE to do what they are doing! There are heartfelt cutscenes where your family members cry and ask you to please step away from the darkness, to return to the joys of job and family!
God . . . God . . . . what beautiful, wonderful, tearfully poigniant irony! I can even see the game cover; it would look like a Christian Youth Rock Band poster, with a young man in wholesome khakis and a polo shirt, with a plain wholesome pregnant wife in the background wearing a plain wholesome unappealing Adidas sweatsuit . . . and in the shadows of the lower right-hand side, the dark reminders of the depths of depravity and sin that lie in wait for all of us!
GRAND THEFT AUTO: SAN SUNSHINE (San Diego)
The Flight From Temptation
- In town, anything I can do on a motorcycle, I can do on a bicycle, cheaper, and usually just as fast.
Really? How about 'get laid?'
You sexy bicycle-riding rebel you.
My plans are similar, but the games I already pwn I will pawn, so I will have the money to pwn whatever games are worth pwning and pawn the games not worth pwning (but worth pawning).
Also, I will likely wait for the early-pwners to pawn their posessions at the pawnshop so I can pwn what they pawned.
"It was the lead item on the government's daily threat matrix one day last April. Don Emilio Fulci described by an FBI tipster as a reclusive but evil millionaire, had formed a terrorist group that was planning chemical attacks against London and Washington, D.C. That day even FBI director Robert Mueller was briefed on the Fulci matter. But as the day went on without incident, a White House staffer had a brainstorm: He Googled Fulci. His findings: Fulci is the crime boss in the popular video game Headhunter. "Stand down," came the order from embarrassed national security types."
.
That was from the article . .
You illiterate dipshit.
I think that the finely engineered elegance that was the Yahoo! Stores application (still is, but I'd remove the "finely" qualifier, out of lisp snobbery) would have something to say about your "1 example" statement.
On the other hand, I think that it would also have something to say about the trumpeting of SalesForce.com. Sure, it's a great web app. It's not the first one, and it won't be the last.
Wtf was I thinking. VISCERABLE? Christ on a cracker . . .
"I suppose one could also get a few bucks from the cast aluminum enclosures."
That will not be an option if you handle the disassembly process in the most enjoyable and viscerable way.
I just wanted to say that if I had Mod Points, I'd mod that Underrated. But for a different reason.
:P. I am amazed by it as a science, enthralled with the study of complexity in general. And I am enormously satisfied by solving problems the *right* way; this is how I imagine most other programmers feel about their jobs, but I've met a few for whom this is very much not the case.
"Not to say at all that $20/hr would be bad, just by comparison. I'm actually quite happy with my wage."
Myself -- I'm making, quite literally, $10 per hour -- and coding at a very high level, database-to-business objects-to-presentation level, and am even occasionally (read: when I have the time) asked to write and create visual content for the end-user documentation. I only have a 2-year AS degree, from a small technical college. (I got it when I was 18, but it's still just an A.S.)
I'm surprisingly happy with this job, despite the fact that when I work long enough hours, my actual hourly wage has gotten as low as $7.50. I think that the reason for it is two-fold:
1) I live in an area with a fairly low cost of living, in semi-rural Minnesota. More importantly, I have a lot of friends and family in the area -- and it's not that easy of an area to find a job in!
2) Because I am such a good value, I am afforded a lot more freedom in the way that I do my job, and in how I get to solve problems. This is a must, particularly when you occasionally have to work with procedural programmers (who are your superiors) that still feel that OOP (or functional programming, yadda yadda -- no elitism) is not "real work".
And I should probably add to that list a third reason:
3) I love programming. I respect programming as a real engineering profession, not as something that you can just *do*. Even with visual development tools
When these sort of things work out in your favor, and you aren't tied down, and the work that you're doing is actually more satisfying the harder you work on it -- then as far as I'm concerned, you've got it made. Regardless of what you're making per hour.
Microsoft actually does have a pretty good hiring process, if a little brutal. But a lot of people are saying things like "well, at least somebody recognizes that exceptional people are worth it" -- I don't think that these examples are exactly displaying that. Microsoft has been hiring relatively exceptional people for a long time now; the only difference is that these people already have multinational acclaim in their profession.
Just thought I'd point that out -- this is a good move and everything, but hiring people that are already well-known in their field is neither A) necessarily good news for those of you stumping for MS jobs, or B) particularly cost-effective for Microsoft.
On a side note, the REAL message that this is sending to professionals around the world is this: Hurt Microsoft And Get Hired. Whether a lawyer, programmer, politician or standards' body member -- I encourage all exceptional individuals to put all of their skill towards the destruction of Microsoft. They like it! Really!
Heh . . . reading stuff like this is what makes me really glad that I'm on a smaller team, making something new, mostly under the corporate (internal/external user) radar screen. If anybody knew that the most time-consuming aspect of the hoary old web-based data entry/import system could be replaced with the new system in a matter of 2 weeks if we were forced to, we would be screwed -- managers of other areas would require us to make it available before the data model (and all of the code necessary to make optimal use of it) is perfected.
I've noticed a lot of the really insightful (heh, and not just Insightful insightful) posts here have mentioned that utility of xsl in these situations; I absolutely cannot agree more. XSL is manna from heaven to app/db (it's a 3-man team, we're everything) designers. Moreover, even in worst-case scenarios, it will end up being cheaper to have the designers (or someone else with intimate knowledge of the product) write up some well-illustrated technical docs explaining how to format your Excel docs for import -- and deal with the sort of pissy, ignorant rants from the less grateful users -- than it will be to provide short-term gratification to a single user (no matter how vociferous) and spend your days and nights dealing with the consequences.
Putting words in your mouth?
:) The bottom line is that I'm getting paid $10 per hour to code at a higher level than anyone on the team, I'm OK WITH THAT, and that I object to people trying to fuck with my ability to do my work (by attacking the NECESSARY abstraction in my code, and thus making my job incredibly stressful because it undermines management's confidence in my ability to get work done) to make themselves look better, look more necessary, look more authoritative, or FEEL better.
This is just silly, it's been days after the story was posted -- but I'm gonna' respond anyway.
Nobody said anything about being "the hottest shit since sliced bagels". I don't care whether I'm better, worse, smarter or stupider than the other people on a team.
But when the work that I do -- which, as a conscientious student of computer programming and the development processes behind its real-world application, I KNOW to be of very high quality -- is disregarded or dismissed, I get pissed.
When the very things that make the work I do powerful (and difficult to explain to uninitiated) are used as weapons against me at every opportunity, to try and demonstrate that "see, he's doing crazy, over-complicated, non-real-world shit, instead of actual work!", I get pissed.
When other programmers use Fear, Uncertainty, Doubt tactics as a tool to make me look foolish, for whatever their own personal agendas are -- I try not to think about that, because it feels very Dilbert -- when ALL I WANT TO DO is to do my job well, I get pissed.
I don't need some anonymous fucker trying to spoil my rant here.
I don't need to back down on a god-damned thing. I don't care about whatever dick-measuring contests the AC obviously does. All I care about is that I be allowed to do my work -- which I happen to love, but that's a side point.
I mean, holy shit. It's not easy to find people that love their jobs -- for MULTIPLES of my current salary. I know damned well that I'm a good value, and that gives me the ability to flip this bird at the people that try to piss in my Cheerios(tm)
AC posts rule.
.
Everyone needs to eat. And I sympathize with the pressures and responsibilities that a family must bring with it.
But I'm just trying to do a good job, and not even asking for outspoken appreciation by any means -- and I'm getting shit like this AC post -- in fact, remarkably like this AC post -- telling me that, in effect, anything I do that other people on the team don't appreciate, understand or approve of is entirely wasted effort. I work long hours, so I've been switched to a flat '40 hours per week' on my timecard, essentially salaried -- for $18k a year before taxes. My actual hourly wage is somewhere around $6.80 before taxes. I work weekends and on my spare time to learn.
I'm gonna go out on a limb and say that even OFFSHORE FUCKING OUTOURCING can't provide a better value than me. And all I ask in return is that I be ALLOWED to code, ALLOWED to write good code that won't break down on me tomorrow -- for shit on the scale we're working, that means you had better damned well be applying abstraction, OOP etc. Or else be a functional structures genius like the guys behind Orbitz . .
Anyone want to explain to this AC why, for instance, OOP and abstraction are more than useless concepts and buzzwords that get in the way of 'real work'?
Ironically, I find what you're saying is true.
.NET, which I had a couple of weeks to train myself on -- no sleep! -- and I am pushing it to its limits. Each and every object contains a representation of its schema and can be populated from XML (in fact, I can populate the entire object hierarchy with a single XML string) -- this is implemented cleanly, and without relying on the (slow) XML serialization methods that most people normally associate with .NET. I can populate the entire object hierarchy in a single pass through a single XML string, fully or partially or at any level; the xml is ultra-simple and objects can publish their schema for runtime use/discovery if necessary. All of the objects provide implementations for ALL of the .NET binding interfaces, so I have "Presentation" abstraction that allows for rapid GUI development; I have extremely clean data abstraction through xml and some helper c
I'm only 20 years old, but I'm a very fast learner, and I am very conscientious about the quality of my code. Moreover, since I work on a very small team, I end up contributing to every single step in the process, from db/schema design to semi-advanced SQL coding (nested sets for hierarchies instead of recursion-based methods, for example) to object model planning and data/business/presentation separation planning -- and, of course, every phase of the actual programming, core business objects out to GUI code, in a variety of languages.
And at every step, I have done my best to continue learning, to continue bettering my understanding of what is and is not good code, of the underlying principles of programming and their application -- I've learned the Mathematica programming language and Lisp/Scheme and the whole functional programming paradigm in general, which was my most recent mindjob. In fact, I learned object-oriented programming when I was 15, at a very capable little technical college, and over time have come to realize that it is a poor fit for certain types of problems. I make extensive use of MIT's Open Courseware program (http://ocw.mit.edu/), and actually went so far as to back up the contents of their CS offerings on my hard drive.
Meanwhile, not everyone on our small team is as passionate about programming, or even as motivated to learn -- some members of the team did not choose programming as a profession, and I regularly get yelled at for using words like "abstraction". Or "object-oriented" -- one team member, senior to me, had never heard of OOP, had no idea what it was. Or even "object".
Still -- I never want to be a manager. I never want to be a team lead. I just want to program, ideally for more money and eventually part-time, making enough money to support a family I hope to have. That's my goal for my whole life; I have more important things to do than chase position my whole life. So I can work under any conditions that let me code.
My code is of increasingly higher quality, and as the team is small I have a lot of "stuff" to get done. I have a lot of features I have to implement, and one of the benefits of this small team is that everyone on the team knows the requirements of the system better than the customer; each of us understands their business better than any of them do. So we are all charged with covering a lot of ground, we have a structure in place that lets us work relatively independently on the areas we have to work on -- and I am finally able to produce high-quality code in a new environment, making no concessions to a horribly flawed preexisting framework.
And I am paying the same price you mention!
The other coders, the ones that don't even care about programming, the ones who are coding because it's a job and they'd rather be doing pure design work -- they code without regard to good practice, apparently with blinders on! I recently started on a new section, and in 4 days I had a beautiful object model, beautifully abstracted.
The project requires that I work under
Job 26:7 -- "He suspends the earth over nothing"; "God hangeth the earth upon nothing."
.
BIBLICAL REFERENCE DISCLAIMER: Blahblahblah, I'm not a creationist, I've read lots of translations of the Bible AND english translations of Kuran and Bhagavad-Gita and I think that religion should be a personal thing and I don't think that the earth was made in 6 days and I don't use religion or god or satan as mythological boogiemen or scapegoats for my problems blah blah blah . .
Anyhoo. Just thought I'd point out that (in support of your point) since so much of belief is dependent on personal interpretation of texts, it's not impossible by any means to devise an interpretation of the bible that requires direct contradiction of laws of science or known reality.
No offense to all of the people who designed the Comanche and are now surfing Slashdot in their free time -- but I wouldn't compare Open Source software to the Comanche. Active Directory, Outlook, SCO Unix, et al -- these are the Comanches of the world. They have connections, and we can't stop SOMEBODY from buying and (trying) to use them.
:)
Open-Source is the Stinger.