5 ms·
Actually I would count the skills you describe as "smarter." The fact that we don't all assume this is a sign something is wrong. Maybe it lies in that I don't
by galdosdi 10y ago
Actually I would count the skills you describe as "smarter." The fact that we don't all assume this is a sign something is wrong. Maybe it lies in that I don't remember too much emphasis in CS education on legibility and maintainability, beyond some token "practicum" classes that focused just as much on the many other "practical" topics like version control, working together, unit testing, etc.
The best programmer I ever worked with had an incredible ability to produce straightforward, simple code, that could have been written by "any fool" ... if "any fool" had gotten incredibly lucky. His code looked so obvious in retrospect, like anybody could do it. He made the difficult look easy. I call that very smart, and you desperately want brilliant people like that.
The programmers I've worked with that were traditionally "brilliant" in the sense of quickly coming up with "clever" but hard to maintain solutions only count in the middle of the pack, and I dreaded working with their code. Their code was more likely to not last as long and be thrown away in a refactor.
So I learned to aspire to be more like the first than the latter. And in doing so I saw just how damned hard it is to create simple looking "any fool could do it" solutions to hard or even medium problems. So many times I thought something was clear, but it was not to others. So many times I only finally thought of the architecture that would make it possible to write it simply and legibly after many iterations through other designs that generated much more complex "clever" code. It made me gain incredible respect for the amount of smarts and experience it takes to generate simple, easy, boring code that anyone can easily read and pick up.
- Roboprog 10y agoThose are some good points. Sometimes, though, you come across some new tricks (perhaps not that new, but anyway) that you really wish your coworkers would get on board with. E.g. - Our current big project at work uses a lot of Javascript. My coworkers are primarily die-hard Java developers (I know Java, but I don't "live" there...). As Douglas Crockford said in a presentation "[those people] will go to their graves, never knowing how miserable they were". Rather than writing a bunch of classes with one meaningful method ("Executioner", anyone?), I would rather use FP / higher order functions techniques (e.g. - partial function application, such as in Ramda.js). Also, the idea of anything approaching metaprogramming is very scary to them, rather than pasting in many copies of the same stuff with minor variations. Perhaps it's ("custom") abstraction in general that is scary, since so little is documented in most industry standard practice code. At what point do you ask your coworkers to realize that the eighties are over, and [static] OOP is not the one true hammer of sole best practice any more???
- Roboprog 10y agoFurther aside: it's funny that in popular use, "abstract" means "unintelligible", but in math, it means "well defined shorthand", for the purposes of making bigger problems approachable, at all.
- antod 10y agoIf you think abstract is bad - wait until you see what civil engineers think 'concrete' is!
- galdosdi 10y agoOh, I agree that trying to write Java in JavaScript is frustrating. To be fair, JavaScript is a language that cries out for some kind of structure to be imposed upon it.
- Roboprog 10y agoSure. Good luck getting the unwilling to follow the structure, though.
- galdosdi 10y agoI mean, it depends on the structure. Maybe a crummy one was chosen in your case. The fact that individual shops are rolling their own or choosing their own structure means on average they have a poorer one than a language that picks good defaults to begin with. But you have to pick something, or you'll have 6 developers doing 6 different things and nobody will be able to read anything
- twic 10y agoThere is an old parable about that: https://blog.oxplot.com/i-saw-what-he-meant/ https://blog.oxplot.com/i-saw-what-he-meant/
- galdosdi 10y agoOh, that's wonderful, thanks for posting it! That parable says precisely what I was trying to say, but more succinctly and beautifully