I think that part of the problem is in how geeks are trained and what they work on. For example, think of all the software people go go to school, learn java, and then build big ugly enterprise bank, insurance, whatever software inside some megacorp that nobody cares about. Most end users of said software don't like it and have zero appreciation for the people who made it.
Outside of Silicon Valley being a geek isn't cool, being a geek just means that you're seen as tech support to friends and family. They appreciate it, but it's not like you're a doctor or a lawyer or pro athlete or something.
Also, not only do a lot of the jobs for developers kind of suck, the things we expect from geeks is horribly standardized. For example, outside of the startup community you have 3 primary camps - PHP, Java, and .NET. I think most jobs I've seen want developers who are stuck in one of those three camps and have lots of experience there so that they build more standard software on standard platforms.
Even PG wrote about that very phenomenon when he talked about how you didn't have to worry about a competitor whose job listings wanted Oracle. I see more job listings for PHP/JavaEE/.NET coders in a week than I've seen for Rails/Python/Lisp/Scala/Clojure in a year.
If we are turning developers into PHP/.NET/JavaEE glue coders I kind of doubt that young geeks would look up to us either. It's hard to be a uber geek when all you know is Java from college CS course and Java EE in your full time job. It's hard to make other people want to turn into uber geeks when they see their parents or friends' parents having boring corporate tech jobs they don't enjoy any more than the accountants or secretaries or managers do.
If as geeks we want more geeks, we have to do more super cool geeky stuff instead of being so dreadfully boring.
We need to do more things that are "magic" like iPhone, Facebook, Kinect, and StumbleUpon(which has become bizarrely popular on college campuses I've noticed) and less things that are super lame like building horrid software that people loathe using - Lotus Notes, SAP, etc...
Since when does programming have to feel like double entry accounting? Since when should the hiring process and the training process feel much the same as accounting or banking?
Geeks have gone from being seen as wizards to being seen as technical bean counters and paper pushers.
this is a terrible post on several levels. first none of the apps are magical, they are all sites that are fun. Time wasters as some people may call it. There is a huge difference between apps for productivity and having fun. In the end being productive is not always fun. Claiming some languages are not geeky enough is super ignorant. As long as the person is coding out of some level of enjoyment is all that matters. Figuring out how to scale is an amazing challenge.. its not super fun and its not something not all people may find enjoyable, but its something that people in Enterprise have to deal with. Hacking on kernel code to make something run more efficiently is not a "Superstar" activity that will be enjoyed by millions of users like Facebook but someone has to do it. Every day there are millions of businesses that rely on these day coders to help run businesses more efficiently. Not everyone wants to work in a start up and dedicate 12 hours of their days to a company that may never come to fruition. When you get out in the real world as a coder.. everyone will pitch you their billion dollar ideas and after the 3rd or 4th time of dedication long days and weekends and only reaching failure.. one of these desk jobs feels good. Sorry but this post is pure ignorance.
I'm down for hacking on kernel code and learning the guts of an OS!
I do think the grandparent has a valid point though. Most enterprise corporations do treat IT / development as plug and play instead of "engineers." I think enterprise coding would be fascinating, but they are stuck in a language and platform rut (PHP/Java/C# and something else whose name escapes me) and don't let the engineers explore other solutions to problems outside of those silos.
Some of the enterprise challenges -- scaling for instance -- are quite fascinating problems that only show up in large software projects, but to solve them one finds oneself limited to cobbling together a solution from previous solutions built on top of older solutions using the same software stack + updates. Creativity and a willingness to think outside the box is lacking in some of the larger organizations and after 20+ years of doing the same thing on almost the same platform has managed to help push geeks into the corporate IT stereotypes.
As you point out, not everyone wants to work at a startup and might enjoy the stability of a regular job. I might be one of those people, don't know yet. What I do know, is I would like to exercise some creativity and find newer and more updated ways of doing things instead of rehashing the same code in the same software stack day in and day out. But that's just me.
In the end, its the hardware that counts. As in, the real physical hardware.
A number like "how many active installations of hardware X", which represents actual real-life users in realtime, is a very important thing for an application developer to keep track of .. if you've got one machine that is serving 10,000 people over lunch-time, something, then you better know how that machine is working.
If the lawn-humping teenage generation of programmers aren't being taught one thing, its that hardware in use is all that matters. Count that as your primary professional consideration, and things go very well from there, usually.
If students were coming away from US Computer education establishments with very strong hardware capabilities and focuses, rather than 'doctrine and taxonomy' as a focus, there would be a positive change in the industry. Many 'old school' programmers got that way because they had to build their own hardware; if you are a Java coder, there is absolutely no reason why you shouldn't also know how to wire up a chip. Its totally arbitrary.
A common effective solution to situations like this is for the affected to proactively tell their own story — this seems to be one of the 'only' ways to counter long-standing social image problems.
They're trying to change the common ideas held in regards to math and what you hear from high schools, "I'll never use math in real life!"
Now seems like the primetime to begin a similar movement for geeks/hackers and I assume this has even been tried before. There is Zuckerberg the successful geek with even the movie (The Social Network) pushing this image. Some of my friends who I know I do some programming have approached me saying they have a cool idea for an app and asked if it'd be hard to make. I think an effective answer would be to explain how the development process goes, show them writing some basic app, and inviting them to learn.
For example, think of all the software people go go to school, learn java, and then build big ugly enterprise bank, insurance, whatever software inside some megacorp that nobody cares about.
For what it's worth, nothing requires Enterprise software to be big, ugly, boring, hard to use, etc. Maybe I'm biased, since I'm working on an Enterprise Software startup, but I think this stuff can be damn interesting. Then again, I'm in the "Enterprise 2.0" space, and am working with interesting stuff like social network analysis, activity streams, machine learning, text mining, semantic web tech, etc. Maybe writing accounting software is boring, but the stuff we're doing has a lot of interesting aspects to it, IMHO.
From my experience of working in a large enterprise, it's that people don't really buy the software, they buy the support, the ecosystem, and (buy into) the sales process. In our case we were finally going to implement online code-review. There were plenty of "cooler" products out there, and my team tested a few of them, but ultimately the company decided to go with another company because it was established, their sales guy came out and schmoozed, and they liked the support contract that was offered over having to maintain things themselves.
I think the successful companies that make the boring software have simply realized that the cool-factor of the software is not a major selling point in their market.
Not in the sense of looking for "employees", no. Looking for (a) co-founder(s), yes. A co-founder would need to be (or be able/willing to re-locate to) somewhere pretty close to Raleigh/Durham, NC. If you're interested, shoot me an email.
Note that this is still in self-funded, bootstrap", "nights and weekends" mode. :-)
"We need to do more things that are "magic" like iPhone, Facebook, Kinect, and StumbleUpon(which has become bizarrely popular on college campuses I've noticed) and less things that are super lame like building horrid software that people loathe using - Lotus Notes, SAP,"
you have it quite backwards there - SAP is a hugely sophisticated piece of software that runs huge companies. Comparing it to facebook or kinect or stumbleupon desn't do it justice (it's been developing since the 70s).
Having a "boring" megacorp job in an air conditioned office writing is what most people dream of around the world.
Outside of Silicon Valley being a geek isn't cool, being a geek just means that you're seen as tech support to friends and family. They appreciate it, but it's not like you're a doctor or a lawyer or pro athlete or something.
Also, not only do a lot of the jobs for developers kind of suck, the things we expect from geeks is horribly standardized. For example, outside of the startup community you have 3 primary camps - PHP, Java, and .NET. I think most jobs I've seen want developers who are stuck in one of those three camps and have lots of experience there so that they build more standard software on standard platforms.
Even PG wrote about that very phenomenon when he talked about how you didn't have to worry about a competitor whose job listings wanted Oracle. I see more job listings for PHP/JavaEE/.NET coders in a week than I've seen for Rails/Python/Lisp/Scala/Clojure in a year.
If we are turning developers into PHP/.NET/JavaEE glue coders I kind of doubt that young geeks would look up to us either. It's hard to be a uber geek when all you know is Java from college CS course and Java EE in your full time job. It's hard to make other people want to turn into uber geeks when they see their parents or friends' parents having boring corporate tech jobs they don't enjoy any more than the accountants or secretaries or managers do.
If as geeks we want more geeks, we have to do more super cool geeky stuff instead of being so dreadfully boring.
We need to do more things that are "magic" like iPhone, Facebook, Kinect, and StumbleUpon(which has become bizarrely popular on college campuses I've noticed) and less things that are super lame like building horrid software that people loathe using - Lotus Notes, SAP, etc...
Since when does programming have to feel like double entry accounting? Since when should the hiring process and the training process feel much the same as accounting or banking?
Geeks have gone from being seen as wizards to being seen as technical bean counters and paper pushers.