为什么说中国软件开发者大会是有史以来最好的工作

所有软件都可以被破解吗?为什么网上破解软件那么多,软件开发者难道没有好的办法防止其软件被破解吗?
按时间排序
对的 所有软件都可以破解 时间问题和值不值的问题 破解与反破解基本和矛与盾关系差不多吧...软件开发者如果加密过于复杂 可能会影响程序运行效率 体积过大 兼容性不好等问题 毕竟 你要加壳加密也得往上码代码不是么?要是购买其他加密插件不是还得花钱么?这不都是成本么?能做的事情也就是增加点破解难度好了 提高一下破解门槛 把像我这样的入门者拦在门外就是了
因为软件是人做的,所以人也可以破解。
没有破解前,验证注册码的代码基本上是这样:如果 (输入的注册码
正确的注册码)
开始运行程序;
注册码错误!
破解之后,验证注册码的代码基本上是这样:如果 (输入的注册码
正确的注册码)
开始运行程序;
注册码错误!
这是最基本的破解方法,俗称爆破。
1、如果你能拿到软件的所有数据(不管加不加密)那理论上都是可破解的,区别在于你破解的成本和人家更新的速度关系,你花一年破解,人家半年换个授权算法,就没破解意义,如果你拿到的软件是demo或者本身没有授权程序(或者功能数据)的数据(代码),就只有部分破解可能了,2、不是说开发不出高强度的授权方案,开发团队也要评估自己注册授权的成本,加密狗强度够高,买软件带个小硬件不一定有人愿意买了,自己制作起来也麻烦。说白了就是一个成本的平衡。希望能解答你的问题哈
这本书我看了一半了,里面对软件保护的各种方案做了较为全面的论述,很多技术我也是第一次学习到。结论是:是的,以目前的技术条件,只要足够长的时间和足够多的金钱投入,所有软件或者程序都会被别人破解。即使这些程序是运行在特定的CPU和操作系统上的(PS3);或者这些程序是需要访问芯片内部一个特殊的逻辑电路的(例如加密狗),而这个逻辑电路表面又是请化学家用特殊材料处理过的(通信领域);又或者这个程序处理的数据是经过特殊传感器获取的。在这样的条件下,程序都曾经有过被破解了例子。我这里说以目前的技术条件,是因为量子通信技术的发展还有很长的路要走,目前不敢妄加评论。这里说,足够长的时间和足够多的金钱投入,指的是别人如果破解你的程序需要极高的成本,例如上面举例的材料的例子,那别人可能会放弃,干脆自己另起炉灶实现一个功能相同的吧。
弄得破解太复杂,破解后不能保证使用的话,盗版用户就会少很多无损破解也是用户体验,盗版用户也是潜在客户
以下复制自“为什么即使世界最知名的软件程序,也无法阻止被人破解的命运?” - shotgun 破解和反破解是技术对抗,核心问题是成本和收益。在PC架构上,由于所有的代码都要送到CPU去执行,所以除了在线防破解之外,离线程序从“理论”上来说都是可以破解的,但实际操作中有难易之分,也有值不值得的区别。先说破解者,破解软件无非是为了名或者利,如果一个软件难度太大,而且破解后带来的名利收入不足,破解带来的法律风险太高,那自然没有人有动力去做破解。某些专业软件就是如此,因为用户使用量太少,而最终用户是用来生产的,往往出于软件稳定性、法律等原因不会考虑购买盗版,所以没有破解者。再说软件开发者,高级防破解技术是需要付出代价的:性能、稳定性、可扩充性、易用性、易读性都会受到影响,如果采用高级技术带来的好处没有远大于采用法律手段,那么这些技术就不会被采用。欧美版权保护比较充分,因此很多软件都是采用Paper license,也就是纯用法律来控制。此外,在互联网免费思维的今天,个人软件易破解本来也是一种潜在的营销手段,某软中国最喜欢跟是用盗版的用户谈正版化,每次10%,小刀子割肉。再多说句,在线防破解也不是坚不可摧的,服务器被入侵(索尼罪大恶极,民不聊生:),或者密码算法被破解,或者大客户Key泄露,都可以导致防破解手段无效。 所提到的安全软件不容易破解,那是因为,这是人家的脸面,当然要护好不被你打了,而且万一被病毒破解,那就不是盗版影响收入的问题了。但是代价也是很大的,杀病毒软件越来越消耗资源。说个笑话,有一次某个客户自己开发了一套软件,还买了一个防破解插件,请我们测试破解难度,某K姓大牛用了三天,然后很郁闷的说:“还挺难搞的,花了三天”。我一看,破错了,把人家防破解插件给破了......创建于
实际上,任何一个靠注册码作为一个开关来限制程序功能的程序,都是理论可破解的。为什么可以破解呢?这还得从程序的构造开始说起。一个付费软件一般都是这样的——在你的程序上做了一些小的限制,让你无法使用付费版的某些功能;亦或是给你一个使用时间的限定,在这个"规定的"时间内,超过这个时间你就不得不花钱去把这个软件请回来。那么,cracker又是怎么给这些程序加上"无期徒刑"的呢?我们知道,这些软件之所以能够限定你程序的功能,靠的是一个授权验证。这个验证可以多种多样,可以是电脑的注册表,也可以是系统时间,还可以是版本号,再或者是网络的一个http请求……总之,如果你不符合这个条件了,程序就会根据作者的设定,把相应的功能锁死。但是呢,问题也正是出在了这里。程序的功能是完全的,只是因为一些原因被关闭了而已。而cracker要做的,就是强行启动这些被关闭的功能。强行启动这些被关闭的功能,cracker可谓是绞尽脑汁,用尽手法。我们最常见的破解手法就是硬性修改程序的机器码,cracker拿到一个程序之后,通过ollydbg这样的软件来将验证的逻辑修改掉,达到突破授权验证的目的。不理解?好,我们来看看这一个小的逻辑:01:读取名称叫做zhuce.txt的文件02:如果这个文件存在,跳到0403:提示用户输入注册码04:系统检测输入的注册码是否正确05:如果注册码不正确,跳到0806:注册码写入到zhuce.txt文件里面07:注册码验证通过,启用限制功能,本逻辑执行完毕08:注册码校验失败,停用限制功能,本逻辑执行完毕这就是一个典型的注册码验证系统。如果我们要修改这个逻辑,我们应该怎么改呢?如果按照上面的说法,cracker们会修改第05行逻辑,改成下面的:05:如果注册码正确,跳到08或者索性修改成05:这是一行空指令,啥都不干这样整个程序的逻辑就被修改了,也就达到了软件破解的目的。当然,cracker们也可以在04行下断点,从堆栈中强行揪出cpu正在对比的注册码,从而拿到真正的注册码来进行注册。这个简单的原理,被大批量应用之后就成了我们目前看到的这一切。那么,为什么破解的软件那么多呢?破解软件好比写代码,刷github,挖web漏洞一样,这是一种兴趣。cracker们喜欢破掉软件之后的那种成就感,所以,被破解的软件日益增多。其实,我也是破解过软件的,这种感觉我着实清楚。在cracker们看来,没有什么比破解掉一个软件之后的成就感更为开心了。还记得我们当年刚刚写出一个hello world程序,在屏幕上成功输出第一句话时的心情吗?“哇,我可以指挥电脑干一件事呀!”同样,对于cracker的心情也是一样的:“哇,我能够用我的超能力来改变这一切呀!”因此,cracker总是乐此不疲的破软件,一个个软件接连被破,开发者看在眼里,疼在心里。当开发者知道了这一切的来龙去脉之后,开发者就会想办法去阻止破解的行为,阻止的方法无非就是给破解的过程增加难度和干扰。于是,壳诞生了。壳可以将一个程序给套在里面,可以非常直观的理解为一个程序的外壳。开发者加的外壳,一般都是一些保护壳,到目前为止还没有发现为了防破解而给自己的软件加单纯的压缩壳的。保护壳的保护机理一般都是反调试器、反虚拟机、垃圾指令、代码虚拟化(或者混淆)等,程序运行起来是没有什么太大问题的,但是让一个cracker的逆向过程变得异常艰辛。但是加壳有了,相对应的脱壳也就会出现。由于壳的滥用,这引起了一些cracker大牛的注意。cracker大牛通过分析壳的运作机理,模拟壳的环境,通过隐藏调试器等方式躲过壳的反调试功能。毕竟能运行的东西总是理论可修改的,在大牛们的研究下,一个个脱壳机或者脱壳教程就这么出现了。直到现在,加壳和脱壳之间的较量,仍然是那么激烈……既然壳被脱了,开发者还是不甘心。于是想到了暗桩。暗桩代码,一般正常使用情况下是不会触发的。它到底是什么呢?它有可能是一小段自校验代码,在你修改了他的程序之后,程序发现自己被修改而自动退出。也可能是一小段警告代码,给你来个小的框框,提示“XXX你个逗13别修改我的程序!”这类的东西。心怀恶意的开发者则是喜欢使用威力更大的东西,比如给你来个蓝屏,格式化你的硬盘,给你加硬盘锁(江民硬盘锁是典型的例子),或者是潜伏一段时间,当你的程序使用一段时间后突然清空程序中的全部数据,让你损失惨重。暗桩无疑是cracker们最头疼的问题,当然有了暗桩,就有相应的去暗桩手段。cracker为了防止这类代码的破坏,总是喜欢在虚拟机内搞这些东西,即便是不幸中招,也可以利用虚拟机的快照来实现时光倒流。而去暗桩的手段无非两种,第一是摸清楚所有的暗桩,尽量不去触发它;第二是和破解软件一样,硬性修改这些代码。就这样,本地验证逐渐的没落了……云的时代正在崛起。有一些软件,本身代码是不全的,比如软件下载下来就是一个试用版,相应的功能根本就没有,当你购买了这个软件之后会给你一个完整版的软件。这下可好,除非cracker去入侵开发者的服务器,或者是共享自己的已付费版,否则是没法破解这个软件的。同样的道理,有些软件代码也是不全的,但是和上面的方式有点不同——它依赖于网络来工作。一些数据的处理和计算,是在服务器上进行的。比如图片云识别,当你购买了这个服务之后,你就可以在软件上登录你的账号,然后将一张图片通过这个软件发到服务器上去,服务器验证了你的授权信息有效之后进行识别,并将识别结果返还给你。而整个核心的过程没有在你的软件上实现,又谈何破解?破解的方法一样,除非cracker去入侵服务器,否则没有办法破解的。但是,你会发现,无论是什么样的软件,都是理论可破解的。即便是云计算,cracker还有最后一招,入侵服务器。也就是说,破解软件不是不可能,而是一个时间问题和价值问题。假设一个付费软件做的非常赞,破解它要花费一年多的时间,而作者的定价仅仅是1元就可以终身免费,那么谁还会花那么多时间去破解这个软件呢?所以说,话归到底,每个软件都是理论可破解的,破解它只是一个时间和价值问题。
是的,破解只有难度大小问题,只有值不值的问题,几乎所有程序都可以被破解。现在唯一防破解比较成功的方式是联网运行,而且不是简单的联网验证。而是要将关键运算放到服务器上进行,才会比较有效。(是的,我说的就是网络游戏。)任何单机软件,只要有价值,就几乎很快就会被破解。特别是像Windows,Office,PS,这种有用有很贵的软件。又或者你是专用硬件运行,如PS3或者是Wii,那么破解难度可能稍大一些,不过也就是稍大而已。为什么会被破解,因为软件发布后其防守方式就已经固定了,而破解者却是具有无穷可能性的人。一个固定的防守套路,怎么可能防得过千变万化的攻击呢?
已有帐号?
无法登录?
社交帐号登录为什么说程序员是有史以来最好的工作_亿采-爱微帮
&& &&& 为什么说程序员是有史以来最好的工作
在过去的16年中,我一直都是一名开发者。不久前,公司的一位实习生问我,做一名开发者,最酷的事情有哪些。以下就是我给出的回答:1. 你是真正的实干家。在瑞典这样的国家,劳动者会收到非常好的保护,自己真正的去劳动,要比依靠其他人的才智更有价值。“老板”是一句脏话。2. 收入高。这是一个需求量非常高的工作,企业会使劲浑身解数去吸引并且留住优秀的人才——果篮、免费的早中午餐、免费手机、免费消息服务、灵活的工作时间、免费衣物干洗、健身卡、视力防护眼镜、派对、旅游、最新的电子产品,只有你想不到的,没有他们提供不了的。我曾经与一些人共事过,他们此前曾是很有天赋的音乐家、记者和运动员,但是他们最后都选择了转行成为一名编程人员,因为他们都看上了编程人员的福利。3. 大部分时间你都是在和计算机打交道,这要比和人打交道简单多了。 4. 在哪儿工作都可以(家里、海边、山顶等等)只要你按时提交高质量的代码就可以。世界上最大的软件项目之一Linux,就是来自世界各地的人一起远程开发的。很多大企业都接受了这种工作模式,放松了对团队的控制,让开发者自己选择那些能让他们的大脑最有效运转的工作地点。 5. 何时工作都可以(夜晚、周末等等)。如果你是个夜猫子,或者是早起派,你会爱上开发者的工作。由于开发是一个脑力劳动,因此朝九晚五的工作时间很多时候并不适合我们,这段时间可能并不是你大脑最活跃的时候,所以你需要调整工作时间。6. 用哪种工作方式工作都可以。很少有人真的了解你的工作,因此上司基本不可能对你进行微管理。如果有一个人能够理解你的代码,那么很可能他/她并不是管理你的人。7. 在纸质世界向数字世界过渡的过程中,很多产业都在接受软件,或是正在经历软件重写和迭代的阶段。这个具有编程技术的人创造了一个优秀的人才市场。 8. 由于技术(语言、框架、工具、数据库、操作系统等)每隔几年就会发生一次变化,因此成为一名开发人员,并不需要你具有多年的工作经验。你要做的就是理解当代的堆栈,然后就可以去找工作了。编程是一种边做边学的工作。没有人能够在读了一本书,或是参加了一个bootcamp之后就能够马上成为一名好的开发者。9. 你会在一间非常安全的办公室里办公,很有可能办公室里还有高档的家居、最新的硬件,当然舒适的空调一定是必不可少的。医生和忽视需要面对患者、消防员的工作要冒着生命危险、火车乘务人员要在车厢内来回走,乞丐要坐在冰冷的地方。在安全性方面,少有哪些其它职业比开发者更安全。 10. 相对轻松。只要你不是“刺儿头”,一般情况下,你只需要将某个人的创意实施出来,你就能拿到薪水。公司和管理人员会为你提供足够的支持,让你的大脑良好的运转。他们明白大脑就是你最有力的武器,因此通常情况下,他们不会做出让你不高兴的事情,也不会给你太大的压力。 11. 你可以自己确定工作速度。工作时间预估什么都代表不了,这是由软件开发过程的本质做决定的,很多企业都放弃了时间预估。项目做完了就是做完了,预估没用。12. 别人会觉得你超级聪明。编程工作需要抽象思维,以及解决问题的恒心和毅力。很多人都害怕、甚至讨厌计算机。而你却有着用计算机开发软件的能力,别人会想看英雄一样看着你,他们会觉得你一定很聪明(别不好意思,这是你通过努力换来的)。
点击展开全文
悄悄告诉你
更多同类文章
还可知道有多少人阅读过此篇文章哦
阅读原文和更多同类文章
可微信扫描右侧二维码关注后
还可知道有多少人阅读过此篇文章哦
专业IT电商平台亿采网订阅号,IT设备资讯、行业焦点、互联网圈儿中事、亿采活动要闻,尽在这处~
您的【关注和订阅】是作者不断前行的动力
本站文章来自网友的提交收录,如需删除可进入
删除,或发送邮件到 bang@ 联系我们,
(C)2014&&版权所有&&&|&&&
京ICP备号-2&&&&京公网安备34很多优秀的软件公司和开发者为什么愿意开源和共享? - 开源中国社区
当前访客身份:游客 [
当前位置:
很多优秀的软件公司和开发者为什么愿意开源和共享?
编者按:本
文作者 Yevgeniy (Jim) Brikman 是《Hello,Startup》这本书的作者,同时也是 Gruntwork
的创始人。之前他曾在 LinkedIn、Cisco 和 TripAdvisor
等公司工作过。在这篇文章中,他深入分析了很多优秀的软件公司和开发者愿意开源和共享自己的工作成果的内在原因,同时还指出那些不愿意分享的人所给出的理
由其实都是站不住脚的。首先,我给大家抛出两个问题。在继续阅读后面的内容之前,建议大家花几分钟的时间认真思考自己对下面这两个问题的答案:在当今世界上,你认为最优秀的软件公司都有哪些?在当今世界上,你认为最优秀的软件工程师都有哪些?对
于上面这两个问题,你是不是在心里已经有了自己的答案?如果有的话,你的答案的名单列表里分别有多少家软件公司和多少个软件工程师的名字呢?3 个?5
个?还是 10
个?尽管目前全世界有成千上万的软件公司和软件工程师都在做一些非常出色的软件开发工作,但当我让你列举出最优秀的软件公司和软件工程师的时候,我敢肯定
你的脑海里只能浮现少数几家软件公司和几位软件工程师的名字。为什么在如此多优秀的软件公司和工程师里,你的脑海里只会浮现这些软件公司或工程师的名字,
而不是其他的公司或工程师呢?这是因为浮现在你脑海里的这些公司和软件开发者不仅做的工作非常出色,而且因为他们愿意花时间去告诉你他们在
从事着非常出色的工作。我敢肯定,对于你名单上列的每一家公司和工程师,你一定读过他们写过的东西(如博客、论文或书籍)、听过他们的演讲(如访谈节目、
会议演讲)或是使用过他们的代码(如开源代码)。例如,如果你列的优秀软件工程师的名单里有 Linus Tor-valds
的话,很有可能是因为你对操作系统 Linux 或分布式版本控制系统 Git 比较熟悉,而 Linux 和 Git 都是 Tor-valds
开发出来并且供大家免费使用的开源项目。如果你列的名单里有 Den-nis Ritchie 的话,这很有可能是因为他是 Unix 操作系统和 C
语言之父,而且是开源标准、开源文库和相关书籍等缔造者之一。如果你列的优秀软件公司的名单里有 Google 的话,这可能是因为 Google
经常公开发布自己的研究论文,并将 Google Talks 系列放到网上供所有人观看,它同时还开源了包括
Android、Chrome、Angular 和 Go 在内的众多项目。包括 Facebook、Twitter 和 LinkedIn
在内的一些其它主要的软件公司,甚至包括微软这种之前非常传统封闭的软件公司,现在都已经开始定期开源数百万行的代码供大家使用。现在有一些公司甚至将自
己的项目完全建立在开源的基础上,将自己几乎所有的代码都共享开源出去,包括 Mozilla 和开源解决方案供应商 Red Hat 等。说了这么多,很多人要开始问了:为什么?为什么这么多软件公司和软件开发者愿意共享自己的工作成果?为什么他们在一个项目上投入了大量时间和数百万美元后会选择将项目开源供大家免费使用,甚至让竞争对手也免费使用呢?这只是单纯的利他主义,因为他们愿意帮助其他人吗?当
然,利他主义是其中的一个原因,不过这只是能够解释这个问题的原因之一。在下面的内容里,我将深入分析优秀的软件公司和开发者愿意共享和开源自己的大部分
工作成果的其它五个关键原因,同时探讨那部分不愿意共享与开源的人通常会给出的原因,最后,我希望能够说服你和你的公司在未来都能够更多地共享和开源自己
的工作成果。一、优秀的软件公司和开发者愿意共享和开源的五大原因据统计,大概有三分之二的软件公司都曾为开
源贡献过自己的力量。仅仅在 GitHub 平台上,就有超过 140 万的开发者在超过 3500
万个开源项目里共享过自己的工作成果。这个数字已经让人非常惊讶了,更重要的是,开源项目的规模正在呈指级增长,所以这个数字将会变得越来越大。进行开源项目共享、博客分享、演讲分享的人并不仅仅是想做慈善。当然了,确实有很多开发者是真心地想回馈开发社区,但这本身并不能解释为什么软件行业的共享开源会如此普遍。很多优秀的软件公司和工程师之所以愿意共享和开源自己的工作成果,主要有以下五个方面的原因。原因一:共享和开源有助于自己更娴熟地掌握相关知识学习一样东西的最好方式就是去将它教授给其他人。这是因为要想将一种知识教授给其他人,需要你自己对这种知识有更加深刻的理解和认识。每当我准备完一场演讲、写完一篇博客或是为一个开源项目贡献了新的成果之后,我便会对相关的知识有更加深刻的理解。对
于一家软件公司而言,鼓励你的员工通过写作、演讲或开源项目的方式去分享他们的工作成果是你给他们提供的最廉价但最高效的培训项目。对于个人而言,花一定
的时间去分享自己的知识是提升自我的最容易、最有效的方式之一。事实上,一位工程师之所以能被大家尊称为资深工程师就是因为他们能够帮助身边的每一个人变
得更加优秀,而让周围的人变得更优秀的唯一的方法就是去给大家教授知识。原因二:共享和开源共享有助于提高自己的项目质量你
家里一般在什么时候是最干净整洁的?我猜应该是每次家里来客人之前你精心打扫之后的家最干净整洁的。毕竟家里来客人时,你想将最干净整洁的家展示给客人,
就好比是你将自己的家和客人分享。其实不管你和别人分享什么,同样的道理都是适用的。将自己的代码开源的一个最意想不到的益处之一在于,在准备代码开源的
时候,你会确保即将开源的代码是高质量的,因为你知道一旦开源,就会有 “客人”
看,这和家里来客人之前你都精心打扫一番是一个道理。在开源之前,你会花更多的时间去清理代码、增加测试项目、编写所需要的文档,争取让准备开源的项目以
最好的面貌展示在大家面前。如果你准备写一篇博客或是准备就自己的工作给大家做分享,上面这个道理同样适用。开源一个项目有助于让项目的质量变得更高。除
了上面所说的之外,共享你的工作和项目还能从另一个方面提高你的工作和项目的质量:反馈。你分享的东西获得的所有评价反馈,不管是正面评价还是负面评价,
都是你进一步学习和提高的一个难得的机会。有时你会发现自己在交流分享一些内容的时候没有表现得很好,或是你遗漏了所分享主题的一个非常重要的部分、或是
针对一个问题的一个完全不同的视角你没有考虑到。在开源代码方面,反馈所发挥的作用就更加强大,因为它本身就是一种获取同行审查的方式。正是基于这个原
因,开源已经成为开发复杂和关键的软件系统的一个标准,例如安全稳定、操作系统和编程语言的开源。有数据表明,通常情况下,开源的项目要比那些封闭的项目
质量更高。著名的计算机程序员、开源软件运动的旗手 Eric S. Ray-mond 曾这样说过:“只要经过足够多双眼睛的审查,所有的 bug 都将失去藏身之地。这就是 Linus 定律。”原因三:开源和共享能够让你免费利用大家的智慧与劳动每
当有人使用了你的开源代码并报告了一个 bug 之后,就等于他们为你免费做了一次
QA。每当有人在你的开源项目里提交了一个补丁之后,就等于他们在为你免费开发软件。每当有人写一篇有关你的开源项目的博客的时候,就等于他们免费为你写
了一篇文档。如果他写的是一篇负面评论的博客,即使这样,这也等于他为你免费做了一次设计评估。将你的项目开源就等于允许让整个开发社区都
在这个项目上贡献,相比你自己单兵作战而言,尤其是当你在一家小的创业公司工作的时候,项目开源可能会帮助你将项目变得更大、质量变得更高。即使你在一家
大公司上班,你也会发现有很多优秀的开发者你是无法招聘到的——可能是因为你的招聘经费不够,可能是因为那些开发者非常满意自己当前的工作,也可能是因为
他们生活在地球的另一端。但是如果你开发了一个非常优秀的开源项目,那些优秀的开发者可能就会免费帮你在这个项目里贡献他们的力量。举个例子,目前已经有
超过 3000 名开发者为开源的 web 框架 Ruby on Rails 贡献过自己的代码,更不用说还有上万的开发者使用过这个框架、报告过
bug、写过有关它的博客文章以及写过插件。如果你的公司想写一个自己专有的 web 框架,你认为你能够投入多少人在这个项目上呢?原因四:开源与共享是推销自己的最好方式如
果你是一位软件开发者,让自己在一家公司面前看起来非常优秀的最好办法就是共享你的工作。你不妨将其视为一种让公司主动找上门的推销自我的策略。在找工作
的时候,你不用通过盲目地满世界投递简历的方式让招聘公司注意到你,你通过共享很多公司认为有价值的内容的方式来吸引那些潜在的招聘公司的注意。如果你通
过共享让其他公司的工程师曾读过你写的博客、看过你演讲访谈视频亦或是使用过你开源的项目,他们便会将你视为专家,也就会更想去招聘你。你共享过的内容将
成为你的简历的一个永久的组成部分。事实上,共享对找工作的作用可能超出你的想象,正如 jQuery 的创始人 John Resig 曾说过的那样:“不管在任何时候,只要涉及到招聘,相比普通的简历而言我更看重的是应聘者在 GitHub 上开源共享的东西。”如
果你是一家正在招人的公司,上面的道理反过来同样适用。给那些优秀的开发者留下一个好印象的最好的方法就是共享你的工作。如果一位开发者在过去几年里一直
在使用你们公司的开源代码,那么他们想要加入你的公司并继续使用你的开源代码的可能性也就更高。开源项目是吸引优秀的开发者加入公司的最有效的方法之一,
这种方法比传统的发招聘简章的方法不知要好多少倍。原因五:开源和共享能够让你获得对项目的拥有权作
为一位开发者,如果你已经投入了上千个小时的时间在一个项目上,那么你就会变得非常依赖这个项目。它就像你的孩子一样。如果这个项目是公司专有的项目,这
时如果你从这家公司离职,这就好像你经历了一次离婚一样,你失去了对这个孩子的监护权,这是非常痛苦的一件事。如果你经历了多次这样的事情,这就会让你很
难再有足够的激情在一个不真正属于你自己的项目上投入太多精力。然而,如果你更多的和大家分享你的工作,发布有关自己工作成果的博客或论
文,最好是开源你的项目,这样的话这个项目将一辈子都属于你。这个开源项目将成为你工具箱里的一个永久的组成部分,不管你去哪里,你都可以随身带着它,你
可以和更多的人分享它,你也会为在这个开源项目上工作感到自豪的。换句话说,开源项目能让工作变得更加有趣,更有满足感。在这个大家甚至会为争抢优秀的开发者打烂头的年代,让工作变得更有趣可以成为你招聘的一个巨大优势。正如著名的计算机程序员、开源软件运动的旗手 Eric S. Ray-mond 曾这样说过:事实证明,开源带给我们的宝贵财富之一是它教会了我们这样一个道理:玩的心态是最经济也高效的创意工作模式。二、一些人不愿意共享和开源的三大最常见的理由虽然我在上面举出了很多开源和共享所带来的益处,我知道依然还有很多人不愿意共享和开源,下面我列出了一些人不愿意开源共享的三个主要原因。我太忙了,根本没时间去共享和开源。没人会看我共享的东西的。担心有人会剽窃我的工作成果。下面我们就一条一条来看上面列出的不愿意开源共享的三个常见原因:原因一:我太忙了,根本没时间去共享和开源很多人之所以不愿意花时间去写博客、做分享演讲或是开源代码的一个最常见的原因就是:“我太忙了,根本没时间去共享和开源。” 每当这个想法将要蹦出来的时候,希望你都能记住这一点:忙与不忙其实是你自己的决定。
什么意思呢?你不是找时间去做很多事情的,你通常是挤时间做很多事情的,就好比你为了在项目截止日期前完成一项工作,你晚上就算是熬到很晚也会挤时间将工
作完成,就好比你不管怎样也会挤时间去看预约的医生,就好比你不管怎样也会挤时间去看《权利的游戏》,以及很多其它你认为重要的事情。而事实证明,如果你
想拥有一个非常成功的职业生涯,学会共享也是至关重要的。在职业体育里,繁重的锻炼和强化的训练是必不可少的一部分。同样的道理,职业音乐
家、舞蹈家和棋手每天都会花很长时间去训练、去磨练自己的技艺。在大部分公司的工作里,一旦你大学毕业并完成了在新公司的入职提升培训项目之后,你就再也
没有专门的时间去专门进行学习与培训了。其实你可以完全不用这样的。就以我为例,每天晚上 11 点,我都会花 20-40
分钟的时间去创作、学习和分享。根据我当时的心情,我可能会看视频学习、读书、写博客(比如你正在读的这篇文章)或是投身到一个开源项目里。我发现,我每
天都会抽一定的时间去学习并分享自己的学习心得的这个习惯已经彻底改变了我的职业生涯。让学习和分享变成你每天的时间安排里必不可少的一部
分。找到适合你的时间段——可能是每天早上工作前,可能是午饭时间,也可能像我一样在每天晚上睡觉前——每天花 20-40
分钟的时间去学习和分享。每天 20-40
分钟,看起来时间并不长,想想一旦长时间坚持下来它可能会带给你的复利:你现在每天投入的很短的时间在未来产生的集聚效果可能会超出你的想象。原因二:没人会看我共享的东西的即使没人看你写的博客或是使用你的开源项目,那也没关系。写作、演讲和开源项目最重要的作用是,它们可以作为你学习的工具。正如著名作家 William Zinsser 在他的书《On Writ-ing Well》里所写的那样:写作其实就是一种在笔尖上的思考。写博客的主要的目的就是为了提升你的思考能力,所以即使你写的东西没人看,写作也是非常值得做的一件事。同样的道理,准备一场演讲,将你的想法分享给大家听也是可以帮助你理清思路的。此外,正如我之前说过的那样,你为开源代码所做的准备是可以提高你的代码的质量的。如
果你经常锻炼你的写作、演讲和编码的技巧的话,你的粉丝、读者和观众可能会慢慢变多。最开始可能是身边的朋友和同事,但慢慢的,尤其当你将你的作品在
Twitter、Facebook、LinkedIn、Reddit 和 Hacker News
等平台上分享的时候,很多原来陌生的人也会看到你分享的东西,并且会主动分享它并提供反馈。此外,在互联网上,是没人能看到你的真面目的,你的身份其实就
是你写的东西、演讲内容和开源的项目的集合体。换句话说,在如今的世界上,人们可以将你等同于你分享的东西。如果你担心没人对你所要分享的东西感兴趣,你只要记住:每个人其实都在学习的不同阶段。正如一位非常知名的程序员 Steve Yegge 在他的一篇文章《你应该写博客》里所写的那样:你
会惊讶于太多看起来就像是 “常识”
的知识实际上对很多同样聪明的人来说都是全新的知识。其实只不过是因为这个世界上有太多东西需要我们去了解,我们都在不断的学习罢了。有时候我也会被泼冷
水,因为看起来好像我讨论的东西早就已经有人和大家讨论过了。我需要记住的是总有一个 “恰好的时间” 去学习某些恰好的东西,这个 “恰好的时间”
对每一个人来说是不同的。无论你处在教育生涯的哪个阶段,有些人会喜欢了解你的奋斗过程。当你在写博客的时候,你应该把这句话放在心里。你的读者
当中每一个人都有一个属于他们自己的不同的时钟,他们都是在某方面比你强,但又在某方面比你弱。写博客的意义在于我们都乐意去分享自己目前的状态,并且不
会去嘲笑那些在这方面没我们懂的多的人,因为很有可能他们在其它某个领域的造诣可能是我们自己未来很多年都无法企及的。原因三:担心有人会剽窃自己的工作成果大部分人其实都没有兴趣、时间、精力、知识或技能去剽窃你的工作成果的。正如计算机先驱 Howard H. Aiken 所说的那样:“不要担心别人偷取你的想法。如果你的想法足够好,你还得努力把它塞到别人喉咙里呢。” 此外,即使有人想从你写的东西或是通过使用你的开源项目去剽窃你的想法,这在大多时候其实都是一件好事,因为与你自己单兵作战相比,他们的反馈和贡献能够让你的工作成果变得更好。不
过也存在如果有人剽窃你的成果会对你造成危害的情况,那就是当剽窃你的工作成果会让你的竞争对手超过你的时候。当然,只有当你将自己最核心的技术成果共享
出去才会出现这样的情况。例如,对于 Google 这家公司而言,它的核心技术成果就是它的搜索架构,即它的搜索算法和大规模分布式系统,这是
Google 的秘密武器。Google 是不会将自己的秘密武器也共享出去的。但对于很多其它东西来说,将它们开源共享比保密能让
Google 从中获益更多,这也是 Google 将自己和搜索不直接相关的超过 900 个项目的 2000
万多行代码都共享出去的原因。此外,Google 还发布了一些有关搜索价格的论文(包括 PageRank、MapReduce 和 Gogle
File System 等)。毕竟光听到一个想法是不足以去剽窃的。事实上,如果你的想法足够简单,导致其他人仅仅通过阅读你的博客或听了一场你的演讲就能轻易剽窃并打败你的话,这只能说明你的想法可能还不够好。对比一下这两种说法:“我有一个有关社交网络的想法” 和 “我已经开发出了一种能将物体运送到太空中的方法”。执行其实才是更加重要的。相比想法,执行力是更难剽窃的。三、共享的文化其
实在生活的方方面面,要想成功,光完成出色的工作是不够的,你还需要确保其他人知道你完成了出色的工作。我发现,要想让程序员明白这个道理尤其困难,因为
程序员通常比较内向,不善于推销自己。但好消息是,分享自己的工作成果能够实现一个良性的循环,它既能提升工作本身,也能提高你的能力。一旦你意识到分享
自己的工作成果其实并不需要你去多花费额外的精力,而是工作本身不可或缺的一部分的时候(就好比写文档和测试是写代码不可分割的一部分一样),那么你在生
活的各个方面取得成功的可能性就会更高,包括找工作、获得升职加薪、获取客户和招聘员工等。分享的文化是软件行业和硅谷能够取得如此大的成功的原因之一。相比华尔街的保密文化,科技行业相对是比较开放的。如果大家都能学会共享,大家便能共赢。在一个流行共享的文化里,我们便能站在巨人的肩膀上看得更远。这也是我经常写博客、演讲和开源代码的原因所在。在分享我知道的东西的过程中,我也能学习到新的东西,同时也能看得更远。最后,我也非常希望能听到你的想法。稿源:
想通过手机客户端(支持 Android、iPhone 和 Windows Phone)访问开源中国:
旧一篇: 4个月前
新一篇: 4个月前
你也许会喜欢
因为开源才能用开源
2楼:pamxy
嗯,不错,要赢,确实需要开源!
3楼:eechen
居然不提GNU工程(GCC编译工具链/Bash Shell工具集/神的编辑器Emacs)的发起者RMS(Richard Matthew Stallman).无GNU,不Linux.连Linus Torvalds发布他的Linux时也只是说:我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统).36kr别总是Google长Google短的,说得好像发篇论文都比人家Apache/Facebook实现Hadoop/Hive/Zookeeper强一样.如果说Google论文这么重要,那么为什么不提IBM成就了Oracle的SQL论文呢?Google的Android SDK严重依赖人家的Oracle的JDK和OpenJDK,开发环境则基于人家IBM的Eclipse和Jetbrains的IDEA,Chrome则以人家Apple的WebKit为基础构建,Google还特么被36kr奉为开源上帝了?而且别忘了,大量利用开源软件的Google却配合NSA实施棱镜监控实现所谓的美帝国家利益,这特么能叫不作恶?!
开源可以让你开眼看世界,而不是闭门造车!
5楼:傻逼 eechen
10:52 (非会员)
引用来自“eechen”的评论居然不提GNU工程(GCC编译工具链/Bash Shell工具集/神的编辑器Emacs)的发起者RMS(Richard Matthew Stallman).无GNU,不Linux.连Linus Torvalds发布他的Linux时也只是说:我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统).36kr别总是Google长Google短的,说得好像发篇论文都比人家Apache/Facebook实现Hadoop/Hive/Zookeeper强一样.如果说Google论文这么重要,那么为什么不提IBM成就了Oracle的SQL论文呢?Google的Android SDK严重依赖人家的Oracle的JDK和OpenJDK,开发环境则基于人家IBM的Eclipse和Jetbrains的IDEA,Chrome则以人家Apple的WebKit为基础构建,Google还特么被36kr奉为开源上帝了?而且别忘了,大量利用开源软件的Google却配合NSA实施棱镜监控实现所谓的美帝国家利益,这特么能叫不作恶?!吃屎吧,傻逼
6楼:IdleMan
因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰
7楼:eechen
引用来自“IdleMan”的评论因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰所以你永远也无法达到RMS(Richard Matthew Stallman)的境界.
引用来自“IdleMan”的评论因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰引用来自“eechen”的评论所以你永远也无法达到RMS(Richard Matthew Stallman)的境界.多赞扬欓,多批评和欓关系不好的外企,不要惹是生非,给你五毛可不是让你喝茶嗑瓜子上万侃大山。
9楼:ak_birdofprey
自由开源和闭源软件的最大区别就是自由开源软件你可以学习到任何深度并得到很多人的帮助。闭源软件则因为大家都需要考虑赚钱,所以总是没有真正意义上的学写,更谈不上什么帮助。问题是很多时候你的需求和问题闭源软件的那些公司永远也搞不明白,你花了钱其实买回来的是个和你想象中根本不一样的玩意
10楼:ak_birdofprey
只要经过足够多双眼睛的审查,所有的 bug 都将失去藏身之地。这就是 Linus 定律。
11楼:thanatosx
12楼:赛克蓝德
还有一个重要的原因是打击竞争对手。
引用来自“IdleMan”的评论因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰引用来自“eechen”的评论所以你永远也无法达到RMS(Richard Matthew Stallman)的境界.这个回复说明你根本没懂RMS, 更加不懂自由软件和开源软件的区别。
14楼:SimonYe
嘿,好兄弟、有坑大家一起填 ~
15楼:eechen
引用来自“IdleMan”的评论因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰引用来自“eechen”的评论所以你永远也无法达到RMS(Richard Matthew Stallman)的境界.引用来自“szf”的评论这个回复说明你根本没懂RMS, 更加不懂自由软件和开源软件的区别。说得好像你很了解RMS的样子,玩你的CShap和Windows Server吧,呵呵.
引用来自“IdleMan”的评论因为开源能够获得收益,所以开源!当闭源的收益大于开源的收益却仍选择开源,在当前这个社会那只能说明贰引用来自“eechen”的评论所以你永远也无法达到RMS(Richard Matthew Stallman)的境界.引用来自“szf”的评论这个回复说明你根本没懂RMS, 更加不懂自由软件和开源软件的区别。引用来自“eechen”的评论说得好像你很了解RMS的样子,玩你的CShap和Windows Server吧,呵呵.继续在你自以为是的领域放P吧,呵呵~
17楼:段帅琪 来自
好文章,值得拥有。
18楼:新人王
分析得很有道理。
19楼:杨应滨
我是一个从不写博客,从不评论的人,确实被作者的这篇文章打动了,从今日开始,我开始坚持写博客,分享代码资源,在此mark!
与内容无关的评论将被删除,严重者禁用帐号
本周热点资讯
本站最新资讯

我要回帖

更多关于 软件开发者 的文章

 

随机推荐