程序员的定位

2020-01-11

有一件可怕的事情是,程序员不再关注代码、软件、系统、架构,而是关注产品、运营、销售,展望内容不再是提高代码质量、迭代更好的软件、做更好的工程,而是提高文档输出能力、活跃团队气氛。

startup与996

公司开始倡导创业心态,创业嘛,大家就要一起努力,一起干大事。BOSS说,有天回公司晚了,看到某某和某某10点多还在……大家也要这样,我们也只能这样做,如果因为身体或者其他原因不能适合我们这种节奏了,可能就不太适合我们这个团队了。大家要一起努力,要10106,我们只能这样做,如果不这样做,如果不这样做……公司就会死。

当时听到这儿,哑然失笑。说句不太符合价值观的话,我明知道这样说不对,如果老板看到这样的想法,我明天就得和HR聊聊了,这是没有责任心的体现,这是没有职业道德的体现,这是……恕我直言,公司死掉,于我何干?

画饼啊,平时都听人吐槽,老板给画个大饼,入职后发现遥遥无期,然后上网发帖,不要相信老板的鬼话,不要相信什么福利奖金,拿到手的才是真的。我们这画风好像不太一样啊,如果不努力,公司会死掉?以前看到过一句话,所有人都告诉我们要努力,但是从来没有人告诉我们努力之后可以得到什么。公司死掉了,我们换家公司不也照样干活吗?

年会的问答环节上,大BOSS抓住了“享受红利”这个字眼,大意是红利不是公司给予的,要给公司带来相应的价值。猜想很多时候,公司的想法是,你要先给我干20分的活,我就分你10分的利。员工的想法是,你给我10分的钱,我就干好10分的活,你要再多给我5分,我就再多尽5分力。

996是类似的问题,我们为什么是10106?因为我们9点半上班,坐到工位上打开电脑、开个晨会大概就10点了,所以是1010,而不是99。关于996,一种说法是有些员工挣表现的心理,从小被奖励小红花的培育文化,造就了认为“只要努力就会有收获”的心态。不过很多老板也确实吃这一套。

昨天我听到了另一种说法。我们BOSS虽然说出了10106的话,但是并不会发正式的制度通知出来,因为这违反劳动法。我对此感到疑惑,这就不好办了呀,到底要不要10106?请教稍有经验的员工,得到的答案是,老板喜欢“聪明”的员工。也就是说,老板提到这个事了,具体怎么做得自己掂量。

加班

有时候项目紧、突发bug、上线、工作失误,偶尔加班很正常,有忙有闲。有的公司要求经常性加班,有干不完的活,也就是所谓996工作制。一般来说965是一个数,996是一个数,对应的薪资水平不同。产生矛盾的点在于,公司希望用965的薪资招996的人,员工希望领996的薪水干965的活。

存在一种情况是老板没有要求加班,但是有人加班。每个人分工不同,任务量不同,完成速度不同,要看具体情况。如果自己效率低于别人,加班无可厚非。比较坑的是别人因为效率不高整天加班,你完成任务没有加班,老板就在工作时间这件事上做文章。你如果和别人一样的工作时间,是不是就能产出更多了?别人没完成的也可以帮帮忙完成一下……相信明智的领导能够分辨出真正的工作能力,也能够按照工作量而不是工作时间判断产出。不过最可怕的是揣着明白装糊涂。

另一种情况是老板要求多呆一会儿。可能没有那么紧急的工作需要加班才能完成,但是别人加班了,为什么你到点就走?所有人都加班,就你特殊?……老板为什么会想要多呆一会儿呢,加班总归要多干点活吧,应该是植根于中国劳动人民群众心中占小便宜的心理。

其实996对工作产出的影响未必是正面的。如果到点大家都下班了,我是不好意思长留加班的(认真),别人都能完成工作,你需要加班完成,是不是你能力不行?所以工作内容会尽量在上班时间紧凑的完成。如果每天需要加班呢,反而会感觉上班稍微拖沓一点也没事,反正要加班,反正到点也走不了,上班时间摸摸鱼,没完成的好好加一把班,还能给老板留个好印象。

技术人

公司开始倡导“销售导向”,因为销售是能够直接决定收益的一环,也是老板比较重视的部分。述职会上,我第一次从销售和运营的口中了解到公司的全貌,也是在述职会中,BOSS提到,“像了解机器学习常用的模型和算法是一些很具体的、很普通的事情,我们要……”,那正是我几天前的述职材料中提到的内容。

其实技术不重要,尤其是销售导向的公司,用到了什么技术真的不重要,重要的是把客户谈下来,把客户忽悠住,给公司挣钱。放在整个社会中,技术要足够领先、足够新,才能有立足的可能,像机器学习这样已经谈了十几年的技术,了解常见的用法确实很普通、很平庸。尤其是并不能带来什么收益。

从实行OKR开始,我们的绩效计划有两个特点,一是要有目标有结果,二是这个目标和结果不是工作内容方面的,而是自我提升方面的。自我提升主要指输出,就是写内刊、写专利、分享技术等,尤其是要能够给工作带来帮助的。讽刺的是,我们几乎没有技术氛围,真正写代码的只有几个骨干。从绩效管理能体现出的是,领导不太在意工作方面的内容,比如建立项目规范和开发规范,需求、开发、评审、测试之类的,领导更在意个人方面的东西。

可能很多时候的情况是,公司在意的是“你能给公司带来什么?”员工想的是“公司需要我做些什么?”

述职也是一样,不得不写一些工作之外,但又和工作相关的内容。深度学习本身是一个值得学习和研究的技术领域,即使是常见的模型和算法,从原理到工程至少也要1年的时间才能有一定了解。另外我目前的工作内容是应用层开发,也就是增删改查的业务之类,部门的技术主题是区块链,所以就把机器学习放在了展望一栏。

个人而言,机器学习是很大的一步。它本身有一定门槛,以前也多次尝试,看吴恩达的教程放弃了一次,看斯坦福的图像识别课放弃了一次,……有观点说机器学习是微积分在现代计算机技术背景下的发展,它的基础理论是数学,同时观点也提到,区块链是小骗,AI是大骗……不管骗不骗,总归还是要学的。

程序员

和销售或者运营相比,程序员的特点之一可能是不那么依赖外部资源,人脉、市场、监管、业务,技术在形式上千变万化,本质上都是操作计算机进行计算。应用层开发的程序员,本职工作应该是按照进度要求完成开发任务,职业素养是保证代码质量,需要提升的是系统架构能力。熟练的Coder可以高效使用工具链,优秀的Coder可以优化算法、提高程序效率和系统性能。

对不起,I am a Coder,我认为不丢人。(@不要自称为程序员