9 ms·
Core competencies of great hackers
- TwoBit 18y agoJohn Carmack has always used the VC++ IDE. I rest my case.
- dan_sim 18y agoI don't want to start a war but I'd say that this list is about the differences between a Windows VS Linux developer. The thing behind what is said is "get your eyes off of the nice UI. Look and type code".
- bmj 18y agoThe thing behind what is said is "get your eyes off of the nice UI. Look and type code". Hmmm. I'm currently working a project targeting handheld devices written on the .NET Framework, meaning I'm using Visual Studio. Currently, my IDE looks a whole lot like an instance of Vim or TextMate--no widgets outside of the top level menu displayed, and I typically use keyboard shortcuts for builds, navigating, etc, etc.
- kaens 18y agoEvery "hacker" I've met either: Doesn't use windows. Uses the tools listed in the article on windows. (well, windows equivalents anyhow) I think the message was more of "Know your tools, know them well. Know them, and what they are capable of so that you may wield them to their fullest potential". For software, this involves reading the source when it's available.
- callahad 18y agoThe benefits of knowing your tools extend even beyond your personal productivity. Such knowledge often presents opportunities to save the hides of other individuals. For instance, I'm in a very, very large company (anyone in law, science, or journalism has used our products). I recently saw three separate requests for ~80 hours and $7000 of contractor time each to manually add serialVersionUIDs to serializable Java classes. Eclipse, which we're paying* IBM to use, has a nice code refactoring tool that makes the entire process three clicks and about 30 minutes of twiddling your thumbs. I saved one and a half months of FTE time, and $20,000 by simply knowing what the tools we were already paying for could do. *Yes, I'm aware that Eclipse is Free Software; we're using IBM's rebranded Rational Application Developer. Yes, I'd rather use Eclipse and Tomcat instead of RAD and WAS. No, I'm not bitter.
- nostrademons 18y agoCould that be because you exclude Windows hackers from your definition of "hacker"? I know some folks on the Google Toolbar team. I don't use Toolbar, and neither do any of my friends. It's desktop software, and desktop software for Windows, so I mostly ignore it. But their installed base is huge. I'd wager that if you added up the combined user base of every Web2.0 startup mentioned on this site, you still wouldn't equal the number of Google Toolbar users worldwide. Are they still hackers? FWIW, they use Visual Studio.
- dmix 18y agoExactly, and look at IE6... combine the amount of every web 1.0 startup's VC funding and you wouldn't have the number of users that used IE6. AND they used Visual Studio. Userbase != great hackers
- whatusername 18y agoIE6 was good. It was a genuinely better browser than the competition. The problem isn't that IE6 wasn't a good browser - it's that IE6 was a great browser in 2001. But in 2009 - it's not really up to scratch.
- nostrademons 18y agoHow do you define "great hackers" then? If you go with the ESR "A great hacker is someone who other great hackers consider a hacker" definition, you get a very inbred, circle-jerk culture. (Which seems to have happened in various corners of the free software world, BTW.) Of course a great hacker would use the same tools as you then...that's how you know they're a great hacker, after all. ;-) Other metrics like "A great hacker is someone who writes lots of code" are equally ludicrous, because then only Java and Cobol programmers end up as great hackers since those languages are so much more verbose than everything else. ;-)
- kaens 18y agoCould that be because you exclude Windows hackers from your definition of "hacker"? No, it couldn't. The person out of the group of people that I know personally that I consider "hackers" uses Windows primarily, and knows a bunch of crazy APIs inside and out. He does whip out VS for some stuff, but the vast majority of his code is written in emacs. I'm not saying the article is right all the time, but I think it's a pretty good rule-of-thumb. My experience coinciding with the article is more of a function of "I really don't know very many people" than "I don't think there can be such a thing as a hacker that uses windows, or microsoft tools".
- jwilliams 18y agoTyping speed? Not sure how much code people here write per hour, but I doubt typing speed is a real issue (the ratio of my staring at the screen thinking versus coding is probably 10:1).
- 10ren 18y agoI agree, but in practice I feel annoyed by my typos, and not being able to type directly what I think. It's a nice feeling of skill, to dance across the keyboard, with a seamless brain-computer connection. Like playing a video game. I've tried to learn touch-typing a few times, but it makes my hands sore in a worrying way. Another resolution is typing more slowly, and not caring so much about typos, since it doesn't really matter.
- hairsupply 18y agoAgreed. Typing speed is very important when writing new features, but reading and comprehension speed is much more important for when you are fixing bugs in a multimillion line codebase.
- danielharan 18y agoIt's not a "real" issue, so much as a proxy. I've never seen a good hacker look at their keyboard, whereas there are plenty of people that get out of flow looking for a symbol. If a person can't type, I simply assume they're a noob and don't want them on my team. I don't expect them to have a very different ration of thinking vs. coding though :)
- jwilliams 18y agoI can see that - it's like musicians that don't rate musicians who can't play piano. But - I guess I've seen a few counter-examples in coding - e.g. I used to know a mainframe guy who had arthritic pain. He coded very slowly indeed, but it flowed out of him flawlessly.... So I tend not to have that bias. If I met someone who wanted to get into programming, I certainly wouldn't say "practice your typing" - I'd say, "read these books".
- 18y ago
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- deleted 18y ago[deleted]
- hairsupply 18y ago- Type fast - Use Linux - Use TextMate/VI/emacs - Don't read documentation Sounds like "Core competencies of ruby on rails hackers"
- jhancock 18y ago"We haven't met a single great hacker that relied on an IDE, although we hear they exist." Sounds like GiraffeSoft folks don't use languages with type info and a graphical debugger. I certainly wish TextMate could handle static info and had a JVM debugger. I would love to code scala in TextMate. The IDEs are too heavy. I don't like them. But if you want/need a debugger and type info for refactoring and exploration, you don't have much choice. The other three items they list seem on target. The one about great coders don't use IDEs is highly dependent on what language and kind of code your writing.
- Zak 18y agoWithout getting in to what those preferences are, that being a different can of worms, I think it's likely that there are trends in the language preferences of great hackers. The existence of these trends means that tools that work well with the languages great hackers prefer will be more popular with great hackers. The static analysis done by heavy IDEs isn't the only way to have large amounts of information about code available in the editor. Using Emacs with Slime, the editor has a huge amount of information about your code because it's communicating with the Lisp runtime that's evaluating it.
- nostrademons 18y agoWell, it's more "Core competencies of hackers in the C/C++/UNIX/Scripting/Web tradition." Most of the great Windows hackers I know use Visual Studio. Most of the great Java hackers use IntelliJ. Of course, people in the UNIX/web tradition would probably not admit that great hackers exist in those cultures, but they've put out some pretty impressive software... Also - I suspect that great UNIX/web hackers don't use IDEs because the IDEs for those languages suck. I work on a C++ web team. If you glance around our monitors, everyone has the same setup: 4-6 terminals, 3-5 emacs/vim windows open, and Firefox. The funny thing is, many of us are ex-Java programmers, and we all used either IntelliJ or Eclipse in our Java programming days. And would love to use something like IntelliJ for C++, but we took one look at the C++ support in Eclipse and ran back to vim.
- peregrine 18y agoVisual Studio is a very powerful editor. Everything that you can do in Visual Studio through menus you can do through the keyboard. In fact you can setup visual studio to use emacs shortcuts ( http://msdn.microsoft.com/en-us/library/ms165509(VS.80).aspx http://msdn.microsoft.com/en-us/library/ms165509(VS.80).aspx ) and I'm sure it exists for Vim and etc. People who believe the tools make the hacker are naive at best and would probably think the person with the best shoes wins the race. Not true when it comes down to it, the person driving those tools, whether they can type 60 wpm or use Emacs, is the one who is responsible for the creativity and output. I think the author needs to step back and see if his priorities are in the right spot.
- sketerpot 18y agoThe article was pointing out correlations, nothing more.
- hairsupply 18y ago"We haven't met a single great hacker that relied on an IDE, although we hear they exist." The implication here is completely in the negative. Further, it's like saying "If you want to be a hacker, use English measuring units because we've never any met any great hackers who use the metric system." Just because a bunch of rails hackers don't use an IDE doesn't imply the contrapositive.
- danielharan 18y agoI hear they exist, I've just never met them. That could be my sampling bias. None of the people around me relying on IDEs are great hackers. Instead of arguing about what might have been implied in what I wrote, I'd rather you introduced me to people you consider great hackers that use an IDE. Know any?
- deleted 18y ago[deleted]
- 18y ago
- dazzawazza 18y agoOne of my early mentors taught me that "it's not how fast you type but what you type" that matters. I think his lengthy career as a journalist, designer, photographer, M$ engineer, Apple engineer and Google Engineer have proven him correct. The analogy with understanding/familiarity with your tools is weak. The only important tool for an engineer is his brain. (PS I abhor the term hacker)
- apgwoz 18y ago> The analogy with understanding/familiarity with your tools is weak. The only important tool for an engineer is his brain. But, an engineer with a great brain and no tools, is weaker. One must communicate thoughts and ideas in order to be great.
- Hexstream 18y ago"One of my early mentors taught me that "it's not how fast you type but what you type" that matters." Are you saying an increase in typing speed brings a proportionate decrease in thought quality? Otherwise you obviously end up more productive if you increase typing speed. People who compare poor coders who type fast with great coders who type slowly are utterly missing the point. Typing faster is about self-improvement. It's about having more fun at coding while being more productive. If it also makes you better than the next programmer, then great, but it's not the point.
- strlen 18y agoThese things aren't really enough. They're more of "things you need to know be a computer hobbyist". I did put together a quick list once -- for an HN post asking what should someone learn as undergrad if they wish to be a web developer -- of things I'd prefer a back-end developer that I would hire to know: http://news.ycombinator.com/item?id=499880 http://news.ycombinator.com/item?id=499880 Of course, knowing these things (or really, knowing anything) doesn't make you a hacker quite yet, it's a title one earns within a community by contributing to it. As cliche as it is, "how to become a hacker" covers this part: http://www.catb.org/~esr/faqs/hacker-howto.html#status http://www.catb.org/~esr/faqs/hacker-howto.html#status
- danielharan 18y agoThanks, I was hoping people would add to that list - and certainly wasn't claiming that covering those 4 skills would make you a hacker.
- wwalker3 18y agoGreat hackers create great works from within, not from their tools or their environment. Their core competencies are things like relentless self-improvement, not the use of a particular editor or a particular OS. The author's list of core competencies (fast typing, command line, vim, Linux) sounds more like a list of cultural traits.
- adatta02 18y agoThe point about text editors is absurd. One because comparing TextMate to vim or emacs is almost apples and oranges. And secondly because writing something Java without completions is going to be horrendously slow just because of all the arcane function and property names.
- zmimon 18y agoTo me it's kind of a weird arbitrary divide to make. All the text editors mentioned offer IDE like functionality at various levels. They help you with various kinds of auto-complete, context sensitive help, etc. etc. Where is the line that when crossed makes it an IDE an not an editor? To be fair to the author though, the phrase was "rely on an IDE", not "use an IDE" which is a little different. I think a more valid way to look at it is that great hackers tend to use highly advanced editors and they totally own them from top to bottom - whether they are in an IDE or not. That might just mean that they have a completely customized eclipse setup and know every hotkey extension innately or (like myself) use powerful editor plugins like viPlugin to ratchet up the productivity.
- rmaccloy 18y agoIn fact you could condense all of these into "know your tools extremely well", and you can take it further to "optimize yourself/your environment relentlessly". I've known great hackers who used Eclipse, sam, acme, Brief, UltraEdit and everything under the sun. Working with someone who doesn't know their chosen tools (people who use menus to work their editor, hand edit things instead of using sed/awk/perl, etc) is extremely painful, and seeing someone profess to use a tool but not operate it well is a huge warning sign to me. Same with slow typists: pair programming with such sucks.
- gills 18y agoThis should just be titled "Tools used by people with great hacker egos but may or may not actually be great hackers", because these are not predictors of great hackers.
- anc2020 18y ago> While I won't claim that learning these 4 skills will make you a great hacker, it seems unlikely you can become one without them.
- Tichy 18y agoSo if I learn these things, will I miraculously be transformed into a great hacker? Or will I have wasted my time, while others spent the same time launching several profitable web sites with Ruby on Rails?
- swolchok 18y agoI feel that this article is the sort I would not like to see on HN, because it can't teach anything to hackers. As seen by the discussion it elicited, it's just starting a write-only conversation with many elements of a flame war.
- pskomoroch 18y agoI'd take problem solving ability and creativity over typing speed any day, but one area where typing speed seems to help is for live coding or instructing others...
- keefe 18y ago"Let's not pick editor fights: the only 3 editors we know to be used by great hackers are TextMate, vim and emacs. The most productive hackers will often customize their editor heavily." I think this is rather ignorant... eclipse >> vim or emacs. What's a hacker anyway? Presumably, they are talking about someone who writes code and IDEs make writing code easier.
- gord 18y agoI confess I just didn't read this - 'core competencies' came up on my watch list as almost surely spam. And if typing speed is more relevant than thinking depth then I probably made the right decision in that Gladwell blink moment. In another recent HN post, several people had a similar reaction to "shop" as in 'work for a great ruby shop'... Heres a partial list of non-sequiturs - six sigma isoN000{0} skillset core competencies coder java [ contentious, I know, C++ is borderline ] loc - lines of code metrics / kpis candidate coordinate role leadership deliverables Competency is particularly insidious - being merely competent rules out any kind of real craftsmanship, or "Xen and the art of Motorcycle maintenance" connection to the thing your doing. If your competent, you've checked a box, and thats the wrong reason to do anything. Am I overreacting?
- MaysonL 18y agoThere are no great Smalltalk hackers? Great hackers don't use IDEs: they write them.
- gnaritas 18y agoGlad someone else noticed that glaring oversight. If you haven't met a great hacker who doesn't use emacs/vim/textmate, then you need to get out more, you're a sheltered child.
- ardit33 18y ago"We haven't met a single great hacker that relied on an IDE, although we hear they exist. " -- fcuk you. Really. Just an over generalization/stereotyping at its worst. I am a good hacker, and yes I use an IDE (eclipse to be exact). I have to code java for living (mobile), and I think I am one of the earliest developers in java, and i used to use Textpad, and Vim at my early days. I guess, in your eyes that makes me a "better developer", but the truth is that some IDEs really make your life easier. Much easier. In mobile you have to re-invent the wheel over and over again. From UI, to basic things as a string tokenizer, and it is impossible to memorize everything (some of your team memebers implement different functionalities). IDE's auto completions are very very useful. Also the refactoring facilities and debuging tools are really useful. I do use Vim for programming in LUA (does it make me cool?), and I really miss a lot of these tools. Simple things like variable highlighting, jump to definition are missing, and it makes the code a pain to read (especially if it s not yours). If you decide to change a variable name, good luck, you have to do string search/replace, and the potential for errors is huge. While a good programmer HAS to be comfortable and good in command line, just because they use an IDE doesn't make them less of a people. And the best programmers I have had the chance to work with used IDEs. These guys implemented a LUA VM in J2ME from scratch, in a couple of months. I have noticed that this really shallow and douchebag-y attitude comes from people that use mostly Ruby. It seems that in their eyes, if you don't use Ruby and textmate, you suck. But really, fcuk you.
- mroman 18y agoI think you missed the rely upon part. Also, I think the main point of what you quoted is that the additional level of abstraction does more harm that it does good when it comes to hacking, not everyday 9-5 in the office type programming. As I mentioned a bit earlier in this thread, people are confusing programmer and hacker. The two terms are not synonymous.
- mroman 18y agoThink the article should have been titled "Core Competencies of Coders" I expected something that would include, at the very least, Algorithms and Data Structures. Software Construction is not the sole realm of the Hacker. coder!=hacker Coding is not the sole realm of Software Construction. It is too bad that so many people totally mix concepts up like that, playing fast and loose with synonyms in that manner is like wearing a sign saying "I am an ignorant two bit tech person in a hurry" Say, what about Cray, when he toggled an entire OS (that he designed) into a machine (that he designed) through the front panel switches, in Octal? AND IT WORKED. Crappy programmer, can't type x number of wpm. ROFLMAO EDIT (now that I paused for breath) Worse programmer even, for not USING A KEYBOARD ROFLMAO
- psyklic 18y agoI completely disagree with all four points. A hacker can only use TextMate, vim, or emacs? You kidding me? And who writes code at more than 60 wpm -- writing code is a thinking sport, not a race to the finish. Diving into a large codebase can be important for certain hackers, but honestly this sounds like a skill moreso needed for corporate programmers ...
- mannicken 18y agoWell. I type 100-120 wpm, use Emacs, use primarily FAR or cmd.exe (bash in *nix), and prefer not to debug. I suck though. Apparently, these four things are not enough to be a great hacker. What I seem to lack is the mental capacity to clearly see problem out of the box as my friends (great hackers) do so I have to use all the tools I can to keep up. it's the kind of sober, relaxed look at a problem that I think separates great from mediocre. The relaxedness and calmness with which hackers attack problems -- most people I know and myself would be anxious and pissed off about a problem. Hackers on the other hand are comfortable and relaxed with problems, seeing them as something, that is fun to solve. They are like cats who play with the mice before they catch the prey; they are confident in their ability to solve the problem, and completely free of tension or stress. I have that some of the time but very very rarely and I can say, no editor can even come to the performance-enhancive qualities of Zen-like centering.
- jerome_etienne 18y agowell coding is not part of being a 'great hacker' according to this list... but the text editor you are using is part of it... Im not convinced to say the least, the word 'poser' comes to my mind, not sure why
- ANaimi 18y agogrow up