4 ms·
Ask HN: The Hacker skillset
Eric S. Raymond says in his primer:
http://www.catb.org/~esr/faqs/hacker-howto.html
"It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways."
Is there any language you feel should be included/excluded, and why?
- RiderOfGiraffes 16y agoI'd suggest a lazy language as well, Haskell being the obvious choice. Having lazy infinite lists changes the way you think. Apart from the obvious commercial benefit, if you have C++ and Python I don't really see the need for Java, but I might just be being bigoted there. Perl could be substituted with Awk - I've had this debate and I don't feel strongly about it. Perl is more wide-spread and common, making it a better choice if you want to go hacking things that are there, but I find Awk nicer to program. I'd also start looking for massively parallel languages of one form or another. The ability to think not just in threads or co-routines, but genuinely in async-parallel is becoming more important. So that's my $0.02 of free advice. Probably worth what you paid for it.
- xiaoma 16y agoI'd put Ruby on the list. I don't think it was really on the radar (outside of Japan, at least), when ESR wrote that. Javascript is also a lot more important than it used to be.
- jacobroufa 16y agoJavascript Read Javascript: The Good Parts by Douglas Crockford. After reading this, I can't help but agree that JS has always gotten a bad rep and been undervalued. It really can be an elegant language, and Crockford found the perfect way to demonstrate that.
- iuguy 16y agoUnless you're planning on going into enterprise software development, I'd argue that the similarities between Java and C++ are sufficient enough to ditch one of the two (at least in terms of fundamentals). You could also substitute Java for C sharp, if you're so inclined, or Python for Ruby. I'd definitely switch Perl for a decent shell (and sed and awk). I know it's not fashionable here but I'd probably bail on Lisp. While it's a great language it's not that widely used and you'll either pine for lispness in other languages or you may well hate it like I did (although I do recognise it's power, I was spoilt with python). Ultimately though, the hacker skillset isn't a skillset at all, it's a mindset. It's the ability to bend the world to your will. The ability to say, "There are no rules and there are no limits that are not self-imposed". That for me defines the difference between regular people and hackers.
- prodigal_erik 16y ago> you'll either pine for lispness in other languages Any language is a waste of time if it doesn't have any features you'll miss when you aren't using it. At that point it's just a Blub you're applying out of expedience, not learning anything from to expand your repertoire.
- hasenj 16y agoI'd take off Java. Perl is optional. Add Ruby as an optional alternative to python (e.g. "Ruby or Python"). I'd also add 'git', or just decentralized version control tools in general. Although not a language, it's definitely a must-have skill.