4 ms·
If the geezer with 10 years of C++ experience showed a capacity to rapidly learn a new language / framework, I'd hire him every time. Those 10 years of C++ expe
by tdavis 17y ago
If the geezer with 10 years of C++ experience showed a capacity to rapidly learn a new language / framework, I'd hire him every time. Those 10 years of C++ experience taught a lot in terms of general understanding of programming, best practices, how to "think" like a programmer, etc. (or at least one would hope; it varies, of course). That is far more important than a few years using an extremely high-level language.
I think about it this way: I am supremely confident that I could know all I need to know about Ruby/Rails to do just about anything within a few months of working on an honest-to-god project. I'm equally confident I wouldn't know a fraction of C++ in that time. As our tools continue to become higher-level and more acutely focused, they become easier and easier to grok. The learning curve of a language with C++'s history vs. a new-shit-on-the-block web framework? Forget about it. You can write a blog in 10 minutes, remember? ;)
- deleted 17y ago[deleted]
- tptacek 17y agoYou'd hire her, I'm sure, but would you pay her 70% more than the kid out of college? Because in reality you probably won't get 70% more value out of the experienced candidate.
- patio11 17y agoBecause in reality you probably won't get 70% more value out of the experienced candidate. I was a fresh graduate once. I remember my productivity less as "60% of that of a twenty-year veteran" and more as "It is a miracle that they allowed me into the room for a purpose other than to empty wastebaskets, to say nothing of permitting my code in shipping products".
- patio11 17y agoFor that matter, I don't think I had 60% of my current productivity as recently as 2-3 years ago. I can still see my first commit at the day job in the repository. That code is an offense against God. It took me two months to get working the first time and then another two years of squashing periodic bug reports. (Unit tests? What is a unit test? Is that something you do with Subperversion?) My product's code, particularly the parts of it which were laid down earliest, is so bad in some points that I wouldn't pollute a repository with it if I were rewriting today. Oh, God, the print logic. I can quote one line out of that file by memory: // Abandon all hope ye who enter here.
- mattmcknight 17y agoOn the other hand, Google's interns are producing... http://googledocs.blogspot.com/2009/05/spotlight-on-developers-gadgets-to.html http://googledocs.blogspot.com/2009/05/spotlight-on-develope... I know a developer who was learning two new programming languages and started writing serious production code within three weeks of starting his first job post graduation. He took over maintenance of a complex application and rewrote it in a new language. He managed to double his salary 18 months into the job. There risk in hiring someone unproven, but you can buy that down quickly.
- icefox 17y agoThe point isn't that they produced something shiny, but the quality of the code that backs it up. The link you presented did not link to any source code, but to a marketing blog. The quality might be horrible, but they shipped it.
- tdavis 17y agoIs it equivalent to say that I'd pay a fresh college grad who hasn't done anything but RoR 70% less? Because I'd totally do that.
- philwelch 17y agoNo. Suppose you pay a fresh college grad 50k. 70% more is 85k. But 70% less than 85k is 25.5k. So you would definitely pay the experienced guy 70% more.
- Retric 17y agoIf you are not 3x as productive 15 years after graduation as you where when you just graduated you are probably doing it wrong. The only advantage to employing young people is their willingness to work insane hours, but that pales in comparison to experience.
- tptacek 17y agoSorry. I'm coming up on 15 years, and I am not 3x more productive than the better young developers I've hired. I just don't think this sentiment is valid.
- Retric 17y agobetter young developers I've hired that's not what I said. Are You ~3x as productive Now than when You started? It's not a question of typing speed or syntax, it's a question of what you can get done in a 1 month. And how much damage you will do in that same month. One of the better examples of this is helping to debug someones program. Now I frequently hear, I was trying to do X, it almost works, but it's also doing Y, and I will say ok you made a mistake in this area. It's not just understanding code, but also understanding the typical mistakes we make. Tracing down an off by 1 error is something everyone learns, but they don't teach it in school.
- tptacek 17y agoI might be 3x better. I am not 3x more productive. I do much more than just code now, though.
- brl 17y agoYoung developers can be, and often are, highly productive but software development is more nuanced than just raw lines of code. Sensible design is both very difficult and very important and I don't think anybody gets very good at it with less than 10 years of experience. The first 100K lines or so are easy and somebody with talent who is fresh out of school is going to get to the finish line at least as fast as a 10 year veteran. The real test is the next 100K lines of code which the experienced designer is going to breeze through while the novice is about to learn an important lesson: Writing large programs is much harder than writing small ones.
- gaius 17y agoA few year's real commercial experience is often enough to at least double someone's productivity, often much more. Why? Familiarity with all the things that aren't pure coding. Understanding requirements/domain knowledge. This is the big one, if you are working in field X and you know the terminology, the business and so on, you can find out what people need and solve their problems with no messing around. Just to pick an example I am familiar with, banking, in pretty much every programming/IT job ad it will say "must have previous banking experience". Plus there's experience with the toolchain. Experience with the codebase. Knowing how to play "the game" of meetings and reports.
- kscaldef 17y agoExactly. I was hired on as a Principal Engineer at a Rails shop despite having literally about 3 hours of experience using Rails. But, I'd worked with the rest of the senior technical staff before and they knew that just didn't matter. Sure enough, a couple months later I was submitting patches to the framework. The other thing about new technologies in general, and Rails in particular, is that 2 or 3 years of experience doesn't really mean much because the evolution is so fast. There's lots of Rails lore out there on the web which is completely out of date, and if you're not willing and able to dive into the code yourself and design your own experiments you're going to make completely incorrect decisions about how to design your app and write your code.
- timr 17y agoI'm that "geezer". Coded in C and C++ for over a decade, and now I'm working in the magical world of Rails, where I get to watch 20-somethings rediscover the value of old ideas the hard way. (Given the average comment thread on Hacker News, and you'd be excused for wondering why anyone ever used compiled languages or static typing. Silly dinosaurs!) That said, while I appreciate your sentiment, I know in my heart that the author is right. All of my friends from college have moved out of programming. Many have left the industry completely -- and we're not even that old! The bottom line is that there's little or no cost advantage to hiring an older coder, when I have t-shirts that are older than the most popular development environments. Every once in a while, some young geek chimes into these conversations with the observation that one needs only "keep up with technology" to stay relevant in the industry. But even ignoring the fact that "keeping up" is usually easier said than done, the economics just don't work out. My friends who went to medical school are finishing their residencies and starting in private practice; my friends who went to law school are making partner. In most industries, you're just beginning your career when you're in your early 30s. In software, you're already old enough to be a conversation topic.
- zkz 17y agoThe key is to make the algorithms and mathematics, not the languages, your tools. Some things never change.
- timr 17y agoThe key is to get someone to pay you in proportion to the cost of obtaining that knowledge.
- aswanson 17y agoBingo. I remember being an undergrad watching all the other majors play frisbee while we suffered. "That's ok", I remember thinking "this has to pay off. I mean, why else would we be doing this and not enjoying life? Wait until we graduate, then we'll see whos living it up!" A dot com crash and several cube jobs later, those same folk are living in better homes and driving luxury suvs while I am pondering how I can escape the hell that is a modern day software cubicle job....Guess the joke really is on us.
- mahmud 17y agoIf the geezer with 10 years of C++ experience .. I know this is just an example, but 10 years is nothing. Some of us got into this stuff out of high school.
- colomon 17y agoGood lord, I have twenty years of C++ experience. Where did the time go?
- timwiseman 17y agoEverything you say is true, but you are leaving out 2 major factors that are brought up in the article: 1. The "geezer" with 10 years of C++ probably wants a lot more money than the guy straight out of college. If the company both needs that expertise and can afford the premium then they will definitely go with him, but if money is an issue they may be happy to take the younger guy for lower pay. 2. The guy with 10 years of C++ may be more qualified than the hiring manager. If the manager is focused on the needs of the company of course this is no issue, but if that manager is some middle management person in a large organization who is worried more about his little fiefdom then the company as a whole, he is likely to avoid any candidate that might overshadow him.