DARPA: U.S. Geek Shortage Is National Security Risk(wired.com)
wired.com
DARPA: U.S. Geek Shortage Is National Security Risk
http://www.wired.com/dangerroom/2010/01/darpa-us-geek-shortage-is-a-national-security-risk/#ixzz0cjjwvDR5
7 comments
Complaining is easy, but how do we fix it? Alan Kay has some ideas: http://vpri.org/html/work/tlpiese.htm
In essence, he believes the power of computers is as a medium for experimentation. If you make it easy for kids to simulate models from axioms, they'll be able to think better. One might call that "programming", but it's really quite a bit more than what people do now.
In essence, he believes the power of computers is as a medium for experimentation. If you make it easy for kids to simulate models from axioms, they'll be able to think better. One might call that "programming", but it's really quite a bit more than what people do now.
Complaining is easy, but how do we fix it?
Um.. in this case fixing is also pretty easy.Just start with making a curriculum which is more inclined towards experimentation and research. Tell students to find things out by them selves instead of spoon feeding them. Tell them the syntax of the language and then keep lab open (open as in anyone can come in and do programming) so that they can work on interesting things. And above all, GRADE them on these experiments. Start off with keeping them as extra credit and graduate that to making it a part of curriculum.
PS:May be one day I would have money and will open up something like "South Harmon Institute of Technology" from the movie "Accepted". Where mind is allowed to stroll freely in the depths of thoughts not drown in books and formulas.
Um.. in this case fixing is also pretty easy.Just start with making a curriculum which is more inclined towards experimentation and research. Tell students to find things out by them selves instead of spoon feeding them. Tell them the syntax of the language and then keep lab open (open as in anyone can come in and do programming) so that they can work on interesting things. And above all, GRADE them on these experiments. Start off with keeping them as extra credit and graduate that to making it a part of curriculum.
PS:May be one day I would have money and will open up something like "South Harmon Institute of Technology" from the movie "Accepted". Where mind is allowed to stroll freely in the depths of thoughts not drown in books and formulas.
Aren't you simplifying this just a little too much?
Maybe this has something to do with "National Security Risk"?
"Students were evacuated from Millennial Tech Magnet Middle School in the Chollas View neighborhood Friday afternoon after an 11-year-old student brought a personal science project that he had been making at home to school ..." http://www.signonsandiego.com/news/2010/jan/15/students-evac...
Found via http://news.ycombinator.com/item?id=1056904
"Students were evacuated from Millennial Tech Magnet Middle School in the Chollas View neighborhood Friday afternoon after an 11-year-old student brought a personal science project that he had been making at home to school ..." http://www.signonsandiego.com/news/2010/jan/15/students-evac...
Found via http://news.ycombinator.com/item?id=1056904
If there's a geek shortage, why are there so many unemployed and underemployed geeks?
Because there's a difference between a geek and an employable geek.
There, I said it, it's not going to be a popular opinion, especially since I'm a Canadian expat in the USA "stealing your jerbs". I know many others like me, who are being well above average rates to work in this country, whose very employment carries steep legal and bureaucratic overhead for our employers. Yet Canadians, Indians, Europeans, etc etc, are still being imported by the planeloads. I know for a fact that our HR department scours American schools for qualified graduates constantly, yet we can't fill spaces quick enough.
I've thought about this some, and my conclusion is that a lot of American geeks just don't work very hard - you have the people who hang out on Digg/Reddit all day. Yeah, they're geeks, but how many languages do they know? Can they build a site from back to front? Do they know their algorithms? People on HN need to realize that they're a vanishingly small minority of the set of all geeks, and that as a crew are in general much more ambitious and capable than most. There's a long way between "I like computers" and "I'm willing to pour ungodly amounts of time into learning computers". For every geek who takes the time to learn all the toolkits and languages to get employed, there are 500 others who couldn't be bothered, and will complain endlessly about undeserving foreigners stealing jobs rightfully theirs.
In other words, for every geek who knows Python inside and out, is up to date on all the latest web technologies, has experience building large scalable systems, etc etc... there are 500 others who can only write VB, and will endlessly complain that they're not employed, or that they're not being paid enough. Unfortunately no "geek employment" number will ever be able to separate the two.
There, I said it, it's not going to be a popular opinion, especially since I'm a Canadian expat in the USA "stealing your jerbs". I know many others like me, who are being well above average rates to work in this country, whose very employment carries steep legal and bureaucratic overhead for our employers. Yet Canadians, Indians, Europeans, etc etc, are still being imported by the planeloads. I know for a fact that our HR department scours American schools for qualified graduates constantly, yet we can't fill spaces quick enough.
I've thought about this some, and my conclusion is that a lot of American geeks just don't work very hard - you have the people who hang out on Digg/Reddit all day. Yeah, they're geeks, but how many languages do they know? Can they build a site from back to front? Do they know their algorithms? People on HN need to realize that they're a vanishingly small minority of the set of all geeks, and that as a crew are in general much more ambitious and capable than most. There's a long way between "I like computers" and "I'm willing to pour ungodly amounts of time into learning computers". For every geek who takes the time to learn all the toolkits and languages to get employed, there are 500 others who couldn't be bothered, and will complain endlessly about undeserving foreigners stealing jobs rightfully theirs.
In other words, for every geek who knows Python inside and out, is up to date on all the latest web technologies, has experience building large scalable systems, etc etc... there are 500 others who can only write VB, and will endlessly complain that they're not employed, or that they're not being paid enough. Unfortunately no "geek employment" number will ever be able to separate the two.
"a lot of American geeks just don't work very hard"
Another perspective could be that (most) Americans who work hard don't become geeks, because the rewards aren't commensurate with other professions.
If you're interested in reading some support for this position, you might check out a recent RAND study that concluded that "cience and technology performance, but said the slow growth of U.S.-born technical workers "will change when the earnings and attractiveness of S&E (science and engineering) careers improve."
A summary is available here:
http://www.usatoday.com/tech/science/2009-07-08-science-engi...
The full RAND study is at:
http://www.rand.org/pubs/issue_papers/IP241/
Another perspective could be that (most) Americans who work hard don't become geeks, because the rewards aren't commensurate with other professions.
If you're interested in reading some support for this position, you might check out a recent RAND study that concluded that "cience and technology performance, but said the slow growth of U.S.-born technical workers "will change when the earnings and attractiveness of S&E (science and engineering) careers improve."
A summary is available here:
http://www.usatoday.com/tech/science/2009-07-08-science-engi...
The full RAND study is at:
http://www.rand.org/pubs/issue_papers/IP241/
[deleted]
I think "both sides" are having difficulty make things work here. I work at Generic Japanese Megacorp, which could easily be Generic American Megacorp except with rather less white people. My day job expects me to have a 4 year degree in a rigorous field of study, be expert at our problem domains, be proficient to expert in a list of technologies which I quite literally cannot fit on a single page in 8 pt font, and have unlimited tolerance for overtime. In return, I'm paid about what an English teacher makes. Why can't my employer find more geeks like me? Hmm, that's a tough one.
Then there's the other side of the fence: some of my friends use Ubuntu on their laptops, are really good with the Internet, and can quote every episode of the Simpsons ever. Quite a few are stuck in jobs like software testing. Why can't they find jobs paying $80,000 which require none of the commercial skills they have assiduously avoided learning? Hmm, tough one.
Then there's the other side of the fence: some of my friends use Ubuntu on their laptops, are really good with the Internet, and can quote every episode of the Simpsons ever. Quite a few are stuck in jobs like software testing. Why can't they find jobs paying $80,000 which require none of the commercial skills they have assiduously avoided learning? Hmm, tough one.
> be proficient to expert in a list of technologies which I quite literally cannot fit on a single page in 8 pt font
Are you? Is it even possible to be? Those requirements sound unrealistically high, so either you're a supergenius, you're exaggerating, or your company lists insane requirements and then doesn't actually require them.
Are you? Is it even possible to be? Those requirements sound unrealistically high, so either you're a supergenius, you're exaggerating, or your company lists insane requirements and then doesn't actually require them.
Web development starts with a deep understanding of HTML, CSS, and Javascript. At work we use Prototype and Scriptaculous to achieve the richer interfaces our customers are beginning to demand, so that means you also have to understand the DOM model. This view layer of the site is actually in JSP, since we're a Java shop, running in a Tomcat servlet container on the J2EE stack: Struts, Spring, etc etc. The web services are REST (via RestEasy / the Apache HTTPClient -- you'd better be expert at the HTTP protocol, by the way, or you're not getting very far here) and our older ones involve XML-RPC / SOAP. Oh yeah, XML, that's handy to know, along with YAML and JSON. Anyhow, the data which is actually being served up is stored in the database and accessed via SQL. There are a few hundred kb of stored procedures running around -- you'll want to be able to write them in Oracle and Postgres, since customers use both. Authentication is usually via LDAP except when it is via OpenID except when it is via OpenID backed by LDAP.
The system is built with Ant, Groovy, and Ruby, and deployed on RedHat Linux. You'll be expected to know SH and BASH shell scripts and perform various sysadmin tasks as required, for example, configuring firewalls, Apache, and nightly batches via cron'ed up shell scripts.
In addition to doing Java, we also do migrations from Perl systems and much of our internal utilities are written in either PHP (yay, outsourcing) or Ruby.
One of the core tasks of our customers is creating "reports". We have a software package (which you haven't heard about) which does this for us. You need it to know it backwards and forwards. Also, if it ever fails, knowing how to debug PDFs would be a real help.
I haven't gotten past "generic web developer" into the world of fun that is "IT needs specific to Japanese universities", such as dealing with the common Japanese bank interchange format to process tuition payments. That is one requirement from one of the 37 subsystems on the project I'm on.
You tell me -- what have I said so far that sounds unrealistic or exaggerated?
The system is built with Ant, Groovy, and Ruby, and deployed on RedHat Linux. You'll be expected to know SH and BASH shell scripts and perform various sysadmin tasks as required, for example, configuring firewalls, Apache, and nightly batches via cron'ed up shell scripts.
In addition to doing Java, we also do migrations from Perl systems and much of our internal utilities are written in either PHP (yay, outsourcing) or Ruby.
One of the core tasks of our customers is creating "reports". We have a software package (which you haven't heard about) which does this for us. You need it to know it backwards and forwards. Also, if it ever fails, knowing how to debug PDFs would be a real help.
I haven't gotten past "generic web developer" into the world of fun that is "IT needs specific to Japanese universities", such as dealing with the common Japanese bank interchange format to process tuition payments. That is one requirement from one of the 37 subsystems on the project I'm on.
You tell me -- what have I said so far that sounds unrealistic or exaggerated?
we're a Java shop
You could have stopped there :)
You could have stopped there :)
Thanks for the explanation.
I know there are a lot of requirements, and I've used most of what you listed there. But even with all the common, plentiful requirements, the bit about an 8pt font was exaggerated.
I know there are a lot of requirements, and I've used most of what you listed there. But even with all the common, plentiful requirements, the bit about an 8pt font was exaggerated.
Does this mean that if we're ever in a shooting war, the military's first priority will be to get all the geeks out of harm's way?
Hmm,
When I read this, it seemed like there was a disconnect between the out-sourcing trend and this desire for more computer geeks.
Interestingly, when I recently read BLS website on programmer jobs prospects, they projected a decrease. You can find a reference to this projection here: http://education-portal.com/articles/Mastercam_Programmer_Jo...
But now, the very recently updated BLS website paints a rosy picture.
http://www.bls.gov/oco/ocos303.htm
Woo, spooky. Maybe the BLS is listening to darpa at least... WTF!
When I read this, it seemed like there was a disconnect between the out-sourcing trend and this desire for more computer geeks.
Interestingly, when I recently read BLS website on programmer jobs prospects, they projected a decrease. You can find a reference to this projection here: http://education-portal.com/articles/Mastercam_Programmer_Jo...
But now, the very recently updated BLS website paints a rosy picture.
http://www.bls.gov/oco/ocos303.htm
Woo, spooky. Maybe the BLS is listening to darpa at least... WTF!
Weird, reading more carefully, the BLS projects more software engineers but fewer programmers. Fooled me since personnel directors are the only people I've heard distinguish the two job types.
I think software engineers are generally jobs that require a B.S. Programmers might simply be someone with an A.S. or no college doing non-complex programming tasks. Much of this work is being outsourced.
I've heard the distinction as "software engineering is a creative profession, requiring professionals to exercise a large degree of judgment in building working systems from ambiguous requirements. Programmers take an existing spec and then translate that into code."
I'm not sure how useful this distinction is, as every job I've held had highly ambiguous requirements and a lot of trade-offs involved in building a working system from them. It kinda makes me wonder though - a colleague who'd been a PM at both Google and Microsoft said the difference was "Microsoft expects PMs to produce a spec that's thrown over the wall to engineers, who throw it back if there's any ambiguity. Google expects their engineers to have opinions about the product and to resolve most of the details themselves, only consulting the PM if there's something big where they need additional data." I wonder if Microsoft hires programmers and Google hires software engineers?
I'm not sure how useful this distinction is, as every job I've held had highly ambiguous requirements and a lot of trade-offs involved in building a working system from them. It kinda makes me wonder though - a colleague who'd been a PM at both Google and Microsoft said the difference was "Microsoft expects PMs to produce a spec that's thrown over the wall to engineers, who throw it back if there's any ambiguity. Google expects their engineers to have opinions about the product and to resolve most of the details themselves, only consulting the PM if there's something big where they need additional data." I wonder if Microsoft hires programmers and Google hires software engineers?
I've always hated this attempted separating of the roles of programmer and software engineer. You are taking people best suited to programming and giving them the job of creating a specification which is then given to lower paid code monkeys proficient in Java to churn it out.
I'd kind of cheapens the craft when people look at it in this way, my AI lecturer last year was describing the different roles in creating an AI system and saying that that the job you want is a knowledge engineer is the position you want and the programmer is just a nobody who translates it all into code.
I'd kind of cheapens the craft when people look at it in this way, my AI lecturer last year was describing the different roles in creating an AI system and saying that that the job you want is a knowledge engineer is the position you want and the programmer is just a nobody who translates it all into code.
I think that you don't often find both software engineers and programmers in the same organization, if that organization subscribes to this distinction. Either you have only software engineers, or you have programmers + software architects.
It also introduces a lot of "friction" and inefficiency into the development process, at least in my experience.
I wonder if Microsoft hires programmers and Google hires software engineers?
I don't think that's a fair assessment of the developers themselves. I would write it up to differences in product release mentality -- it takes a different mindset to put bits in a box vs a web server.
I don't think that's a fair assessment of the developers themselves. I would write it up to differences in product release mentality -- it takes a different mindset to put bits in a box vs a web server.
Microsoft calls them "Software Development Engineers".
My recent experience is that "software engineer" ~= manager and "architect", farming programming tasks out to overseas employees.
That's the distinction: We in the U.S. are (supposedly) going to retain management (and maybe design) while outsourcing the "lower level" work.
I originally continued with a longer comment, but it summarizes to: "Good luck with that."
That's the distinction: We in the U.S. are (supposedly) going to retain management (and maybe design) while outsourcing the "lower level" work.
I originally continued with a longer comment, but it summarizes to: "Good luck with that."
I've had things like "management will stay onshore" and "capital work will stay onshore" given to me too. Given that at least in India, there's a career path from programmer to tech manager to ... and in the US there isn't, I don't see how "management" and/or "design" will stay onshore.
My only option is to believe that "management/design stays onshore" is a way to keep current mid-level managers from pulling the ripcord right now, and at least getting all the programming and the technical managers offshore before everyone below director-level wises up.
My only option is to believe that "management/design stays onshore" is a way to keep current mid-level managers from pulling the ripcord right now, and at least getting all the programming and the technical managers offshore before everyone below director-level wises up.
Some of my thoughts run similarly. Where are senior people going to come from, given that they need to grow from junior positions. If you are eliminating junior positions domestically, the answer seems obvious.
Mhm, maybe there is a disconnect between what is good for the nation and who profits from that out-sourcing trend? (No offense to non-US hackers.)
Correct me if I am wrong but dont they mean a computer science nerd rather than a geek? I mean geek is someone eccentric with a single minded approach to anything from comics to radios. But a nerd is a obsessive personality with a single minded approach towards his field.
_Teaching_ these subjects to teens would probably be a good start.
I'm being serious. The junk that is taught in most schools (and I'm Canadian: our education system is supposedly better than the US) and absurdly labeled these subjects is a huge part of the problem.
Math is taught like magic. Experiments have been banned from the science classroom. Computer science classes teach typing.
I'm exaggerating a little: math occasionally gets explanations, science may occasionally have a very simple experiment, computer science students may learn some programing. But those are the exception, not the rule.
It's utterly broken.