《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。本期我们邀请的程序员Peter,是一位从业时间近13年的开发者。
1、请自我介绍一下。
我是Peter,2011年毕业,毕业后在某公司工作了四年左右。离职之后做了两年自由职业,个人接单,主要做软件开发的工作。那个时候的业务体量比较小,没有正式的公司化运营。随着公司的业务越来越多,到了2017年,我感觉是时候注册一家公司了,因为经常有客户需要开发票,而且有一家公司也显得比较正规。
公司从17年到现在也有7年了,早在12年的时候我就注册了猪八戒,那个时候在猪八戒上建站的需求有很多,所以我就开始在猪八戒上尝试,接了几单之后,感觉上班不如自己干轻松,于是就辞职自己单干了。
那个时候建站的需求有很多,虽然总体没有现在多,但也没有现在这么卷。主要是那个时候市场大,订单也多,所以感觉上竞争没那么激烈。但是在平台上,有很多单子都是倒了好几手的。客户从平台上下单成交,平台内部的这些商家就互相转订单。虽然平台转了一手又一手,但这样至少保证大家都有订单,而且那个时候平台是不抽佣金的。
2、如何成为一名优秀程序员?
在咱们国家有很多问题,其实不是技术上的问题,而是为人处事的问题。
因为我本身是一个比较老实的人,上大学的时候我们都是学计算机的,大部分同学都觉得自己很聪明,就不去好好的完成作业,其实都是在耍小聪明。有时候老师找我们帮忙写代码。有的舍友不仅不去还笑话我们这些去帮忙的,说你们给老师干活又不给你钱,干个什么劲。
等到毕业的时候,很多同学没有从事程序员这个行业或没有拿到心仪的offer,而我们这些在学校里给老师帮忙的,由于干的都是本专业的工作,专业对口,就比很多人能更好的适应公司给的工作任务。
我们上学的时候学的是JAVA,还有C++,后来实际工作中用的是自学的PHP。前端是HTML、CSS。后端是因为PHP确实比较简单、比较好学,简单入门难精通。我这个年龄其实算是赶上了一个时代的红利,那个时候经济比较好,公司规模也比较大,程序员也很多。
上学的时候,你觉得自己的专业排名很高,觉得自己很厉害。等到了公司之后才发现自己几乎啥也不会。好在那个时候公司效益好,能赚钱,你在里面滥竽充数,也没有人会发现,公司也不着急。每一个程序员从入门到精通,都得坑上两三个公司,然后才能掌握技能。我比较幸运,老东家财大气粗,也不那么卷,我就跟着在公司里不断地学习、实践,把自己的技能点都打磨的比较好。
现在想成为一名优秀的程序员,其实更多的不是技术问题,而是讲究一个人情世故,干工作干的就是人情世故。
3、你如何评价程序员这个职业?
这个也是我们平时和同行经常交流的一个问题,在现在的社会里,程序员依然是屌丝逆袭的最佳途径,为什么这么说,因为现在的经济结构,咱们现在面临经济结构的重组,各个岗位之间的更替也很快。
如果你想坐在办公室,冬天冻不着,夏天热不着,公务员考不上,又不想从事销售类的工作,去跟人打交道、去开发客户,你赚钱还想多,那最好的出路就是当程序员。即使是现在,程序员依然是普通老百姓最佳的逆袭路线。
缺点的话,正如我一开始所说的优点,现在很多人都往程序员这个行业钻,新生代的人很多,老人也吊着不走。竞争就非常的激烈。而且线上办公最近几年也越来越完善,很多程序员也开始像外国的程序员一样,跨地域的竞争,做国外的业务,行业非常卷。当然,程序员这个行业,做的时间长了,对身体确实不好。
除此之外,程序员35岁的问题,也是我们经常谈的。程序员年龄大了,开发效率、方方面面的一线生产能力也开始变差了。无非就是两种出路,如果你在公司里面人情世故处理的比较好,那你能脱离一线生产,干到管理层。但如果你在公司里面混不到管理层,那就只能和我一样,自己出来开公司,让别的程序员替我们干。
如果这两种情况都不行,那你得考虑一下自身的问题了,毕竟在现代社会,多数的财富掌握在少数人手里,人与人之间本来就是竞争关系。通常情况下,在一个公司干个几年之后,你出来,总能有几个优质的客户在自己手里。如果说,一个程序员干到35了,公司内的人际关系没有打好,公司的核心代码离了你一样能用,公司的核心业务离了你也无所谓,换个人一样能干,那你真得反思一下自身的问题了。
4、如何判断他是不是一名优秀的程序员?
我们公司如何选择我们需要的人才,首先就是要和我们的企业文化和企业价值观一致,我们公司的企业文化和价值观是,不管是对客户,还是我们内部的管理条例,都是要求大家留存证据,或要求你要有一个非常好的记忆力。要做到出现问题随时都能拿出证据来。还要求你要有逻辑能力,你得记住我跟你说了什么,然后思考完了之后按照逻辑顺序重新表述给我。
最重要的一点,你得是一个讲诚信的人。诚信缺失是咱们整个社会各个行业都存在的问题。不管是买卖双方还是雇佣者与劳动者,双方都存在的问题就是诚信缺失。
5、在淄博、北京、奥克兰工作,有何不同?
我在大厂里工作过,也在国外奥克兰工作过。 中国的工作形式,讲究的是专人专岗,要的是效率。你是写前端的,你就只需要会写前端即可。我给你图,你就开始写,写完了就给下一个环节。我要求的是你又快又好,你只要这一块儿做好就可以了。
但是,外国的程序员他们讲的是个人英雄主义,他们每个人都是全能选手,每个人都是全栈。给到我的这个部分就是全部都由我自己完成,我不需要和别人协作。他们用代码管理工具来确保整个代码是可以执行的,大家都能看到哪些地方发生了修改。
中外企业的管理方式差别很大。在中国,效率要求考核的比较严,但在奥克兰,相对而言比较轻松。我们当时在奥克兰,九点上班,既不用打卡,也没有工位,你自己拿着笔记本找个你觉得舒服的地方坐下工作就可以了,就算晚一点去也不会有人管你。在我们国家,如果你没坐在工位上工作,老板就会感觉你没有工作。而在奥克兰就算你工作一会儿就和同事去喝咖啡,也没人管你。因为这些西方资本主义国家,他们的劳动法比我们的要严苛,不管你是在喝咖啡、在走路、在思考这都算工作。
咱们这边强调交付意识,我做出来的东西只要公司能审核通过,客户能验收,我的工作就完成了,奥克兰那边更多的是一个自我的职业操守,是我自己要过内心这一关,我自己要过得去,我做出来的东西必须是一个好的。这种自我的要求是由内而外驱动的,咱们是由外而内的,就是我公司给你约定好了,今天写多少代码?我给你评审,你正常一天写5000行,你今天就写了3000行,那我得给你聊聊,你今天为什么写的慢了?我今天给你这个任务就一个星期干完。你一个星期干不完,我就要找你探讨为什么没干完。我们更注重的是一个交付结果和工作量。那边他们会考虑这个事到底有没有真的做好。
他们没有996, 5:30准时下班。不管你走不走,首先要关闭所有的显示器,你的电脑屏幕上不能显示一切看起来像你在工作的样子。你可以打开视频看视频。然后。这个时候就会有外国的同事过来问你。你怎么还不走?如果你在工作,那你惨了。他们就会排斥你,因为你在恶性竞争。我一般就是说,我们在看视频玩一会儿,因为bad traffic,路况不好,我等一会儿错峰走。我记得我刚刚去工作的时候。我下了班还在那干,其实他们也不会怎么样,就是我不认可你的行为,但我尊重你的自由,你想这样干没问题。
他那边的Boss也会赶你走,老板过来说你怎么还不走,你说你在工作,你说我这还有一点儿东西没弄完,弄完这一点儿就走。那你就惨了,因为你说你在工作,老板就得给你付加班费。如果他不给你付,他就可能会有用工风险。所以,那边的老板也会赶你回家。
6、为什么他们没有996,依然能创造出那么多优秀的产品? 首先这个问题你说的是美国,不是新西兰,新西兰做出来的软件也很土,甚至不如咱们国内。美国他为什么能做出优秀的产品,首先,他把全世界的精英都汇集到他那里,每个领域最顶尖的人才,都被他弄去了。再者,所有的技术迭代都是在他那边。那些早期的源码,包括现在最新的一些理念和框架,他们形成的氛围,持续在那里不断地积累与沉淀,并且他们能用这个持续变现获得投资。
但是在中国行不通,因为我们中国要结果。你给我做个外卖系统,我现在就拿系统去赚钱。我们中国要的是一个能立马赚钱的东西。 7、如何看待编程语言的发展趋势? 不同的编程语言是应用在不同的使用场景中的。每一种语言的发明是因为有一个高频率出现的使用场景,其他的语言不能很好的去解决。这些先贤们,顶尖的精英们,他们封装一个全新的方法,全新的语言来解决特殊使用场景下的问题。
Python出来也很多年了,现在越来越完善,竞争力越来越强。我们公司技术站是PhP。发展趋势我们要去看,语言不分好坏。分的是在哪种情景下更适合。我们程序员一定要有一个自己所擅长的语言,能够解决自己的使用场景中遇到的问题。
C语言属于是那种非常底层的语言了,但他肯定会永远有市场。因为越高级的语言,运行效率越低。比如Java、PhP,它都是C语言封装出来的。我给你封装好了,你不需要再去写前面那么多复杂的东西。定义变量、中间件,你直接拿来用就可以了。越高级,它的开发效率会越高,它的硬件性能就会越低。一些比较要求性能的一些产品,比如说咱们玩一些大型的游戏,或者是说一些算法,包括自动驾驶的算法,这些东西,他都用C语言、C++去来实现。
有很多场景,比如说我们现在所遇到的比较多的需求。企业的流程管理、订单系统、商城。多数情况下,我们就是要快,又便宜又好又快。能给客户实现需求就可以了?现在中国的程序员,咱们还是要务实一点,先把自己的一亩三分地干好,挣上自己的钱?趋势潮流的东西我们了解就可以了。
8、是否用过AI辅助编码工具?它对程序员的影响有哪些?
这个就比较绝密了,我们现在开发项目,百分之七八十可能都依赖AI,但是我们不会和客户说,这就是外行和内行的区别。很多客户感觉说你用AI去写,就等于是我们给它描述好功能,我们就坐这里等它自己写完。其实不是这样的,整个的架构逻辑还是得由我们人去管理,精确到每一个方法的时候,我让AI去写这一个方法,比如说,一个登录的功能,怎么登录,首先要输入账号密码,然后还得确认用户条款。账号有一个判断条件,密码还有判断条件,账号得多少位,密码得多少位。如果你去手写,非常费劲。如果让AI去写,我只要把判断条件、验证条件写的完善一点,它可以帮你写出来,而且有百分之六七十是对的,极具参考性。
最后你还是得从里面自己复制粘贴,你的工作还是得依赖程序员。就是说你用AI去写的前提,其实还是得你自己会,就是你的脑海里要知道你要什么。例如,我要让他选择这个ID去执行一个什么事儿,我打字告诉他,再加上一些条件。这个过程其实还是你自己在写,所以说用AI辅助的前提条件还是你自己得会,如果你连它的方法是如何实现的都描述不出来,那AI也同样写不出来。
9、如果不做程序员,你会做什么职业?
一直以来,我都是一个目标感很强的人。上学的时候,我就想玩电脑,天天玩电脑,玩游戏,考大学就考了一个计算机专业。参加工作也要玩游戏,我整个职业生涯的规划,就是要玩游戏。但是你上班的话,根本就没有时间玩儿,你只是守着电脑,那不是你想玩儿就能打开玩儿的,你得工作。
现在自己干了,你当然可以随便玩了,只要你能对结果负责,能开出工资来就行,现在我更多的工作形式是企业管理。也会尝试去找找别的项目,今年换过好几次赛道,都没有成功,现在放弃了,后来也和大家交流,你连自己的专业领域、你的赛道都卷不过别人,你还换赛道,你凭啥换?你怎么卷,怎么和人竞争?
我们淄博是个生活节奏很慢的城市,工资也不算很高。但就生活而言,现在的生活可以说是我心目中比较理想的生活。
10、最近的感悟或者未来的期待?
这两三年最大的感悟,现在咱们中国经济形势不好,一个最大的原因就是诚信道德的缺失。现在你和客户沟通,一定要留存证据,打字还有开会都得录音,录像,录屏。我们是本本分分做企业、做生意、做软件,我们能保证的是我们不会违约、不会骗人。
但是,现在这个行情市场,有的客户你有证据,他都胡搅蛮缠,强词夺理。 去年有个客户,他从我这边做了两期。第一期做了一个小程序,第二期的架构比较大,当时合同什么的都签了。他付了一个定金。但是签了之后,客户那边单方面的有问题。他就不想做了,想退单。但是。我们所有的沟通合同都录屏留存证据了。你退单可以,但是你给我的订金,我就不能退给你了,因为我和你梳理需求、签合同、对接需求、梳理文档,我已经用了很多的时间,合同里都有,都很明白,这就是留存证据的好处。如果你不留存证据,没有协议,到了后面你怎么弄?