上一篇讲了程序员为什么喜欢写脚本,为什么喜欢分享自己写的脚本,最终如何通过这些开源代码逐渐构建出更大的项目的过程。反馈很强烈,对这个话题有兴趣的人很多,这次继续说这个话题。
如果对科技和软件行业的历史有一些了解,你大概会知道一些有趣的事情。在软件销售领域,除了程序员的开发工具,其他行业的专业软件价格都高的惊人。几十年前,开发工具还是一门好生意,利润很高,几家提供开发工具的软件公司经过了好几场大战,最终过去那些显赫的名字,逐渐消失了。微软虽然某种意义是那场战争的胜利者,但也不再和过去一样能从开发工具获取不错的利润。同时,在图像处理领域,Adobe的套件不仅始终处于垄断地位,价格也没什么变化。Adobe除了增加一些小功能,让软件更加好用,这些年最大的改进应该是从软件销售转移到云服务,这可不单单为了用户使用方便,云服务可以让那些买一套软件用10年再也不升级的用户持续付费。算下来10年使用成本反而还增加了。AutoCAD有什么变化吗?3D solid有什么变化吗?都差不多,变化不大,但继续安享高额利润。
曾经的软件行业利润最大的那些公司,只有为程序员服务的那些被杀死了。程序开发领域,这些年的变化可谓翻天覆地,程序员们构建出来的项目规模已经千百倍于那个年代,复杂性,工具的先进性都不可同日而语。但这些工具和软件,反而变成免费或者非常便宜了。为什么不同行业差距这么大?因为程序员们几乎在自己需要用到的所有领域,都以开源的方式创造出了商业软件的代替品。在这个领域工作的人们有了选择权,这些开源软件起初并不好用,但是它确实能用,又免费,还有代码可以自己改,对于很多情况,虽然简陋,但这也是足够了。在这个领域的商业公司受到了这些免费产品的竞争,利润率自然下降,其他不能自己制造工具的行业,比如设计师们用的那些软件,受到的挑战就小的多,仍然被大公司主导着产品开发进程。
和其他行业不同,程序员工作的目的之一就是提高自动化水平,甚至取代自己的工作。换句话说,大概没有什么专业人员和程序员这样,以砸自己饭碗为工作目标。人们通常会注意到,数字化和计算机的发展慢慢取代/改变了很多行业,杀死了很多职业,但一般不会注意到,程序员杀死最多的职业其实是自己这个职业。一代又一代更好的工具和架构被发明出来,通常就代表靠上一代工具生存的那些职位消失了,如果停止学习,在这个行业里面很难有人能5年之后还能继续工作。当然,还是有很少一部分人能用一个技能维持很多年的工作,但他们通常聚集在其他行业中,比如为金融保险或者企业信息系统提供服务和支持的职位。在真正纯粹的IT技术和互联网产业,技术的更新换代速度相当快。
在其他工程领域,工程师们当然也创造自己使用的工具,无论是机械还是电子,很多工具和方法也是工程师发明的。但是受现实世界资源限制,他们创造工具和推广标准的速度不可能那么快,创造工具的成本也过高,很难和程序员这样,把制造工具和改善效率做为一种日常活动。在软件行业,有极大比例的程序员是同时制造产品和工具的。互联网普及到今天这个状态之后,在新一代程序员里面要找到完全没为开源项目贡献过任何代码的人也不太容易了。大家多少都会在工作之余或多或少贡献点什么。像程序员这样,一个职业中大部分劳动者都在制造工具的情况,其他行业是很少见的。
工程师和科学家不同,他们可能并不能创造历史上的关键节点,但是可以在有限的资源内作出最好的实现。软件领域就是这样,较低的工具成本让更多人容易进入这个领域,从而有了更加富裕的劳动力和创造力,让工具和基础设施的完善变得更加容易和快速,整个行业是滚动向上发展的。等行业水平发展到一定程度之后,它就成了完整的体系,这时候这些工具的使用范围和影响力就不仅仅限于计算机行业了。我们现在就能看到这种现象,几乎所有行业都在依赖类似的基础工具。一个比较直观的典型例子就是scipy, 它是用Python语言实现的科学计算包,现在几乎所有理工科的研究工作都会用到它。别管什么专业的研究生,要做数据研究,就得会写点Python,因为要使用它做计算。但scipy这个在科学研究领域已经是必须使用的东西,并不是科学家开发出来的,而是程序员Jim Hugunin发起的,在最开始的时候,它还很不完善,性能也不好,但至少是可以用的,随后越来越多的工程师,大学教授等等加入项目,逐渐完善它,最后变成今天比较完善的状态。更多程序员故事:www.yangfenzi.com/tag/chengxvyuan
除了某个开源程序包的影响,现在几乎所有学科都面临做大规模的计算现实问题。这时候他们会和计算机行业使用同样的系统基础,因为再也没有更好的廉价解决方案了,甚至不廉价的解决方案也很难有。既然用了这些解决方案,因此衍生出来的运维,部署,并行化,监控……一系列的现实问题,自然也就都和计算机行业完全一致。无论是架构还是脚本,或者是现在使用云计算服务以及容器,这些被软件工程师们创造出来的架构方式和工作方式,最终也被其他行业采用了。
程序员从对自己工作效率不满意开始,逐渐创造工具和方法论,最终形成一套完整的体系可以被其他行业使用。大部分人在做这些事情的时候,并没有改变其他行业的野心,只是为了解决自己的问题。但这个行业比较良好的工程意识逐渐让这些解决自己问题的思路和工作成果可以被抽象出来,推广开,影响更多的人。也提高了其他行业的效率和作出更重要成果的机会。这些都是软件行业给世界的礼物。
甚至程序员直接使用的工具,比如编辑器或者版本管理工具,对其他行业也是有很大帮助的。可能这些工具的思路和界面对于非程序员还不够友好,但是花一点时间学习,就会感觉到他们的优势。比如,我一直四处劝说文字工作者尝试使用github,尤其是多人协作的项目,这可以让他们协作效率大大提高。遗憾的是至今说服成果还不大,可能对于他们开始学习难度还是很大,还需要更多的辅助工具和教学方法。不过我相信这些工具早晚会变得更加普及。
现在我们所生活的这个世界,间接被程序员成果影响的行业太多了,绝不仅仅是手机上看到的这一点点纯互联网领域的变化。从医疗到制药到材料,金融和经济以及社会,几乎所有领域都需要靠计算来决策,实现计算的背后靠的仍然是程序员创造的这些基础工具。
人们应该感谢这些总想砸了自己饭碗的家伙们。
【文/霍炬 歪理邪说(微信号:wxieshuo)】
·氧分子网(http://www.yangfenzi.com)延伸阅读:
➤ 从Google的单代码库模式看Google工程的制度与文化
➤ 硅谷Airbnb资深程序媛朱赟:女工程师到底有没有受到不公平待遇
➤ 程序员,再不减压你会得精神病! 池建强:历数程序员背过的锅
#细思恐极# 很久很久以前,我们就发现,程序猿这一职业和其它所有职业最本质的不同在于:其它职业的目标是发展领域本身的影响力,而程序猿这一职业的最终目标就是消灭编程这一行为…. GNU 样的自食反讽真心是编程这一行为物种的某地精神结构 是也乎 ╮(╯▽╰)╭
很有意思的脉络。放在四百年前,也许会出现一个叫做“皇家程序员学会”的奇葩组织……,某大牛曾任会长,同时兼任铸币厂厂长…
“如果停止学习,在这个行业里面很难有人能5年之后还能继续工作”。作为程序员深有体会。甚至停止学习的一两年后就会与其他人产生巨大的差距。不进则退啊。
可惜了 大部分中国互联网公司都是炒作、PR、营销和情怀而不是技术驱动的
俺们公司,去年有幸和 ZoomQuiet 研发课程用 GitHub 协作,目前内部协作、团队知识管理及用户运营(比如学员提交作业)内容运营(编辑图书、公众号图文)全结合 GitHub 了 虽然新同事学习曲线较陡,但上手后效率必蹭蹭上涨
从本质上讲,现代化就是自动化。把不可扩展的人从工作流里逐步剔除,使用机器代替人的劳动,再将机器大规模扩展降低价格。程序员作为给机器写规则的人,应该是对这个过程理解很深的。
作为一个年过30的Java程序员,一直在银行写一些千篇一律的代码,在程序员这条职业线上发展过于缓慢,个人追求技术的速度已经赶不上技术的更迭速度,而且随着技术的进步和好框架的层出不穷,也的确不需要那么多程序员了,反而,换个赛道,在别的行业搞一搞说不定能看到光,另外,借助于会写程序的底子,说不定能干点更有意思的活儿。祝我好运。
今天给大家总结下,深受我们程序员鄙视的一些外行语录!让他们“反省”下,O(∩_∩)O哈哈~
头一条就是很多公司的招聘信息中写“公司内美女很多”,还配上所谓公司美女照片的。没人关心这个好吧。想用美色可以诱惑程序员来干活,程序员才没这么猥琐好吧!
你写软件?那你写个微信出来呗~
你写网站?写个淘宝出来看看啊!
你学计算机的?那买些电子元件你能做出个电脑的吧?
你会写汉字?咋不写个红楼梦出来~
别给人打工了,你写点软件搞个专利,出来开公司呗~
整天盯着电脑,辐射大,死得早吧?
你们理工科的,情商很低吧?
嗯,听你说话看得出来你情商很高!
以及这些:
帮我抢个火车票/抢个单/抢个红包/抢个小米呗!
帮我下个XXX软件/装个软件/装机/清理内存吧!
我密码忘了,你帮我找回来。
你知道我开机密码/邮箱密码/QQ密码是多少吗?
我邮箱被盗了,你帮我盗回来。
我不小心删了xxxx,你帮我恢复回来吧。
你帮我看看这个手机/电脑,出什么毛病了?
手机进水/摔了,你能帮我修修吗?
听说那些程序猿,钱多话少死的早。
加班加到十点半,女朋友都存电脑。
机子蓝屏又死机,学电脑的来修好。
折腾半天弄不对,大学都学啥去了(liao)。
我想要个小网站,明早就给我写好。
手机应用挺赚钱,周末上线早不早?
你这敲的啥玩意,一行能值几个钱。
账号密码帮我盗,游戏外挂少不了。
工资不如拿期权,不为钱财为理想。
到底是吃青春饭,不如跟我卖保险。卖!保!险!
三姑六婆:你在清华学计算机啊。
我:对啊。
三姑六婆:和北大青鸟比哪个更好?
一脸懵逼!
其实想说应该都不如蓝翔吧,还是
忍住了…
公司妹子一副(老娘就是不给你钱还要找你帮忙)的样子:你就帮我改一下嘛,很简单的。
就从静态页面改成动态。一天能好不?
能骂人吗?不能?那没什么好说的!
说程序员工作简单:
这么简单,随便找两个大学生就能做了。
这个怎么简单连我都会做。
不就是写条SQL语句嘛。
你行,你倒是上啊!