6 ms·
One time, when leaving a company, I helped interview candidates for my old job, since I could best tell what skills are needed and to what extent. I reckoned a
by thegeomaster 10y ago
One time, when leaving a company, I helped interview candidates for my old job, since I could best tell what skills are needed and to what extent.
I reckoned at the time, from most interactions on the Internet, that I am (globally) a mediocre, if not below-average, developer - in each discussion I participated online, there were always people above my level, from the ones having a slightly better understanding of the subject to the people whose depth of knowledge appeared somewhat otherworldly.
This belief was particularly strengthened by the fact that I didn't have much contact with real-world developers in real life, as my friends tended to come from different backgrounds.
When the interviews came, I was astonished how many of them couldn't code their way out of a paper bag. The ones who did, wrote code with messed up indentation, inconsistent style, ugly and hackish approaches, and the like. I couldn't imagine how someone could leave their code like that and say "there, this is my finished product." But here they were, and it seemed like they didn't really see anything particularly wrong, or just not important enough to justify the added effort of cleaning the mess up. It was a very strange moment for me.
I believe this to be an example of the classical selection bias: people inclined to participate in online discussions, answer questions on StackOverflow, write blogs and type out detailed technical comments on HN are on average a lot more skilled than the average just-earning-my-living developer fresh out of some half-assed "be a software engineer and make tons of money!" three-month course.
- furyofantares 10y agoThere is another very strong bias that goes on when hiring, though. Take 9 competent developers who tend to get offers and 1 that can't code their way out of a box. That 1 could very easily do more interviews than the other 9 combined before landing a job (and will be back on the market sooner to boot) and interviewers might conclude them typical and the other 9 atypical even though the reverse is true.
- keithnoizu 10y agoI make constraint based short term implementation decisions You sometimes resort to short cuts to meet deadlines. They, are hacks who don't know how to code. But yeah I never consider myself to be a great developer until interacting with other developers.
- leesalminen 10y agoIndentation! Not much in this world upsets me as much as inconsistent indentation. Ruins my day any time I have to actually read 500 lines of it.
- tiglionabbit 10y agoWouldn't it be nice if all languages made indentation significant? Or at least included a tool to fix it.
- wcarron 10y agoVim has a nice command to fix indentation from the beginning to end of file: "gg==G (include the dblquotes)
- reitanqild 10y agoJust don't uncritically apply this to all files without thinking twice and also consult with your team. :-/
- rifung 10y ago(Assuming that vim knows how to indent the language you're editing and in the way that you want)
- throwanem 10y agoEmacs does the same with C-x h TAB, or you can mark a region manually and reindent its contents with TAB. As with vim, this depends on being in the right major mode for the language you're working with, which should be automatic for most languages (except Perl, which is screwy, because of course it is), and depends also on that major mode knowing how to cope with the code and being configured the way you want, which should be reasonably trivial for most languages (except Perl, which is screwy, because of course it is).
- GlennS 10y agoA lot of people without much programming experience seem to really struggle with nesting. We take it for granted, but I suppose it actually involves some reasoning about evaluation order of arguments. For those people, persuading them to indent can be the difference between them having a chance of learning the knack or just flailing randomly, getting frustrated, and giving up. (The other lesson is: if you're building a DSL for non-programmers, try to avoid putting in nesting and make everything really flat instead.)
- BurningFrog 10y agoThe other selection bias here is that bad programmers have to interview a lot more than good ones.
- Bahamut 10y agoI worked with someone once who had a really sloppy/inconsistent code style, but the code he wrote was rock solid. His subsequent (and current) job is now as a very well-known expert as as developer advocate for one of the big four tech companies. You'd be surprised at what you find developers out there doing, the only good metric on a person being a good developer is writing fundamentally sound code. Literally nothing else matters.
- logicallee 10y agoI hadn't heard of the term "big four" tech companies - does that denote Google, Facebook, Apple, and Microsoft? (just my guesses)
- jbigelow76 10y agoI've always heard it as Google, Facebook, Apple and Amazon. Microsoft isn't very sexy to the typical developers that participate in the startup/Silicon Valley "scene" and its accompanying communities (HNews included).
- jghn 10y agoBig four almost always includes google and facebook but the other two slots seem to vary a bit based on who is saying it. I've even seen companies like yahoo and twitter thrown in there.
- uiri 10y agoThe term Big Four originates in accounting where there actually are a specific set of four large, established companies. For tech, I usually remember it as AmaGooBookSoft - Amazon, Google, Facebook and Microsoft. Apple is sort of a hardware company so sometimes it is included and sometimes it is not.
- rz2k 10y agoIn Zen and the Art of Motorcycle Maintenance the author puts forward two types of welders. One is the type that excels at really complex and difficult welds, but isn't very good at making simple welds in repetition. The other might get tunnel vision when trying to figure out an unusual weld, but has the discipline to produce consistent, flawless welds in great quantity. It might be explained by what is know as Yerkes–Dodson law[1], which describes how performance increases with mental arousal up to a certain point then decreases. If different types of tasks correspond with different arousal for different people, then the type of welder or developer one is is orthogonal to their fundamental skill. Instead it would mean that the first type needs to cast the problem as something novel in order to gin up the necessary level of concentration to get the problem done, hence the rock solid code that has sloppy/inconsistent style. It makes sense that a good advocate would be highly skilled, but the type who has difficulty with necessary work that seems mundane. In other workplaces this might be the person who seems to have low output, but gets their coworkers past their roadblocks. [1] https://en.wikipedia.org/wiki/Yerkes–Dodson_law https://en.wikipedia.org/wiki/Yerkes–Dodson_law