(转)什么是“黑客” by 王珢
什么是“黑客”
by 王垠
很多程序员自豪的把自己叫做“黑客”(hacker),把编程叫做 hack。可是殊不知,其实在最高级的程序员眼里,“黑客”其实是一个贬义词。他们更愿意被叫做“程序员”(programmer),或者计算机科学家(computer scientist)。当然,你有可能以一个 hack 从“世界一流大学”拿到一个 PhD。但是 PhD 其实不说明任何问题,世界上有太多的人拥有 PhD,其中绝大部分都是 hack。hack 的本质是不会变的——它是低级的工作。
hack 的意思本来是这样的:当你没法改变一个东西的时候,如何绕过它的毛病达到目的。所以 hack 这个行为本身就包含了妥协和丑陋。偶尔做一些 hack 无所谓,可是被叫做“hacker”,就表示这个人不能从根本上解决问题,而只是知道如何 hack。比如,绕过某种语言的莫名其妙的毛病,实现一些在别的语言里早就可以轻松办到的事情。很多顶级的程序语言专家有能力设计新的语言,从而从根本上解决问题,而不是受到现有技术和语言的限制,所以他们对于“hacker”这个词有另外的看法。
当然我并不是歧视 hacker。实际上每个程序员在某些时候都需要 hack。但是我想说的是,我们不应该以 hacker 来称呼自己并且引以为豪,或者歧视那些不明白这些 hack 的人,因为这些 hack 其实是不需要存在的东西。所以何不自嘲一下:“我做的事情虽然有用,但是其实就是个 ugly hack。”
This article was posted at yinwang’s sina blog,
on 2012-07-02.
Though it’s not available on the blog now.
(转)什么是“黑客” by 王珢的更多相关文章
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- (转)为什么需要正则表达式 by 王珢
为什么需要正则表达式 by 王垠 学习Unix最开头,大家都学过正则表达式(regexp).可是有没有人考虑过我们为什么需要正则表达式? 正则表达式本来的初衷是用来从无结构的字符串中提取信息,殊不知这 ...
- (转)对博士学位说永别 by 王珢
对博士学位说永别 by 王垠 经过深思熟虑之后,我决定再次“抛弃”我的博士学位.这是我第三次决定离开博士学位,也应该是最后一次了.这应该不是什么惊人的消息,因为我虽然读博士10年了,可是我的目标从来就 ...
- (转)名称和本质 by王珢
名称和本质 by 王垠 我很喜欢 Richard Feynman 写的 <What Do You Care What Other People Think>.在最开头 Feynman 讲到 ...
- (转)小小科学家的归来 by 王珢
小小科学家的归来 by 王垠很多人来信关心我的现状,所以在写别的技术性文章之前,先说说我现在的情况吧.虽然自己追求的东西和经历都比较不同寻常,但是也许可以给奋斗中的人们一些慰藉和鼓励. 首先是超级好消 ...
- (转)我看PhD by 王珢
我看PhD by 王垠 前段时间看了一下这些关于 PhD 的负面信息: 一个专门反对读 PhD 的 BLOG 叫“100 Reasons NOT to Go to Graduate School”(下 ...
- 帝国备份王(Empirebak) \class\functions.php、\class\combakfun.php GETSHELL vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 EmpireBak是一款完全免费.专门为Mysql大数据的备份与导入而设 ...
- 王垠:完全用Linux工作
来自: Zentaur(alles klar) 录一篇旧文 作者:王垠 完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作 ...
- 黑客群体的露面说明互联网公司开始回馈IT行业了,
揭开中国黑客群体的神秘面纱 年薪数百万 2015-04-26 09:59:45 15259 次阅读 14 次推荐 稿源:经济观察报 33 条评论 在网络世界有专属的代号,那里才是他们最习惯的“世界 ...
随机推荐
- JTextField 限制指定字符不能输入
txtStartDate.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { int keyChar = e.ge ...
- APM程序分析-Control_rtl.cpp
bool Copter::rtl_init(bool ignore_checks) { if (position_ok() || ignore_checks) { rtl_build_path(!fa ...
- C# 使用AForge调用笔记本摄像头拍照
vs2012 winform 连接摄像头设备,这里需要引入 代码: using AForge; using AForge.Controls; using AForge.Imaging; using ...
- SQL Server删除重复行的6个方法
SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect ta ...
- monkey之三:monkey测试测略(摘抄)
一.分类 Monkey测试针对不同的对象,不同的目的,采用不同的测略方案. 测试类型分为: 应用程序的稳定性测试和压力测试 测试对象分为: 单个APK和多个APK集合 测试目的分为: 解决问题的测试( ...
- tomcat启动报错No UserDatabase component found under key UserDatabase
非正常关机,造成了tomcat下conf文件中的tomcat-user.xml文件异常,copy一个新的tomcat-user.xml覆盖就可以了.
- memcache入门笔记
向memcached保存数据时可以指定期限(秒).不指定期限时,memcached按照LRU算法保存数据. 这三个方法的区别如下: 选项 说明 add 仅当存储空间中不存在键相同的数据时才保存 rep ...
- LeetCode 22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- 小书翻译完成,分享啦--《用Python操作大数据[MapReduceHadoop和Spark]》
http://files.cnblogs.com/files/aguncn/%E7%94%A8Python%E6%93%8D%E4%BD%9C%E5%A4%A7%E6%95%B0%E6%8D%AE%5 ...
- [Unity3D]自制UnityForAndroid二维码扫描插件
一周左右终于将二维码生成和扫描功能给实现了,终于能舒缓一口气了,从一开始的疑惑为啥不同的扫码客户端为啥扫出来的效果不同?通用的扫描器扫出来就是一个下载APK,自制的扫描器扫出来是想要的有效信息,然后分 ...