Hacker News new | ask | show | jobs
by eitally 4025 days ago
I'm shocked you're asking that question. Most programmers are vocational and work for corporations. Most corporations try to force standardization. As a result, most programmers are significantly stronger in one language/platform than any other (whether they have any experience in others or not, which they usually will).

As a dumb example, when XMLHTTPREQUEST hit the streets, it was a paradigm shift in enterprise, but a pretty easy one for web developers to add to their toolbox. Years pass.... When everything became javascript, that was much harder, especially for the .Net folks who came from a VB6 background rather than a pure HTTP/TCP/CGI background. Lots of companies are still in infancy with adoption of modern front ends, mostly because their programmers are not polyglots and actively resist learning new things... and you can't just abandon hundreds of legacy apps through hiring better educated, modern web developers with the limited budget most companies have.

A few years ago we made a decision to shift from a .Net (+MSSQL+JQueryUI) stack to a Java stack, mostly for licensing cost avoidance after MS raised the price of SQL Server dramatically with 2012. More than three years later, >90% of our internal apps are still .Net and only a handful have been released on our new preferred stack (Java/PostgreSQL/Bootstrap/Angular) and probably only 10% of the programmers are competent enough to work independently using the new tooling.

This sad state is an area where there's a lot of naivete among young programmers and startups. The corporate world just doesn't work in remotely the same way. ... ironically, a lot of "progressive" corporations end up creating mini-Innovation teams internally with their best & brightest, who are told to "act like a startup" and end up basically creating 75% of all the new stuff ... until it requires an interface to a legacy system and the devs outside the team refuse to cooperate out of fear.

Oh, it's a mad, mad world.

3 comments

Shocked? Really?

While I'm certainly stronger in one language I'd say it's quite normal to use at least 3 programming languages daily. As a Unix guy it's even more. If I just want to write a Python hello world I need to know some Python, some Bash, some Vimscript, some Terminal I/O. Many of my projects also have Makefiles, additional bash scripts (which includes SED and AWK besides Bash). Interaction with databases, APIs, JSON or XML or INI configs, HTML, etc is also common. And let's not forget that most systems that have grown over the years have a few DSLs to interact with their tools.

So before I finish my first coffee I've probably used 6 languages already on a typical work day. I think most coders in my company are fluent in at least 10 programming (&related) languages. And while our software development team is certainly better than my last gig I still hope it's not the top of what software dev teams can be.

And your most prevalent point is that company enforces some language usage. It's often not the same if you switch. So if you have more than 5 years you probably can increase the typical programming language fluency about 50%.

Also your example about switching stacks. Your first stack had .Net, C#, SQL, JS and JQuery. Now you at least sometimes also use Java, and whatever Bootstrap/Angular require.

I know exactly what you mean and I agree, but your scenario doesn't cover most enterprise web developers, who likely live in Visual Studio or Eclipse/NetBeans/IntelliJ 95% of their day, especially if there's strict separation of duties and they aren't allowed to directly touch the DB server/admin console.

I got fed up with this state of affairs a few years ago and stopped looking for .Net or Java developers and started looking for self-described hackers, assuming that would increase the odds that they had some passion for programming and could/would/had pick up whatever tools they needed for the job. It has worked well.

As an aside, though, especially in countries like India, Brazil, Mexico, Chile, Bulgaria, Poland, and others which are low cost recipients of outsourcing dollars, "software factories" are common, and in places like this it absolutely is common for an individual programmer to literally spend their time all day, every day doing the same one type of thing. Imho, the higher the CMMI number, the worse this gets (the pinnacle is the "just write a function to pass this test. No, it doesn't matter what it's doing or what this software is for. Just pass the test.", where developers on the front line are plug & play cogs who don't even know what they're working on).

Interesting. Haven't thought about this kind of businesses and you're right, there might be many more such developers than people like me.
> ironically, a lot of "progressive" corporations end up creating mini-Innovation teams internally with their best & brightest, who are told to "act like a startup" and end up basically creating 75% of all the new stuff ... until it requires an interface to a legacy system and the devs outside the team refuse to cooperate out of fear.

I've been in exactly that situation, working on a small 'startup' team inside a large, traditional organisation. The friction between the 'old' and 'new' camps was heartbreaking.

You need to have a Baord level champion who can steamroller any silos and get stuff done.
Eventually, we got exactly that, a leader the Board would actually listen to and respect.

This was after I'd moved on, but I'm led to believe that things have improved greatly since that change.

I don't live in startup world, but some stuff comes over the transom and lands on our desks. In a given month I might work in PL/SQL, T-SQL, JavaScript, VB.NET, C#, and maybe Perl and Python. Am I stronger in some than others? Absolutely.