Is that true of you? I.e. would you be frustrated by 3-4x/year significant churn in your technological tooling and top-level business goals? Would you be excited to learn a few new toolsets? If so, why haven't you done that on your own?
Do you mean learning something new 3-4 times per year that is unrelated to large architectural changes?
In terms of 'on your own'--I don't know, maybe this person has a life outside of writing code?
I suspect by the 3rd or 4th time in the same year with people who haven't worked out what it is they are trying to achieve my level of excitement might be wearing a bit thin.
If it's a choice between stability (via proper testing, architecture, etc.) and staying operating, stability loses every time.
No matter what happens the tech world is a different place in a year. You have to adapt regardless so properly thought out code will get thrown out just as easily as 4am hacks.
Patterns (and Anti-patterns) are an extremely useful part of software development, specifically because they help engineers be more efficient at solving problems with code.
Factory, funny enough, is the name of a design pattern.
And for good measure, DRY Violation is a good anti-pattern to pick up (though I suspect you know that already even if you can't name it).
If you can't even bother with learning the language that's requested in the advert in a few days, why should a hiring manager be interested in you?
I'm also in my late twenties, and have been programming for money for over 10 years and I also like to brag about how I'm a great programmer and am fluent in over a dozen programming languages, but you bet that if I'd go for a job that requests Node.JS experience (I wouldn't), I'd brush up on my Node.JS and make sure my resume lists it as a core competency. You can't just go around saying you're a great programmer and expect people to believe it from ten years of Java experience.
This comment in particular really illustrates the sad state of our industry, and why I don't usually write comments on the Internet and why I wrote this under a throwaway account. Thanks for making my point:
To repeat: "You're all talk." "If you can learn Ruby in a few days why haven't you done it yet over the last 10 years?"
Here's why: I made well over 400K this year at my job. I am not jumping through hoops killing myself to learn new things I may not even need. My time away from work is too precious to me.
By the way, I am paid 400K because I am a really good programmer and problem solver and can use whatever tools I need to to get the job done. It doesn't matter if I've never used the language before. I will figure it out.
Plus: most places won't even talk to me because I make more than what they are willing to pay. Oh wait; I guess this is all talk too.
PS: If patio11 is reading this comment, I will happily verify these facts with him via my real personal email. To prove that this comment isn't just "all talk". I really hate the Internet sometimes.
edit: I am sorry I offended you. I really did not mean to say that you are all talk, I thought we were talking about how Java programmers should apply to SV jobs and was trying to give you a hiring side perspective, but I guess I am a bit tired and I misread your point.
BTW, making $400k in finance is not particularly high. Nor is it evidence that you're a great programmer. Finance companies have to pay huge premiums to attract and retain people.
Just about any programmer can make 2x working on Wall Street. Very few good programmers are willing to work for these finance companies. It doesn't seem like you've thought much about why that is.
Of course when you work full time, 60h/week, and don't want to resign from current job while seeking a new one, it's pretty hard, but I can assure you it's as hard for anyone else working full time.
Learning new tech stack in spare time is not easy, and you can't and shouldn't learn all of them, 'cause in a few years half of the stuff you learn today will be obsolete.
Actually, one of the reasons why I mentioned patio11 above was because it would interesting to talk to him about this kind of stuff given he's also trying to change how tech companies hire talent.
I've thought about trying his star fighter project, but it's another example of "invest a lot of time on the side in doing something tangentially related to work that may be construed as fun, and you can maybe get an interview from it".
That's what has been illustrated in a lot of the comments on this thread. "Why not learn Ruby?" "Why not contribute to OSS on the side?" "Why not keep up with new technologies?" It's work, that's why. Sure, it can be fun and fulfilling but I already spend 55-60 hours a week doing this stuff, and I have other interests. Am I really expected to do all of this stuff on the side just to get a job at a highly desirable place like a YC startup?
Let's use star fighter as an example. I already work in financial services. To some people who work on apps and user interface design and have never worked in financial services before, I could get the appeal of working on something new... But to me, star fighter is just doing my job outside of work hours in an attempt to get another job. I would rather keep solving problems at my own company, and increase my value to them in the process...
...but that means I'll just write more "Enterprise" Java, and not learn new things! It's a catch-22.
FWIW I have _zero_ difficulty believing "finance company pays talented programmers $400k" and equally zero difficulty believing "startup folks mystified how this could possibly happen when that programmer hasn't even installed NodeJS."
We ask people to avoid this kind of personal slight in HN comments because it inevitably lowers the discussion. You can make a substantive point without resorting to that, so please do.