3 ms·
I am pretty sick of the comments I read here. It's like everyone that sticks out must be destroyed. What if the guy is really enormously talented and his collea
by bitL 10y ago
I am pretty sick of the comments I read here. It's like everyone that sticks out must be destroyed. What if the guy is really enormously talented and his colleagues are lazy guys that stopped learning the moment they finished their education? I hope he realizes he is on his own, starts his own company and sells his services for 200x price he would get as a salaried person. That's what his managers really deserve.
- notacoward 10y agoAs others have pointed out, if this is the third time then it's pretty highly likely that there's more involved here than programming skill. Remember, we're only getting one side of the story. But let's assume for the sake of argument that it really is about a coding-skills gap. Most code will be read far more than it's written. Somebody else will have to read and maintain this guy's code after he's gone, especially since he's a contractor. I think we can all agree that there are many ways code can be good or bad, and that it can be good in one way but bad overall. If this guy's code is hard to read and maintain, then in the most important sense it's not good code. Nobody will care that it's "intelligently decoupled" as he (and he alone) claims. Are there comments to make the relationships or interactions between these decoupled components more clear? Or external documentation? Decoupling is great in the abstract, but if it obscures intent or effects then it's bad code. Ditto for any other kind of "greatness" we might attribute to code. If it can't be maintained or enhanced efficiently, its greatness is transitory at best. This isn't about "sticking out" so much as putting one's own interests ahead of the employer's. If the employer quite legitimately values code that is consumable more than code that is impressive, and you insist on making the opposite tradeoff, you're not providing what was paid for and you're also showing disrespect to everyone else involved. For that you should be fired.
- bitL 10y agoThird time might mean that he is just unlucky to find the same ol' company type or that the prevailing culture of French workplace is that of doing nothing and smiling to everyone around, and getting promotions by kissing up. He might be headhunted by Google/FB/Netflix etc. later. I know a guy who was absolutely being destroyed by his boss and director (by being simply too good and threatening them, while they were pompously presenting his achievements as their own outside), it drove him to mental hospital, he rebounded and now is a top management member of some famous German company directly affecting business with those two guys (i.e. they aren't getting any business from his company anymore). If you decide to unleash mob on somebody because "he simply can't be that good", think about the consequences. In 5 years you might be shown the door as you become the blocker for your own employer's business. It's delusional to think that everybody can read somebody else's code. Imagine Linus was employed by such employers; he would be fired within a month as nobody would be able to understand what he wrote. But right, it must be that guy who is wrong. Show me also which new hire is able to maintain production-grade Perl/Scala/C++/JEE code easily? It's a pipe dream of management. There are so many nonsenses in this discussion it's unbelievable how low our business now sank. It's like employer expects a person to be their company's slave. Exactly the mindset most of us hate with a passion as we got into computing with the goal of changing the world, not propelling everything that was horrible to new heights.
- notacoward 10y ago> Imagine Linus was employed by such employers; Your hero-worship is cute, but Linux succeeded precisely because a whole lot of people could read and understand and extend Linus's code. Furthermore, it was based on Minix, which was explicitly written with understandability in mind. That is great programming. > Show me also which new hire is able to maintain production-grade Perl/Scala/C++/JEE code easily? While it's true that not every programmer can read and maintain every other programmer's code, that's a bit of a strawman. The question is whether some easily hired programmer can maintain the code. If it requires someone with buckets more ability and experience than average, then it's too esoteric. I'll bet I can write more advanced code than you in a more difficult problem area, but I know a lot of my code needs to be maintainable by mid-level programmers (or below) so I write it in an appropriate style and try to explain it well. The OP was obviously incapable of doing that. If 11 is his only setting then - again - he's a poor programmer. It's possible to be passionate about programming without making it one big ego contest. If you want to write "clever" code, stick to TopCoder or HackerRank. If you want to write code that actually stands the test of time and benefits real people in real production, that's a whole different thing.
- tdb7893 10y agoMost of the cost of developing software is spent on maintenance. Even if you are a 10x rockstar or whatever if your code is twice as hard to maintain you are a huge liability to the company. If your boss wants maintainable code then it is literally your job to write maintainable code, if you can't do that then it definitely is best to leave the company and find somewhere where you fit better.
- JoeAltmaier 10y agoNot true any more! Most software is write-once. If you spend more than a little time on it, you're wasting your employers time and money. The whole 'agile' thing is all about writing code like the wind, to a minimum spec, and never revisiting it.
- notacoward 10y agoYeah, and it works for apps. Do you think it works for operating systems and other infrastructure software? Nope nope nope. That code still lives on for a long time, and I would run very far away from any such software written with your "write once" mentality. If I wrote data-storage software that way I'd expect to get fired and I'd know I deserved it.
- bitL 10y agoThat's the thing, I was writing what you call infrastructure software, powering large telecoms of Europe, going super deep with transaction processing, ensuring ACID down to cluster failure level, high availability, and often there were some "tabu" areas nobody was allowed to touch because they simply worked somehow, nobody understood consequences of changing them in production and they were just too critical to do something about them. And they were written in an absolutely horrible way with no documentation nor comments, probably spewed out during a week-long night shift of some once-in-a-generation genius in Santa Clara. According to you, (s)he should have been fired because the code wasn't maintainable (nobody was able to understand it down to all details as it would require top-end education in distributed algorithms, formal verification beyond mere PhD), yet was powering half of the world and made the company insanely rich.