Google’s Dart, New Tech, and Hiring Good People

I saw on G+ that Google has released their new language Dart in the latest Chromium tech preview. One comment mentioned that “Soon we’ll see job ads requiring a college degree and 10 years experience in Dart…”

It’s funny because it’s true. Around 2000 or so, my (then current) employer won a big contract and the managers were pretty arrogant about it, thinking they would sit in judgment and that the very best would come begging to work for them. (This didn’t happen because they were known to be jerks, but that’s another story.) Anyway, they put out job requisitions with items like “10+ years experience with Java development” when Java had only been out and usable for 5 years or so.

This stuff cracks me up now, but if I were looking for a job as a programmer using one of these languages, it would really make me mad. Actually, very specific job requirements irritate me generally. For what we do, my ideal job requirements doc would read:

  • Must be very smart
  • Must be willing to learn new technology every year
  • Must enjoy working alone and with others
  • Must be able to talk to and work with customers, even difficult ones, and remain professional
  • Must have a strong creative drive
  • Must be willing to do (some) boring, tedious work in addition to building original code and applications

I think the spec above covers what we need in a developer/engineer. I don’t care about college degrees (though my company and customers unfortunately do). I’m much less concerned with particular coding skills than with the ability to learn new tech and the enthusiasm to do it well. Finally, you have to be able to work well alone (no micromanaging) and together in a team, sharing the workload and the credit for the great stuff that comes out of that work.

I was hired in the late 90s into a position using criteria like this. I was studying philosophy in grad school at the time and during the interview, I talked about how beautiful data and control structures are if implemented well and lots of other stuff about beauty. After ensuring I didn’t mind maintaining the existing system as well as building new stuff, they immediately offered me a position. Very cool. It was some of the most difficult work I’ve done in my career, writing a system from scratch using Solaris and HP-UX as the base and building everything above it using mainly C with a smattering of many other languages. The project had built it’s own CM tool, makefile generator, blazingly fast C-structure based database, and many other extremely complex tools that had to run very fast on old hardware. For projects like that especially, where you have to learn a huge amount of stuff you’d never see in college, I think the traits above are what counts most.

I think the people who put long lists of coding skills and experience with particular tech are either lacking in creativity,understanding of how elite programmers work, or had these requirements levied from above.

AppStorm Top 20 Free Windows Apps

Appstorm has a great article listing the top 20 free Windows apps as of late 2011. I strongly agree with some of them but all are worth looking at depending on your needs.

I especially recommend Microsoft Security Essentials, Chrome, Paint.NET, Wunderlist, LastPass, XMarks, 7-Zip, VLC, and LibreOffice as useful for everyone. Others such as Handbrake are useful depending on how you use your PC. Many of these are open source as well as free.

http://windows.appstorm.net/general/top-20-free-apps-for-your-new-pc/

Multitasking Interface for Android Tablets

A company named Onskreen has developed a multi-tasking interface for Android that looks like it will be very useful on tablet-sized devices. They’ve open sourced the code and are currently trying to get a major tablet vendor to pick up the technology.

That small rectangle you see disappearing into the distance is the future viability of the iPad for serious work.

http://www.androidpolice.com/2012/02/14/cyanogenmod-looks-to-integrate-onskreens-cornerstone-and-bring-true-tablet-multitasking-to-cm9/

Zen Mind, Beginner’s Mind – as applied to coding

Here’s an article about a developer’s practice of the Zen philosophy within software development. Some of what he says might seem odd, but some of it has value, if only to see another’s perspective on software development.

http://www.grobmeier.de/the-10-rules-of-a-zen-programmer-03022012.html

Google – Don’t Be (Too) Evil and Don’t Get Caught?

Google is no longer a young corporation flush with money and idealism (it’s easy to have the latter when you’re rolling in the former). Despite making its money from selling ads, which is not a good and certainly not something we need more of, Google is still far better behaved than most corporations. I’ve worked for mid-size and large corporations even to know this for certain.

However, events over the last few years and especially over the last year show that Google is no longer the poster child for how to make money while remaining unsullied by the world’s surplus of evil. Whether the recent events involving Google employees (or contractors) sabotaging OpenStreetMap data or trying to steal customers from a Kenyan startup, Google has either lost a little control over its growing empire, or it’s loosened its ethical reins. I hope it’s the former.

Google, like all giant internet companies that rely on customer data to make money, has long had to dance the line between innocuously using that data and destructively invading customers’ privacy. The latest move, discussed in the link below, may be either one. Time will tell.

http://blogs.hbr.org/cs/2012/01/what_larry_page_doesnt_underst.html

Theft-Aware Android Security App

I work on a program that supports a wide range of platforms, including Android. Android support is new and just leaving beta, but Android phone and tablet sized devices are the future for many of our customers. It would be overreaching for us to recommend specific security apps to our Android customers, but we need to be aware of advances in the field. I use a different security solution (Lookout), but this looks very promising. For military systems in particular, there needs to be a way to locate a lost device and deactivate or render inoperable a device that is lost or falls into enemy hands during a conflict. This app shows there are already solutions adaptable to meet this requirement.

http://www.androidpolice.com/2010/11/29/theft-aware-2-0-the-most-ingenious-android-security-solution-with-the-best-root-integration-weve-seen-to-date-really-hands-on-review/

Android versus iOS in UI smoothness

A Google Testing intern recently made some public comments about how the design of Android prevents its UI from ever being as smooth as that the iOS UI. Predictably, a number of Android developers have come out against these comments, citing their own experience and knowledge of Android.

The Google intern who caused some to lose faith and emboldened the Jobsians has been cast into outer darkness, and is thereby unavailable for comment.

http://www.androidauthority.com/developers-are-shooting-down-the-myth-that-android-can-never-be-as-smooth-as-ios-47528/

Degree != Competence

I just commented/ranted on G+ supporting the opinion of another commenter that we need a better way than college degrees to measure competence in a field. A 4 year degree is an indicator that someone is able to stick with something for several years and is likely to understand the basic ideas in a field, but it’s not nearly enough to determine someone’s competence, especially in a creative field like engineering where competence requires some mastery of math and science along with an ability to approach problems from multiple directions until an approach yields an opening. This last is dependent primarily on a knack for thinking “out of the box” (or textbook) for lack of a better term. Some of this can be taught, but some is innate.

Any intelligent person who’s worked in computing for 10 years or more knows that (degree != competence). Some of the most talented people I’ve worked with had either no degree or a basic one from a non-elite school. I’ve also had to help rescue a project led by a guy with a CS Masters from MIT and rewrite work done by PhDs from good schools. In the last couple years, we’ve hired two excellent engineers, one from an unremarkable school in Mississippi and another from Penn State. In that time, we also had a CS intern from Carnegie Mellon who had a fantastic resume (National Merit Scholar, valedictorian, …) but turned out to be the worst intern I’ve ever seen. Trying to find good people seems almost like a craps shoot at times.

In fact, I’ve developed a slight leaning away from people with advanced degrees because I’ve found that the best engineers/programmers went to school to get their Bachelor’s degree as a way to get a job doing worthwhile work, while many (definitely not all) of those with advanced degrees seem to either enjoy going to school or to want the prestige and money that goes with those degrees.

Bottom line: There needs to be a better way than degrees to qualify someone for work in the computing field. Once you’re established, your reputation helps get you hired to do work appropriate for your talent and passion, but there are still limits based on degrees, and in big companies like the one I currently work for, the HR gatekeepers seem to be there mainly to eliminate people who don’t meet all the check-in-the-box qualifications, which I’m sure loses us some great people.

Sorry for the rant, but this drives me nuts. Don’t even get me started on the farcical No Child Left Behind program we have here in the US.