Good programmers: there is no substitute
Nov. 3rd, 2011 06:01 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
[Rant warning.]
One of the hazards of being semi-management these days is that I spend altogether too much time on the hiring process -- both writing reqs for new hires and interviewing people. And I keep being surprised by the question, "What kind of programmer do you want?"
The answer is, "A good one". All else is commentary.
If I'm hiring someone to work on the client, I keep getting questions about, "Do they need to specifically be a Flex programmer? How many years of UI programming experience do they need?" and so on, as if that's the important part. If we're looking for QA Automation Engineers, there are all these questions about, "Is it critical that they know a particular automation framework? How much time do they need to have spent on QA automation?"
These are the wrong questions. I do not, by and large, give a good goddamn about how much time someone has spent in a pigeonhole. Indeed, the more focused their career has been, the more suspicious I am of them. I have met Flex programmers who wrote the most atrocious code I've ever seen, and QA Engineers who thought they knew how to do automation because they could string lines of code together; both have been nothing but trouble.
While it is a *slight* exaggeration to say that Programming is Programming is Programming, it's not a huge one. Give me a programmer who knows what they are doing -- who is keeping up with the field and how to program *well* -- and I can confidently throw them at almost any problem. Moreover, I can be pretty confident that, after a fairly modest ramp-up time, they will probably be programming rings around the specialists who know an area well, but haven't spent the time really learning the craft of software.
Seriously: if you're in management, stop worrying about trying to hire specialists -- a good generalist programmer will, in most cases, be your best bet. If you're a programmer, don't spend as much attention learning specific libraries and such -- focus on honing your craft every day, knowing the general art of programming well, and exploring it in many forms. Good code pretty much looks like good code, whether you're writing databases, user interfaces, web servers, test harnesses, or anything else.
[/rant, brought to you by seeing the same mistakes made a few too many times]
One of the hazards of being semi-management these days is that I spend altogether too much time on the hiring process -- both writing reqs for new hires and interviewing people. And I keep being surprised by the question, "What kind of programmer do you want?"
The answer is, "A good one". All else is commentary.
If I'm hiring someone to work on the client, I keep getting questions about, "Do they need to specifically be a Flex programmer? How many years of UI programming experience do they need?" and so on, as if that's the important part. If we're looking for QA Automation Engineers, there are all these questions about, "Is it critical that they know a particular automation framework? How much time do they need to have spent on QA automation?"
These are the wrong questions. I do not, by and large, give a good goddamn about how much time someone has spent in a pigeonhole. Indeed, the more focused their career has been, the more suspicious I am of them. I have met Flex programmers who wrote the most atrocious code I've ever seen, and QA Engineers who thought they knew how to do automation because they could string lines of code together; both have been nothing but trouble.
While it is a *slight* exaggeration to say that Programming is Programming is Programming, it's not a huge one. Give me a programmer who knows what they are doing -- who is keeping up with the field and how to program *well* -- and I can confidently throw them at almost any problem. Moreover, I can be pretty confident that, after a fairly modest ramp-up time, they will probably be programming rings around the specialists who know an area well, but haven't spent the time really learning the craft of software.
Seriously: if you're in management, stop worrying about trying to hire specialists -- a good generalist programmer will, in most cases, be your best bet. If you're a programmer, don't spend as much attention learning specific libraries and such -- focus on honing your craft every day, knowing the general art of programming well, and exploring it in many forms. Good code pretty much looks like good code, whether you're writing databases, user interfaces, web servers, test harnesses, or anything else.
[/rant, brought to you by seeing the same mistakes made a few too many times]
(no subject)
Date: 2011-11-03 11:46 pm (UTC)You are driven, smart, and collegial. Most of your peers think you’re among the smartest people they know.
Obligatory bullets:
BS/BA or higher in CS or a related field
Preference to solve causes, not symptoms
0-5 years of postgraduate experience
Ability to close projects
Note that we do not mention our technology stack above. We believe the “right” people will be successful regardless of the specific technologies they have used in the past. That said, you do get bonus points for experience with: Ruby, Rails, Perl, C++, Apache, Oracle, Postgres, git. More bonus points for contributions to open source projects.
...
The closest person we have to an HR rep was a technical manager at DEC for many years.
Exceptions...
From:Re: Exceptions...
From:Re: Exceptions...
From:(no subject)
Date: 2011-11-04 01:10 am (UTC)(no subject)
Date: 2011-11-04 02:30 am (UTC)Incidentally, if you hear/know of mostly work-at-home stuff, I have a friend (lots of experience, in the grayer category) who might be interested.
(no subject)
Date: 2011-11-04 11:31 am (UTC)(no subject)
From:(no subject)
Date: 2011-11-04 02:32 pm (UTC)(no subject)
From:(no subject)
Date: 2011-11-04 02:33 pm (UTC)Maybe this isn't true specifically for software engineering in Boston right now, but in general, we are still working with 9%+ unemployment, so the market is still flooded with folks looking for work. While those requirements aren't technically necessary for the position, they are usually required for the person who is dong a first pass on the resumes. When you have hundreds of resumes, you need *some* criteria to cut down the list of applicants to a reasonable size.
(no subject)
From:(no subject)
From:(no subject)
From:On being semi-management ...
Date: 2011-11-04 03:01 pm (UTC)Because we are so small, and because we are solving really hard problems in our products that no one else in the world has solved, we need people that are capable of solving any problem that we throw at them.
Yes, there is room for specialization, and some of the problems that we solve are specialized. But what is needed is Programming Ability and Being Very Smart and Being Driven.
Currently, we use Python, Ruby and Clojure. I am personally fairly language agnostic, but use Python for my particular projects. The two people that I have hired directly are able to handle tasks such as writing a Windows kernel debugger from scratch, writing a userland library that can manipulate NTFS volumes directly, or do expert system analysis on classifications of data.
These are all projects that we have completed and continue work on. These are not projects that can be classified as being familiar with any language or another, but to borrow a word from Heinlein, require grokking computing at a deep level.
Fantastic
Date: 2011-11-04 03:49 pm (UTC)Actually, this rant can be used for any specified support position. Do you have marketing experience? How many years have you used Sage ABRA or PeopleSoft? Do you have customer service experience?
Anybody can answer yes to all three and be able to 'get by'.
Marketing - do you drive, look on the internet, read email, shop, read, watch tv or interact in the 21st century? Then guess what, you have marketing experience. Sage ABRA/People Soft? Just HR database programs. If you can figure out a database or have ever used Access, you're in. What about customer service? Have you ever interacted with anyone ever? There you go, you know how you like to be treated and how others like it too.
It doesn't really matter (for support positions) what your training is IN. What matters is that you're malliable, want to learn, are open to new ways of thinking, and are able to grasp ideas in a second while watching people interact with other people. Ta-Da!
But, shhh... don't tell the hiring managers that.
(no subject)
Date: 2011-11-05 04:18 pm (UTC)I actually did OK in the slush pile last time around but got my current job by giving a talk at Sayeret Lambda on JavaScript as a Functional Programming language.
I am working on being more of a generalist.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: