不知道从什么时候开始,程序员群体内有这么一种说法:“一等的程序员会算法,二等的程序员搞架构,三等的程序员写业务!”,甚至有些不知道是不是写算法的程序员直接就说:“不会写算法的程序员就不是程序员,最多只能叫‘码农’”!
相信看到这里,很多和我一样不会算法的程序员都哭笑不得,但是遇到这种情况,我一般都会直接跟他们说:“对对对,你说的都对!”。
程序员的定义
程序员是干嘛的?狭义的程序员指得就是从事代码编写的技术人员,也就是我们大家认为的程序员。而广义的程序员其实还包含程序的设计者、程序测试员,甚至从某种角度上,一个软件的项目组的任何人,在广义上都应该被定义为程序员!
这就跟工厂里的普工和技工是一个道理,本质上都属于“工”,工人的“工”!普工或许不会技术,但是也能依靠现有技术框架去工作!您要说他不是“工”,那是什么?
当然了,这是我眼光比较狭隘的理解,不认同的可以提出来,我们可以探讨一番!
第一次被歧视
我在刚毕业的时候,就遇到了一次比较难堪的经历,那时候我在一家游戏公司上班,负责写游戏脚本。那时候的我,比较有想法,经常给我们游戏底层框架的研发人员提意见,因此也得罪了一些比较怕麻烦的同事,觉得我没事找事。
在我们研发部,有一个年龄比较大的系统底层研发同事,就想要给我难堪,专门跑到我的工位上,然后说要出个题目考考我。
那时候也比较年轻气盛,于是就让他出题。
因为我们游戏框架的寻路算法执行起来有点慢,就是当游戏地图比较复杂的时候,点击地图上的某个点,算法会执行很长一段时间才能给出结果。于是,他就就着这个问题,问我有没有什么解决办法!
我一听涉及到算法,虽然心里已经知道自己没有能力,但是还是想要试试。但是,结果很明显,以我当时的能力,我查遍了所有资料都没有完成。
而最后的结果就是,那个研发同事阴阳怪气地跟我说:“小伙子,程序员不是那么好当的,有时间多研究研究算法!”。
言下之意,不知道研究算法的程序员,是很丢人的!
因此,受到打击的我,感觉自己在研发部抬不起头来!直到我的研发组长跟我说了一句话,才点醒了我!
释怀
我当时的研发组长其实也不会算法,但是他跟我说:“程序员分两种,一种是别人叫他做什么他就做什么,虽然技术很好,但是实际上只是一个工具人而已。另外一种是除了编程,还能输出自己想法的人,将自己的想法输出到项目的各个层面里去。每个人的追求是不一样的,你是想当一个踏实的工具人,还是想当一个有想法的人?”。
后来我就想明白了,程序员的工作内容不仅仅只有编码,还有其他的内涵在里面!但是,当我真正成为那样的人之前,我应该不拘泥于小节!
因此,在未来很长一段时间,我基本上对于会不会算法也不太纠结了。并且,我从业至今,也没有遇到过几次因为不会算法而卡脖子让代码写不下去的情况!大多数的代码场景其实都用不到算法!
什么是算法?
但是,我是真不会算法吗?显然不是的,加减乘除算不算算法?肯定也算!但是,这只是狭义的算法。狭义的算法其实是一门科学,比如如何在一张图片里面抠出人像。广义的算法,应该是包含一些代码的处理和优化逻辑。比如说一段代码,使用A方式去写,执行速度是1秒,使用B方式去写,只需要0.5秒,显然,B方式的代码执行效率更高!这种为了提高代码执行速度而优化的代码,其实从编程的角度上来说,也是算法的一种。
狭义的算法,是需要前置知识支撑的,比如说图形处理知识,没有相关知识即使您是个算数大牛,相信您也搞不定!而广义的算法是需要时间积累的,只有代码写得多了,才会知道怎么写,代码运行效率最高!
狭义的算法一般都会专门设岗,普通程序员根本接触不到核心,因此,大多数人只能在很长一段时间去写业务代码,偶尔碰到需要用到专业算法的,也只能查资料!也许有的程序员一生都只在写业务代码!只能待在普通公司的普通岗位!
不要拘泥于算法
但是,让一个程序员能够专注业务,其实也是代码框架决定的。现在的程序员不像十几二十年前的程序员那样,写什么东西都需要自己“造轮子”。基本上只要您想得到的业务方案,代码框架基本上都为程序员准备好了,自己造轮子也属实有点不经济。
所以,很多人即使想要去成为一个懂算法的程序员,目前的条件获取也已经不允许了。除非像现在很多公司都有算法工程师,那是一个专心研究算法的工作岗位!
因此,到最后,算法反而被单独摘了出去!算法都专门设岗了,专业的人做专业的事情,一些程序员还在固守过去的思维,那也只能由他们去了!
结语
所以,当下次您再听到有人说:“不会算法的程序员不能叫程序员!”的时候,我建议您不要和他计较!
因为,当一个人坚持他自己的想法的时候,您说的一切话都是没有说服力的,对方甚至可以从各个角度来逐一瓦解您说的话,并且,可能您自己都会觉得很有道理,无法反驳。
但是,有道理的话就是真理吗?大多数情况下是的,但是从“杠精”嘴里说出来的话,一般都是有道理的和没道理的混在一起,因此您很难跟他说出个所以然来!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.