Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm an "enterprise" programmer because I write in Java... I'm also older than the average age of a start-up employee (late twenties). I've never written a line of Ruby, and I've never written object oriented JavaScript or used Node.js.

However, I'm a really good programmer. I just happen to write the majority of my code in Java. If tomorrow we decided to use a new language, I could pick it up in a few days... I have a feeling the "enterprise" thing is just veiled age-ism. Anyone can feel free to correct me if I'm wrong, but at this point, it's literally impossible to learn every new technology. And anyone whose worth their salt should be able to learn a new environment and programming language without too much trouble.

I have a feeling that the enterprise thing is just a way for these employers to screen out the older, more experienced programmers.

This will probably get this throwaway banned, but Michael O'Church (who I am not) writes a lot about this on his blog. I tend to agree with him.



Author here. Ageism is real, and we'll be analyzing it in a future post. But in this case I don't think it's ageism. I think it's big-company-ism. Startups define themselves in opposition to big companies, and take signs of big company culture as strong negatives (which may or may not be justified statistically, I honestly don't know). But there are great programmers at big companies in any case, and startups should figure out how to hire them.


Startups should realize that this is a thoroughly idiotic notion, and should abandon it ASAP. The one thing that large software companies do well is SHIP PRODUCTS. A good software engineer is someone who can ship a product, even if its ill-defined or not feature-complete. This is a virtue. Small companies, especially startups, have a horrible track record for shipping software that in any way resembles its product plan.

At my startup, candidates from large companies are immediately prioritized in the hiring queue. This strategy has always paid off; there is a high correlation between large company experience and good software engineering practices.


Which large companies have you worked for? I've worked in both environments and seen way more failed projects on the enterprise side.

However when an enterprise ships something, the shipped product tends to be more stable. There's tradeoffs to be made and large companies often prioritize stability and their reputation over time to market and spending money.

As a startup, I would look for people who have less specialized experience and are able to cover as many of my bases as possible. Can the developer field a page at 2am and login to the production environment to fix a problem? Can the developer help my sales people with a desktop support issue while the lone IT guy is on vacation? Can the developer make the product work on a single AWS micro instances until we get some sort of traction/funding?

The theme here is a scrappy, do-whatever-it-takes mindset that's often missing in the enterprise where people learn to CYA lest the bureaucracy come down on them for cutting corners.


The big problem I see with this idea is that scrappy, do-whatever-it-takes people almost never write clean code, checkin cleanly, test properly, and practice good product design. I value these things more than "rugged individualism". Furthermore, if your software team is doing sales, that's a really bad allocation of talent. Even the tinyest of startups should have dedicated roles for the other dimensions of your business (e.g. Sales, Support, HR, CTO). You pit 2 teams against one another with the goal of producing a great product, and one team has a wide spectrum of talent, the other has great software engineering discipline, I would bet on the latter team every time.


>good software engineering practices

Definitely aware of several hot startups that don't seem to value this at all. Well it's a tradeoff that they are hopefully consciously making.


How does that jive with the statistic in the article that engineers that have worked at companies like Google, Microsoft, Apple, Facebook, and Amazon pass interviews 30% more of the time. These are all very big companies.

If startups are so opposed to big companies, shouldn't having these on your resume be seen as being negative?


Good point. There is a short list of big companies that are taken as positive signals (Google tops the list), while most others are negative. I think that this gets at a contradiction.


And thus it's more about culture than size.


Funny thing is, despite Ageism, supposedly there is a massive "shortage" of developers.


Hiring manager here, and after many interviews with enterprise programmers, I do find myself putting more and more of them into the "no" pile right off the bat.

The problem is that those candidates, in my experience, tend to throw up way more red flags than others - their code is extremely verbose, they rattle off factory patterns like they're reading a textbook without any inkling what sort of problems they're actually solving, they parrot popular opinions without being able to articulate the reasoning behind them, they're not comfortable with developing a new feature without extensive documentation, and they miss the forest for the trees when it comes to things like testing and code organization.

Enterprise programmers usually leave me with the impression that they're heavily indoctrinated into one specific mode of thought, and that they would struggle to break out of it.


Most of this is fixable by driving YAGNI into their heads.

Beyond that, I would claim that most people startups look for (recent graduates) have no ability to understand the reason behind popular opinions. Because they don't have the experience to do so. They might be able to parrot it though.

Interestingly, I'm used to working in a pretty fluid environment without a lot of specs. But we recently started developing something with very tight rules and an extremely picky end user. It's much less efficient without a set of specs, which the project managers didn't have the constitution to make since we aren't used to doing so. As a result I basically have to constantly go back to them on things, which isn't very productive.


It's funny you say that. I can't name one factory pattern off the top of my head... Never needed to learn one. I should clarify -- I'm in my late twenties, and I've spent my entire career (10 years) writing Java code. I don't understand how that negatively hiring managers against me.


Have you worked at multiple jobs over those 10 years? As a hiring manager (working with only the limited data you've provided here) I'd be concerned that you value stability very highly, and you might be thrown by the rate of change (in requirements, tools used, business goals, desired feature set, etc) that is typical of a startup. Long tenure at a single job suggests you enjoy getting deeply specialized and developing mastery of a stable set of tools, which is needed at a certain stage of company but not at most early-stage startups.

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?


Wow. Really? Why is stability a concern? Much of engineering is making solid decisions and fucking sticking with them rather than changing to the latest toolset because that's what hacker news says is the best today. Are you trying to build a product and company, or a blog post?


Stability is a concern because startups are not stable. In 6 months time Apple could open source something that makes your last 5 years of work irrelevant in a night. If you can't ship in 6 months you're company will probably have shut up shop in 12 because someone already ate your lunch.

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.


"Would you be excited to learn a few new toolsets?"

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.


Is this really true of the startup world? What possible business reason could there be for swapping your stack / tooling 3-4x per year?

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?


My opinion is learning design patterns are very important to being a really good programmer.

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).


Well sorry to be crude, but it just signals that you're all talk. You say you're a great programmer, and could learn to program in Ruby in a few days, yet in 10 years you've never done it, even though you are apparently applying for jobs that are interested in that skill.

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.


> Well sorry to be crude, but it just signals that you're all talk.

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.


I apologize. I did not intend it as a personal slight, I was trying to make a point about presentation to potential employers, but I misunderstood the parents point and phrased it in an unfortunate manner.


Not to worry! We're all figuring this out together.


Who ever said I was interviewing for a job? I was commenting on the state of the industry as a whole. Read some of the comments (and the article). The article mentioned that one person who multiple companies thought was the best they have ever seen got rejected from the first company he interviews with because he didn' write tests. Hiring is so subjective.

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.


I'm slightly busy this week with the impending launch of Stockfighter and would prefer to not be HN's designated notary public, as I'm just another geek here, but if you want to chat about career stuff my inbox is always open. (Offer good for anybody.)

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."


Well with this kind of compensation, wherever you live, if you needed to find a new job I guess you could probably survive a month or two without a paycheck, learn a new language and do a pet project, contribute to open source.

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.


I should work in finance.


Yes. You should if you want to make a lot of money...


If you only care about money.

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.


Finance companies do have incredible technical and regulatory challenges that require good programmers. There are a number of strong programmers who work in finance and are indeed attracted to some of the challenges around finance. I have worked across a number of banks and each has had its own challenges and I have worked with talented and motivated programmers working to solve these.


I'd be really interested to know the rough details of your work situation. Sounds like you've got a pretty good thing going.


What sort of company do you work for? Is it a government contractor? I've known many highly paid people in that line of work that are not fit for startups.


All I'm willing to say here is that I work in financial services.

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.


If you're making $400k, but you don't really love your job, my suggestion would be to save as much money as you can, to the point that you can become financially independent. Then you can start your own startup if you want; or take a year off, half to relax and half to learn some new stuff, and get a different job, if that's what you want.


I'd be very grateful if I can talk to you about your journey / career path. Could you shoot me an email (mailshanx at yahoo dot co dot in)? I'll be immensely grateful if do :)


I'm not saying you're all talk, I said you signal you're all talk. If you don't have issues getting a job, why are you posting about the state of hiring here? It makes no sense. You've got replies trying to understand if there's ageism that's dragging you down, but you have a 400k job.

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.


Hmm, maybe these "signals" you're reading are not actually good predictors of either skill or marketability.


[flagged]


We've banned this account for repeatedly violating the HN guidelines, despite repeated requests not to. If you don't want it to be banned, you're welcome to email hn@ycombinator.com. We're happy to unban anyone as long as there is reason to believe that they'll follow the rules in the future.


benihana made good points IMO. A couple PG-13 words doesn't warrant a ban.


If you mean profanity, we don't care about that. We care about chronic abusiveness. Note those words 'repeatedly' and 'repeated' above.


>Enterprise programmers usually leave me with the impression that they're heavily indoctrinated into one specific mode of thought, and that they would struggle to break out of it.

That's been my impression as well, both coming from the enterprise and interviewing people from that domain. The most deleterious thing I've noticed is a lot of them, like GP, are convinced they're really good programmers and the reason they can't break out of the Enterprise is because startups are biased against some arbitrary and unimportant part of their identity (like their age), not their actual abilities and attitude. I say this as a guy who's likely half a decade older than a guy in his late 20s who thinks he's too old to work at a startup.


Valve calls this "beaten wife syndrome" and apparently it often goes away after a while (if not, they fire the new hire).


The first time I read your post I missed the parenthetical in the first paragraph, and was inclined to agree with you. Then I looked again and saw "(late twenties)", and had to laugh.

On the one hand, you're right, you can't learn everything. On the other, to be able to realistically claim that you can pick up new languages quickly, you should already know three or four different kinds of languages. If all you know is Java, you probably are farther away than you think from picking up a very different language like Ruby. I would encourage you to do some study on the side. Your late twenties is far too early to let yourself get pigeonholed.


>I'm also older than the average age of a start-up employee (late twenties)

I took this to mean that the average startup employee is in their late twenties, and he is somewhat older than that


Oh, you must be right. Silly of me.


Actually, it seems your first understanding was actually correct: https://news.ycombinator.com/item?id=10698634


I am pigeonholed.

Sure I know other languages: Shell Scripting, Perl, HTML/CSS/JS, Groovy, SQL, C#, etc, but 80 percent of the code I write is in Java. I'm at a Java shop and have golden handcuffs. It's Java or bust for me.


Don't doubt yourself. There are a lot of great companies hiring Java developers; you don't have to worry yourself about the standard YCombinator group.


> I just happen to write the majority of my code in Java. If tomorrow we decided to use a new language, I could pick it up in a few days...

The languages in your list are:

* declarative: HTML, CSS, Groovy (for Gradle), SQL

* scripting: Shell, Perl, JS, Groovy (for testing)

* Java-clones: C#

I found it difficult to pick up Clojure and Haskell "in a few days" when all I had was experience in those types of languages. In fact, mastering each of those languages requires a change in thinking that can only occur over a much longer time.


I agree with you about Clojure in particular.

I did do some non trivial work in Lisp in a graduate class, but its not the same as using it all day. I don't believe I would seek out an opportunity where a Lisp dialect was the programming language of choice, anyway...

(I found ML to be easier to work with than Lisp. I guess it's technically not a pure functional language though).


Neither is Lisp a pure functional language, though it might have been taught that way in your class.


I'm also working mostly in Java recently, and our project has a small amount of Scala (left over form and engineer long since gone). I am finding it really hard, on the rare occasions when I need to work on the Scala part, to get my head around it. I know I need a week or two to "get" Scala - but I just can't justify the time.


The parent could be stating that late twenties is the average age of startup founders, not that that they are in their late twenties themselves.

I do agree with you that someone who claims to pick up new languages in a week should already have picked up a few languages. The grandparent says they only do the _majority_ of their programming in Java, so perhaps they have that covered. I'd love to know what the other languages they've chosen are, and their dissimilarity to Java.

I don't know how to evaluate their claim that they're a really_good programmer, given that it's a throwaway account. But then, given the data of this article, I guess no one does.


I've written a lot of code in both Ruby and C#. Like a parent, I love both of them for completely different reasons.

From a pure language standpoint, Java and C# are _really_ well-designed tools. I call them "Cathedral Languages" after esr's "Cathedral and the Bazaar" -- both were designed by highly-qualified teams of experts who had the privilege of spending years designing them, after already spending collectively many lifetimes doing language design. For examples of what I'm talking about, look at C#'s implementation of generics. Look at the quality of .NET or Java's multi-generational mark-and-sweep garage collector implementations. Ruby has a lot of warts. It's slow. MRI/REE are children's toys compared to the CLR or JVM. Ruby's implementation of coroutines (blocks vs. procs vs. lambdas) is a huge mess, its concurrency story is terrible, it has nothing like .NET's async/await...I could go on, but I feel the point is made.

However...

It's easy, when using .NET and Java, since they're such "batteries-included" languages, to get into the mindset that "I'll never need another tool", which is _manifestly_ untrue. I am a committed polyglot programmer and I am appalled how frequently I encounter "cultural ignorance" within the big enterprise language communities. So I think the issue is more cultural (O'Church writes about this), one of trying to avoid "Java Shop Politics", with the associated ManagerFactorySingletonImpls, needing to write about 100 lines to get a single thing done, etc. The problem is the cultural baggage that many enterprise developers bring with them, not the language itself.

In my current project, I'm doing small-program development in .NET for a Windows LOB project. It's pretty refreshing. I get all the benefits of UNIX-style systems design, i.e.. small composable program elements, services, Git (TFS? are you kidding me?), proper CI/CD, and command-line automation, alongside the maturity of not having to deal with breaking changes on point releases of OSS libs, a thoroughly-documented, consistent BCL (.NET Framework 4.5), high-quality runtime, and generally less "hipster" culture. I'd highly recommend it.


I work in an enterprise environment though my skill set is mostly on the admin side. Ageism may play a part in the bias against enterprise workers, but other factors exist as well - whether justified or not.

1) Over-specialization - the vogue for startups is to hire full-stack engineers, which to me reads as a desire to have one person perform the work of three. The constraints of a startup environment may justify such desires.

2) Risk-aversion - many of us in enterprise environments groan about all of the meetings, deferments of decisions to superiors / domain experts, and other risk-avoidance strategies, but in the end we like our butts covered just like everyone else.

3) Tolerance / preference for a certain amount of friction - some might call this a lack of urgency or an excess of complacency. Consider the problem of selecting a platform for your new project. In most enterprise environments, the decision has already been made for you - what is on the approved product / vendor list? Another is how to get a person who reports to a different chain of command to do their job.

All of these factors and others seem to exist at odds with the startup culture, which is a general term for the composite self-image of a startup's founders. Generally, they see themselves as pirates who plunder market share from the lumbering galleons of large enterprises, at least until they sell.


I think a lot of companies want to hire people who also have programming as a hobby. It seems if this was true it would be very unlikely that someone would be a seasoned great programmer who only ever programmed in one language. I'd be curious why this candidate never wanted to try other styles/approaches.


I never understood why that was a prerequisite. I program for 60 hours a week. So what if I don't want to do it on the weekends too.


Depending on your situation, maybe you could try to push some new technologies to your current company? (could be hard, depends what company, I guess you work in finance, well that's double hard then)

Anyway, personal anecdote: I know a guy who was a Java programmer for almost a decade, in a Java-heavy corporate environment. The company's been also investing in frontend for a while. Being bored with Java development, he learnt JS, and started following angularjs (stackoverflow, github issues etc.) in his spare time (a bit in the morning, a bit in the evening, just regularly), and within a year, with the support of a senior manager, basically became a "free-electron" angular evangelist inside the company.

The transition was pretty fluent, now he works on angular-related stuff full-time.


Unfortunately, tinkering in your off-hours is a key way for programmers to keep their skills current. The industry changes rapidly and the skills that were most marketable over the past 10 years are not the same as those that will be most marketable over the next 10. If you're not changing jobs constantly, the rate of tech change at your workplace is unlikely to be enough to keep your skills marketable. So you need to tinker.

This is one reason why people 40+ with kids tend to migrate into management. Their technical skills are getting rusty and having kids decimates your ability to take on major tinkering projects that help you learn new skills. However, their people skills are evergreen and even sharpened by their experience as parents.


Why is this not true in other professions? Why don't hospitals give preference to surgeons who like to dissect frogs in their spare time or build better scalpels on their garage workbench?


I know you are being rhetorical but to those that don't know it's because surgeons have a proper profession that protects surgeons from management/lobbyists/politicians etc bossing them around.

Software developers don't have such protection and any mention of such a thing will get you blackballed within the industry by employers and ostracized by peers as most have bought in to the narrative that cooperating is bad for the individual.

However, my SO is a physician and they spend A LOT of time on skill mastery beyond med school and residency, however, their keeper is their profession, not their employer which is a major difference.


> However, my SO is a physician and they spend A LOT of time on skill mastery beyond med school and residency, however, their keeper is their profession, not their employer which is a major difference.

I spend a lot of time outside my job on skill mastery as well. I do not do it in ways or domains that translate into pretty Github portfolios.


I think average surgeon's skills are probably pretty sharp (pun intended), however, in my experience the knowledge of a regular small-town GP's indeed usually is not very up-to-date.

Regarding the OP's question: new hip languages and frameworks evolve way faster than human body, and "it works" is more important in medicine than "iterate and fail fast" (hopefully:)

My personal theory is also that partially the high expectations are due to open source / hacker ethos (there's generally no medical open source movement, or in any profession outside of IT AFAIK, at least on such scale). The cycle goes like this:

- some folks want to do something cool for fun and/or to get some fame for showing it to the public, or get famous for inventing a known lib/framework

- companies see they're smart and hire them

- other companies follow the trend, and require open source contributions or at least building space shuttle over the weekend

- a number of devs don't want to lag behind, so they join the bandwagon, and they create even more cool stuff and even more open source MVC frameworks

- now, the cycle reinforces itself, everyone is doing cool stuff and contributing to opensource, if you don't, you're excluded

edit: fixed typos


I don't think software is all that exceptional in this regard. Any profession has certain visible achievements that distinguish its world-class members. For software, it's cool open source projects; for chefs, it's creating a great restaurant; for doctors, it's publishing influential novel research.

In each of these fields, the visible achievement isn't exactly the same as great performance in the field. You can get unlucky in scientific research and end up with nothing publishable; you can cook mediocre food but market it really well; or you can create the latest trendy build system instead of just mastering Gnu Make.

The misleading thing may be the assumption that most successful open source software projects are done by unpaid hackers on their own time. Perhaps that used to be the case, but many of the hot open source projects in recent history -- from Rails to Docker to React to Swift -- are built on the clock by successful programmers employed at big and small companies. But software is unusual in that serious contributions can be made by people without any institutional support.


Good point. This is possible for surgeons because medicine is a stricter hierarchy of professions that software: you decide to become a surgeon or a nurse or a PA early in your career, compete for that privilege, and don't change. Advanced specialist doctors often work in teaching hospitals and devote a large chunk of their time to research; at lower-level medical professions, you might get continuing education credits. These tiers are well established over many years in the industry and the schools that train the next generations of participants.

I'd say that top achievers in the software industry can also command similar benefits, but the mechanism is different. Instead of leveraging a credential into research and leveraging cool research stories into grant funding, software people get to do what they want by leveraging hard work, luck, and great stories about what they can do into great jobs or investor dollars. There are pros and cons to each system, but one big virtue of the less structured software world is that it tends to respond to market opportunity a lot more efficiently than something like medicine.


Doctors are already required to perform continuing education beyond their normal work duties (ie still meet their quotas). These requirements have actually been getting more and more onerous over the years. My mother works in primary care, and the house always has medical related magazines and journals all over the place.

So if you are in medicine, you are required to at least go through the motions of keeping up on things.


Because surgeons are already workaholics with insane work/life balance issues, perhaps? Same for many other professions.


What? Doctors have to do a crazy amount of education in off-work hours.


I find my singleness/childlessness to be a MAJOR strategic advantage in the modern workplace. Because I can travel more and take on clients outside of the HQ area, I provide a value that other people can't. Still moved into management, but I can also stay on top of new technologies and remain agile.


Indeed so what, but do you program on weekends anyway? At least sometimes? Earlier in the thread you complained about golden handcuffs. That indicates there's something you'd rather be doing than your work, but the pay is too good to leave. I scratch my own itches with occasional weekend or night coding and usually it's for the fun of it, learning or keeping up with the trends can be a side benefit but not the goal. Often I work with one-off projects like coding a game using a new engine in a functional language. If I didn't need or like money as much I might just do these fun projects all the time. I think this personality of programming-as-hobby is pretty common in the field, and when we run into people who program strictly on the job and never any other time, who started programming only in college when they decided to get a degree and only did work for assignments or internships before getting hired, they may be really talented programmers on the job (which is why you can say "so what") but something feels off culturally. It'd be like meeting a guitarist who rocks with the best of them on stage while being paid but never plays off-the-clock or seems to have any interest in the instrument or the scene or the genres of play beyond their ability to make money. https://news.ycombinator.com/item?id=7423626 makes the point well that for many programmers, we're just potheads whose potheadery became valuable.


60? Isn't that already your weekends?


Requiring programming in off-hours is pretty nuts, but in general if you're in a huge-stability big-corp programming job you're not going to be changing tools often and that will have consequences when you want to be hired at a startup.


I think age-ism is part of it.

However, being an Enterprise dev myself (kind of), I feel that Startups don't think Enterprise devs "move" fast enough. They are too busy abstracting things and trying to get to the holy grail of the "perfect" architecture. Startups don't necessarily care about that right away, but enterprise devs have been steeped in it.


Yeah well, that depends on whether you're used to working on a mature project with lots of structure and process (and usually, customers) or something newer where you're more in POC mode.

I'd favor someone who could do either but I guess if you have to pick one or the other I'd take "hack and ship" over "let's make it perfect", especially considering the second probably has lots of great options at BigCo.


> If tomorrow we decided to use a new language, I could pick it up in a few days...

If all you've written is OO code, this is probably false bravado.

Chances are you're not going to be productive in Prolog or APL in a few days without some prior exposure to those concepts.


I'll just point out (as a much older engineer than you), that this article is HIGHLY skewed to YC Companies, that have self-selected as not solving hard technical problems.

As a founder, being in YC is probably great.

As an engineering employee, it doesn't seem all that compelling to work for a YC company compared to a non-yc company. None of the benefits of being a YC founder seemingly apply to an employee of a YC company.

This feels like serious echo-chamber nonsense that has little applicability outside the world of startups (and more likely YC startups).

Glassdoor just listed the top companies to work for. https://www.glassdoor.com/Best-Places-to-Work-LST_KQ0,19.htm

Airbnb (YC company). First job i found on their careers page (note, required a lot of clicking...):

https://www.airbnb.com/careers/departments/position/90884

    Back-end, Front-end, Full Stack and Machine Learning engineers.
    Strong proficiency in any of: C/C++, Java, Python, Ruby-on-Rails
    Exposure to architectural patterns of a large, high-scale web application
    Rigor in A/B testing, test coverage, and other web best practices
Hubspot. Jobs page: http://product.hubspot.com/apply?gh_jid=86940

Back End: We write lots of micro-services, primarily with Java 8. Our APIs are RESTful and use the minimal Dropwizard framework, and we take advantage of Kafka, Spark, Hadoop for processing volumes of data.

And Zillow (not I skipped Facebook,Google, and Linkedin, and went to Zillow as it's the first Seattle based company listed).

http://www.zillow.com/jobs/openings?j=oXn70fwb

Strong experience with Java, Objective-C or C++


The difference in skillset and mindset in a large organization vs a startup is pretty huge. A large organization values stability and conformity (your software must work within usually a much larger picture), whereas in a startup the organization values speed and flexibility (large business changes or new data may come in at any point). The challenge when coming in from a big company is convincing people you can "hack" it to get things done quickly while still bringing the monolith of process and organizational knowledge from the big company.


age-ism for somebody in the late twenties? That sounds, ... dunno, exaggerated or even ridiculous.

I'd expected age-ism to start at the 50s or maybe 40s, but then I'm not in Silicon Valley either :-)


Can not find it now but apparently the average age of a developer in Facebook is way below 30 (27 IIRC).

I guess it could be true that in some startups if you're 29 and everyone is 22 you're not perceived a "cultural fit" (my evidence on it is purely from HN threads though)


More likely it's just an inability to judge the programming skills of someone writing in a language you are unfamiliar with. My guess is that most YC founders don't write in C# or Java. Whether it behooves them to screen those applicants out is another question.


> I've never written a line of Ruby

I say this exact same thing on my Linkedin profile: "I have never written a line of Ruby... but I bet you can make me if it comes to that."


Anybody who expects you to know every new technology is a fool. The most important thing is being able to teach yourself the new technology and figure out its kinks.


> However, I'm a really good programmer.

How do you know?


Plead see previous comment about my compensation. I don't think a company would pay someone that much unless they were really good.


I don't expect any job actually programming pays more than that, even if you are literally doing 1 1/2 jobs (60 hrs/wk). Only way to get that kind of pay and work for someone else is as an executive and a higher up VP/CTO/CIO etc.

Keep that job and don't spend all that money in one place. You might be one of those folks who can retire while they are (relatively) young.


That's actually the plan... And then maybe join a SV start up because money doesn't matter anymore...

Going to be tough to do as an enterprise Java developer though. =P.


Naw, just learn a new language or two when you quit.

Haskell is a particularly good choice. After fighting with Java generics for decades I found it really nice to work with a real type system.

Also, go is trivial for an experienced Java programmer to master.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: