什么是程序员(1)

作者: 刘思宁 | 来源:发表于2018-01-28 19:42 被阅读95次

    我上一份工作的职位是后端工程师,但对于不熟悉软件开发中各项分支的同学,我一般都会说我是程序员,以免「后端」这两个字造成理解 上的问题。

    但是,到底什么是程序员呢。虽然很多程序员这样介绍自己,但到底什么是程序员呢,写程序的人员么?

    为什么有些人说自己是程序员?

    如果程序员的意思是写程序的人员,那当程序员们不写程序的时候,他们(或者说我们,以下使用第三人称是为了用旁观者的角度进行思考)是什么?

    更进一步,程序员们向新朋友介绍自己的时候(是的,程序员也社交),他们的手通常不会同时敲打着键盘,在那时那刻他们没有在写程序,谁也看不出来他们会写 var obj = new Object(); 之类的东西。那他们为什么还说自己是程序员?他们说这话的时候到底在表达什么意思?

    另外,很多人其实都会写程序,很多大学里都有 C 语言这门课程,学生做实验的时候还会写一些程序来处理数据;数据分析师有时也要用 python 或者 MATLAB 写一些程序。那为什么他们很少称自己是程序员?

    所以,当有人在说自己是程序员的时候,他表达的肯定不是或不只是「写程序的人」或「会写程序的人」,因为这个含义无法解释上面所述的情况。他们更像表达的可能是「以写程序的作为职业的人」,或者说「靠写程序赚钱的人」。

    那么问题来了,写程序真的能赚钱么?很多人觉得理所当然,因为至少有工资可以挣。但这个事实其实不是每个人都知道的,也不是每个人从一开始就知道的。我遇到过一些现在的程序员,比如《Rails 实战圣经》的作者 ihower。他在一次活动中说:自己上大学的时候就不知道写程序能挣到钱,直到后来有人花钱请他写个网站,才知道写程序和钱是可以有关系的。

    为什么会有人不知道,或者不觉得写程序能赚钱呢,尽管他们会写程序?我想,这可能是因为两点,一是没有见过别人写程序能赚钱,二是在没见过别人写程序赚钱的情况下,不知道为什么写程序会被社会(社会中的别人,简称社会)需要。

    第一点很好理解。没吃过猪肉,也没见过猪跑,就可能不知道什么是猪。见过别人写程序能赚钱的,应该不难想到如果自己也会写程序,那么自己也能赚到一些钱——很多编程教学网站的广告应该就是这个意思。

    如果我们没有见过别人靠写程序(为职业)赚钱,那么我们能不能知道写程序能赚钱呢?也是有可能的。如果我们理解这个社会为什么需要计算机程序,并且知道价格由供需关系决定,那么我们作为程序的生产者,就可以在市场上要价(Ask)了。

    从另一个角度讲,其实见过别人写程序赚钱的人,就已经是知道这个社会需要计算机程序的人了,可能只是没有想过为什么需要。

    话说回来,我们在上面不小心使用了另外一个词组来解释程序员:(计算机)程序的生产者。这个社会需要一些计算机程序,所以愿意出价(Bid)购买程序员的生产结果。

    题外话:
    这个世界上的物品好像都是有生产者的,而且那个生产者是一个人。生产者通常拥有物品的所有权,也就是说,在你买到那些商品之前,他们是有另外一个主人的,所以你需要把钱交给另外一个主人。如果某些物品(比如土地)的生产者竟然不是人,那通常是大自然的创造,在不同的国家,这些物品瓜分的方式不一样,有些是国有,有些是私有,主人最终还是人类。但是,据说有一种叫做区块链的技术,竟然赋予了物品独立的财产权[1],感觉挺有意思的。

    虽说这个社会需要计算机程序,但是很多程序员其实并不是在写一个完整的程序类产品,然后进行销售。而是写一个程序的零件,然后卖给一个公司,也就是去这家公司上班。这可以被理解为一种 To B 业务,只不过报酬中包含了保险,假期,补贴等,并且把交易合约称作劳务合同。

    不同的程序员会制作不同的零件,前端的(比如显示在浏览器里的页面),后端的(比如存放文件的功能),以及其他的(运维,数据库,分布式)。公司采购这些零件之后组装在一起进行销售。从这个角度讲,程序员也可以被称为软件系统零部件供应商。

    但程序员和制造业的生产商或加工厂也有很多不一样的地方:工厂可以添加生产线增加产能,程序员靠什么增加产能?生产商可以和多家公司签订销售合同,程序员为什么在同一时间只在一家公司上班?

    我们以后讨论这些问题。现在先回到我们本小节的问题:为什么有些人说自己是程序员?

    通常来看,可能是因为他们主要的收入来自于和一家公司做软件零部件的交易,并且他们基于某些原因,他们有能力和更多的人(或公司)做这种交易。


    1. 可能是因为区块链中的某些数据再也不能被人们更改,所以他就可以属于物品自己,而不被人们改成自己的。

    相关文章

      网友评论

      • 阿群1986:程序员为什么在同一时间只在一家软件公司上班?
        美工为什么在同一时间只在一家设计公司上班?
        流行歌手为什么在同一时间只能跟一家唱片公司签约?

        通常雇主都不希望员工接私单做私活吧😅

      本文标题:什么是程序员(1)

      本文链接:https://www.haomeiwen.com/subject/ymmzaxtx.html