IT行业常谈的优雅

时间:2023-03-09 09:36:59
IT行业常谈的优雅

起因

前几天在群里和以前一起在成都培训的同学谈论到了求职, 有一位朋友说他在某家外包公司试用失败了, 然后我说了句:不要去外包公司、即使工资高一点。 其实说的时候也没考虑到他本人的处境, 毕竟还房贷资金是很紧张的, 而后有位同学说:是呀,我也就一万多点, 可我并不快乐云云, 可怜我这个正在吃低保的人无法反驳, 只能打出一句:怎么说呢,故作高深却也没想出一个说法出来, 今日做房屋大扫除的时候突然想到了我久违的理由。

以下的观点仅是个人所偏见, 思想杂序无章, 经不起个把推敲, 若有冒犯还请海量。

优雅是什么?

这段时间我们公司来了一个程序员, 他上一家公司做外包的, 和我并不在同一个部门, 有天下班他还在写代码顺便我就在一边看了一下, 哎, 代码风格之乱,修修补补式编程,我觉得不要说优雅二字了, 可以论其恶心二字。

何为优雅? 不少社区都有过文章说过优雅的程序员, sublime是优雅的云云内容, 但很少有人谈及:如果没有优雅可言, 我们程序员本人又会出现什么问题呢? 工资还不是照拿, 毕竟钱才是硬道理。 我觉得论没有优雅的坏处需要从计算机本意谈起, 这是个很大的话题, 笔者目前学艺尚浅, 举不出很多高级的例子, 各位仁者见仁、智者见智吧。

那么计算机的本意又是如何的? 此处的本意可以说本质、本体等, 也就是产生计算机时是为了什么? 答: 方便。 最初的计算机产生是为了计算方便, 人类总是朝着更先进的地方前进, 先进会使人节约时间, 这是人类支持人类进步的一种力量, 说回计算机, 其实这种“方便”的理念即为我们所说的优雅, 这是计算机存在的唯一目的(以下优雅=方便含义), 读者可看当今的最新技术有哪一个不是为了实现优雅? 如今的云计算、AI、VR, 以前产生的汇编语言、B语言、C语言、C++语言等等实现不就是为了优雅吗? 试问如果还是0011或者mov ax, 1100H来进行每一种程序的编写, 你觉得会怎样? 暂且不论计算机改变现实中的优雅, 且论程序方面的优雅。

没有优雅的后果

我们总是要和人共同工作的, 所以团队的协作极其重要,重要到一个团队协作方案可比千金, 当然这是大公司。  但即使是小公司, 团队协作不好,可说为不优雅, 协作得好, 可谓优雅二字, 不优雅也就是不方便, 不方便就会浪费时间, 当这种不方便是一个体系造成时,体系内人数越多, 那么这个浪费的时间也就很可观了, 所以会产生架构师、CTO等等职业, 他们需要对实际业务和团队协作做一个平衡点, 平衡天平偏向任何一方都会让其不优雅。

那么没有优雅会怎样呢? 且看假如: 如果你们不用项目管理软件, 单论多人协作写功能时的不便, 恐怕就可以让几个程序员猝死, 举一反三,假如到版本发布、生产环境、BUG修复以及一些自动化设施搭建等等, 估计下要猝死多少人呢? 而且行之大多为繁琐性的, 日复一日、年复一年, 恐怕需要将办公环境迁到医院附近, 以便于抢救。 我们再来想想上面说的新技术的产生原因: 为了优雅。 且论如果你不懂得优雅, 又该以怎样的途径来学习新技术?

体系和优雅的关系

那么这和外包公司有何联系? 笔者最近常看历史书, 每当里面谈论到历史关键点时, 书中总会提一句: 形势强于人嘛。 这句话所代表的是总结性的经验, 且看清朝李鸿章外交以夷制夷手段何其高明, 却也敌不过形势, 最终间接被俄国外交者逼死在床, 所以历史家们谈及某关键性事件时总需要思考形势, 不然无法理解其所作所为。 据我所知(见识少,且海涵), 如今国内的外包公司基本都是追求最快速度, 只要能按时完工, 那么公司基本是不会为难你的, 其实体系也就相当于形势, 在一个坏体系里你是不太可能咸鱼翻身的, 大多数外包的情况且不是翻不翻身的问题, 而是你会不会被其体系吞噬个人思想,最后无它法只能转型。  不论其优雅单说学习新的技术, 新技术好比一颗需要上在适合业务的螺丝钉, 而业务是由公司产生的, 所以公司达不到业务亦没有其需求, 这个技术对你而言是何其鸡肋, 最后懵懂其构造弃之。当然体系的重要性远比我写的多得多, 这里可拿古人对科举制度状元等形成的重要因素评价比喻:1. 运气.。2. 命运 。3. 祖宗墓葬风水的影响 。4. 善行。5. 学习。

外包体系的局限性

如今的外包有多少是有一个良好的体系的? 当然做独立产品的公司也是坑遍地, 不过论其数量我想应该是不及外包的, 其危害性我只能打一个比方论其一方面之利害: 笔者在最近维护公司产品时深感前端代码之杂序无章, 所以自主构建了一套前端的MVC应用(技术不强、轻喷)。 处在外包公司的大多数人会不会想到不需要人督促来修整行为呢? 答:几乎不会。 这是体系造成的, 外包*只需要快速完成最后的交付工作, money到手就可不用大管了, 这里快速并不代表是有多么高效, 基本只有“效”无其“高”, 最终这种追求效率且不追求质量的行为久而久之是会影响你自己对于产品等等的理解。 我有幸进入了一家麻雀虽小却五脏俱全的公司, 可以说在这家公司我学到的最重要知识便是:认真对待你目前敲的这行代码。  这个思想很重要, 这是让我们构建自己的优雅基础部分, 其次还需要标准化等等, 我们部分的老大是位对其产品为自己孩子的人, 虽然这种理念看上去有点鸡汤, 但这对于程序员来说基本是有益无害的, 这也是你成为对产品有处理权(高升)的一个重要部分, 不然我觉得去code review时看见别人的代码就会不自主的想略过, 也就是其严谨。

为什么需要优雅以及组成优雅的必要条件

想形成优雅, 需要的主观方面有很多, 不论是严谨、自我驱动等都不可少, 这些东西基本是外包无法让其形成的, 而优雅是在想脱离程序员初级层次以及以后每时每刻都是必需品, 可说目前外包大多数的体系都是违反计算机潮流的, 为了远见及深入、 难有入其外包之理。 说一个小例子, 某日有人面试了位两三年工作经验的程序员, 谈其mysql等数据库只停留在基本crud层次, 对mvc设计理念停留在model、controller、view几个文件方面, 虽然这些东西已是基础不能再过于基础。

该怎么办?

每人学习的方式都不一样, 简要总结就是: 多思考、多行动、少撕逼。 精华总结便是黑哥的:整就牛。

最后

再多说一句,在不那么急需钱时不应该想着类似“十五年赶英超美”的想法, 虽然作为穷人基本每人都想在最有野心的时候拥有一切, 欲速则不达, 这句口号其实也是个笑话, 背后的机制让人恶心, 有兴趣可以在《晚清七十年 ---远洋版》一书中找到原因。