Does the 'Hacker Ethic' Harm Today's Developers?
snydeq writes "Fatal Exception's Neil McAllister questions whether the 'hacker ethic' synonymous with computer programing in American society is enough for developers to succeed in today's economy. To be sure, self-taught 'cowboy coders' — the hallmark of today's programming generation in America — are technically proficient, McAllister writes, 'but their code is less likely to be maintainable in the long term, and they're less likely to conform to organizational development processes and coding standards.' And though HTC's Vineet Nayar's proclamation that American programmers are 'unemployable' is overblown, there may be wisdom in offering a new kind of computer engineering degree targeted toward the student who is more interested in succeeding in industry than exploring computing theory. 'American software development managers often complain that Indian programmers are too literal-minded,' McAllister writes, but perhaps Americans have swung the pendulum too far in the other direction. In other words, are we 'too in love with the hacker ideal of the 1980s to produce programmers who are truly prepared for today's real-life business environment?'"
And though HTC's Vineet Nayar's proclamation that American programmers are 'unemployable'...
Flamebait. The article goes on to say that Americans are all prima donnas who are out of touch with reality and want to start with 80K a year and whatnot. Besides that being a bad stereotype and not always true, and when it is true it also applies to math or engineering or whatever grads whose parents buttercupped them with promises of the American dream when they finished school. It is their fault for not anticipating reality just as it will be the Indians' fault if they refuse to anticipate their jobs going somewhere cheaper.
there may be wisdom in offering a new kind of computer engineering degree targeted toward the student who is more interested in succeeding in industry than exploring computing theory.
They're already here, usually called "Software Engineering. The coursework is usually half business, half programming and IT. If you can survive rolling your eyes at all the buzzwords and colored charts, it's decent preparation for becoming a Dilbertian drone. Plus, you won't have to sweat learning the vector calculus you'll never use outside of school.
part of me says that the out-of-the-box, non-conventional thinking that self learners typically have can be a real asset, it shows diligence, creativity and adaptability, nobody penned out the laws and rules for them, they had to find them on their own, it is its own category of brilliance in some respects. generally it doesnt lend itself to production environments though. but perhaps on a more problem solving level this characteristic is more valuable than the beautiful clean code than more schooled programmers learn. a good team of anything (programmers, sysadmins, football players) all have their strengths and weaknesses and they ought to compliment each other and balance out. in short both are needed but assessing the value of each must be done on independent terms, its the same animal but a different species.
i wage a holy war against the apostrophe.
I thought our messy unmaintainable code made us unfireable.
If you mod me down the terrorists will have won
You can take a creative person and teach them the correct ways to apply their ideas, but you can't take someone that knows the 'rules and regulations' inside and out, but sucks at independent thinking and teach them to be creative.
Hence why you'll get a bunch of people who have the same degrees from the same universities but they will have capabilities that are miles apart when it comes to software development. All the people were given the nuts and bolts knowledge, but only the creative ones excel in the real world think outside the box environments. That's not to say there aren't places for the 'by-the-book' developer, but it'll be maintenance coding, and not make the latest cutting edge app or game.
Hacker mentality or not, lack of creativity is why Indian developers tend to produce lackluster results. (And before I get flamed, I'm saying this in general, I'm sure there are many creative Indian developers out there, just as there are many uncreative American developers)
---
Programming is like sex... Make one mistake and support it the rest of your life.
A friend of mine uses Eclipse, not for some huge "grunt work" but just to have all the class reference stuff quickly available from code. I actually sorta like that; I've used NetBeans for the same reason, and I use Xcode sometimes for Objective-C. They all have the ability to provide real improvements in the work I'm actually doing.
Don't be too quick to throw away a tool. There is a reason that Rails has 'script/generate scaffold', and it's not just that programmers don't know any better -- it's that often that framework will be close enough to right to save you a ton of time.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
In other words, are we 'too in love with the hacker ideal of the 1980s to produce programmers who are truly prepared for today's real-life business environment?
I don't know, but us IT guys save A TON of money riding a skateboard everywhere, and it's environmentally friendly! Who's laughing now?
-The Plague
Adidas To Bring Back Sneakernet
Things like PERL are deeply disturbing to anyone with a sense of design.
Perl is glue. Glue is messy. It's supposed to be messy; it handily fits things together that wouldn't otherwise interoperate.
Not much of a designer if you don't even know what glue is for.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
Arguing against IDEs is pretty tired and boring. And embarassing. In general the code from "IDE Junkies/Jockeys" is just fine. An IDE is a tool like a hammer and if someone is using it wrong, you're going to see some bent nails. Refusing to use a tool isn't much better. An IDE takes a huge amount of trivial work out of designing GUIs, fixing syntax, refactoring, integrating with version control and just helping you remember the names of objects or methods or whatever. Am I an idiot because I'd rather look through a list that automatically pops up in my GUI than flip through a 500 page book?
Using a text editor instead of a full IDE (to work on appropriate scale projects) is like hunting with a spear, but you're not nearly as cool.
Whale
This will probably get me modded down, but what the hell, i got karma. You want to know the REAL difference between an American and an Indian coder, and why they think of us as "cowboys"? One word: Adaptability.
Working on this job with a really sweet Indian girl, who was quite happy to be an American citizen now and said she wouldn't go back if you paid her, I asked why does Indian tech support suck. This was after we were all rolling on the floor laughing as she dealt with tech support by cursing them in Hindi when they told her to reboot again. She rolled her eyes and said "it isn't just the tech support, it is the programmers too. I would take one American over a dozen of my countrymen if they have never lived here for any length of time". She then sat down and explained it like this-
"It is the caste system" she said, "There you NEVER question those above you, ever. if your boss says the sky is purple and 1+2=12 then that is the truth. You never question those above you for any reason. Which works fine as long as it is something that can be written down and followed step by step. But life and computers rarely work that way. They always throw you curve balls and pull weird things that somebody forgot to write down. In those cases the American will "pull a Macgyver" and make it work. The Indian will just be lost, as you just don't do things like that. That is why I am quite happy to be here, thanks."
So if you want to know why they think of us as "cowboys" there you go. It is because an American will try to figure out a weird problem while the Indian will wait on his/her boss to tell them what to do. Which is fine if you want nice little drones that can't think for themselves, but we just aren't built like that. And I for one am quite happy about that. So call us "cowboys" all you want, but it gets the job done.
ACs don't waste your time replying, your posts are never seen by me.
I am a US citizen. I have worked in Japan, Korea, Taiwan and China for a few years. While there, I have worked with excellent local developers as well as developers from India who were working in those countries. I have also worked with coders who should not be let anywhere near a computer.
It all depends on the individual's drive for excellence and the management structure that the person is bound under.
I dislike these gross generalizations on either side.