分类 思考控 下的文章

程序 – 程序员的avatar

程序是什么?

大师们曾给过这样的诠释:
   
    程序 = 数据 + 指令
    程序 = 数据结构 + 算法

对此我也表示十分认同。但感觉这些观点更多是从机器运行模型或逻辑抽象的角度看待程序的,是左脑的产物。我的右脑告诉我:程序是程序员的avatar(化身)。这个隐喻式的诠释会让“程序”更有温度,并有些许人性的色彩。

计算机(CPU、主板、内存、磁盘、网络)为程序提供了一个拥有有限资源的的电子世界。在这个电子世界中,生存着不同程序员的avatar,他们 可能彼此相知,也可能从未谋面,他们各负其责,辛勤的工作着,为的是让这个电子世界运行的更加高效、稳定和长久。在这个电子世界里,avatar 也有角色与轻重之分:有负责资源调度的总管 – OS kernel avatar,也有专门从事某种服务的service avatar,当然数量最多的还属各种application avatar。和人类世界一样,有正义的avatar,也有“邪恶”的avatar,入侵者avatar(病毒、木马)和保护者avatar(杀毒软件、 防火墙)进行着旷日持久的“战争”。

这些avatar的背后其实是数以千万计的程序员们。与其说程序员在考虑程序的设计和实现,不如说他们在考虑其avatar的设计和实现,是他们 设计并实现了这些avatar。思维一旦转变,很多事情将发生变化。当我们认同的这种说法时,摆在我们面前的问题就从如何设计一个优秀的程序,变 成了如何给自己设计一个avatar了。这种认知上的改变首先会给你带来不一样的动力和热情。抱着30斤石头站30分钟和抱着自己30斤重的孩子 站30分钟,整个过程的感受是截然不同的。同样,与设计和实现冰冷的程序相比,给自己设计avatar显然更能提升程序员的动力和热情。想象一下 自己的avatar在电子世界扮演的重要角色吧!你的avatar应该长成什么样子,具备什么样的能力,如何与其他avatar交流等等。

此外,你的avatar不止一份。你编写出了代码,这些代码被放在N个主机上启动,你的avatar就会有N个实例。这就好比程序只有一个,而从 该程序启动的进程可以有很多。你的avatar好似被复制了若干份,运行在不同的电子世界中,做着相同的工作。与电影《阿凡达》中的魁梧高大可视 的avatar不同,你的avatar不那么形象,看不到,摸不着,仅存在于你的想象当中。或者更像是《黑客帝国》中的概念,世界是程序与程序间 的交互,是程序员们avatar之间的交互所构成的,是程序员灵魂、意识的存在与延续。

你肯定不希望你的avatar是一只青蛙,因此我们在设计我们的avatar时是有考量的。

【构成】

    * 骨骼硬朗精奇
       即程序代码脉络清晰,结构健壮。

    * 外表清新雅致
       即程序代码风格优美,维护性好。

【行为】
    考虑到电子世界是一个资源有限的世界,且其中存在各种陷阱以及恶意的avatar,我们的avatar应该具备以下行为特征:

    * 正确地做事
       avatar应该将份内的事情做好做正确,这是对avatar最基本的行为要求。

    * 自我保护能力
       在电子世界中充满风险,avatar应该对其收到的来自其他avatar的信息进行识别和校验,对于非法和恶意的输入予以拒绝和抛弃。对于来自OS kernel avatar反馈的任意异常信息都能予以正确的应对和处理。

    * 不作恶
       在电子世界里,也要遵循电子世界的规矩:不贪婪(肆意占用内存和CPU)、不制造混乱(恶意删除文件数据等)、留在在自己的地盘内,不乱跑乱窜(尝试突破访问权限)、不乱扔垃圾(不及时清理自己创建的文件等)等。

    * 工作有效率
       在不贪婪的前提下,avatar利用有限资源更高效的工作,应形成更多的产出。

一旦程序员站在设计avatar的高度去设计程序,就会将自己的思维融入程序,做到“见avatar如见程序员其人”。在程序设计过程中,考虑到人性的特质,至少不会那么冰冷,不是吗^_^

站在更高的平台上

中秋休假期间,在PPS上看了最新一集的龙珠Z剧场版“龙珠Z:神与神”。《七龙珠》是我最喜欢的一部日本漫画,年少时曾为之疯狂过。其对应的动画片《龙珠》以及《龙珠Z》我也是集集不落的,这部“龙珠Z:神与神”延续了龙珠Z的精彩。

片中主人公孙悟空与破坏神比鲁斯有过两次交手。第一次在界王星上,变身为超级塞亚人3的孙悟空被破坏神几乎“秒杀”;第二次是为了保护地球,孙悟空在悟饭、悟天、贝吉塔、特兰克斯的帮助下变身为超级塞亚人之神,这才有了与破坏神周旋的战力。由于超级塞亚人之神的变身时间有限,在经过激烈的战斗后,孙悟空变回了普通的塞亚人。不过同样是塞亚人,战斗前后的悟空却大不一样:变回普通塞亚人的悟空在关键时刻,在不借助其他塞亚人帮助的情况下,可凭借一己之力变身为超级塞亚人之神,并继续拥有与破坏神分庭抗礼的战力。按照片中破坏神战后的分析:“因为拥有天才格斗感的悟空体验到了作为超级赛亚人之神的世界,所以将其吸收融入了身体”。也就是说孙悟空已经感受到了神的境界,这是孙悟空之前无论通过多长时间,多么严酷的训练都无法达到的境界。而一旦让悟空感受到了这个境界,他的战力就会迅速提高到这个境界。

这个片子给我的启示是:站在更高的平台上!这里的平台是个泛指的概念,它可以具象为某个组织,某个团队,某个牛人,也可以是某个环境,某个国家,某种社会甚至是上面说的某种境界等。平台间存在能力差异,有些时候这种差异甚至是巨大的,无法弥补的。平台内个体能力的提升是有限度的,最终总是会碰到平台的“天花板”的。这时如果不跳到一个更高到平台的话,个体能力的提升将是甚是缓慢的甚至是原地不动的。

我们来看两个典型的例子:

【足球圈子里的“平台”】
按区域来看,世界公认的最高平台是欧洲足球,其次是南美,之后是非洲、中北美和亚洲。欧洲足球细分后,也可以划分为若干“平台”:最低的是非五大联赛,然后是五大联赛,五大联赛中也有豪门以及顶级豪门等平台可分。中超也是一个平台,一些有潜质的年轻球员在中超进步很快,很快成为中超顶级球员,但若继续留在中超这个平台,那么他的能力将再也无法得到大幅的提升,毕竟咱中超这个平台能力很洼。这时我们可以看到很多球员开始谋求留洋,走向一个更高的平台,以继续提升足球水平。在欧洲这个足球发达的地区,也是如此。很多在非五大联赛踢球的优秀球员向五大联赛流动,顶尖球员向豪门流动,都符合这个道理。

【科学家圈子里的“平台”】
为什么留在欧美做若干年研究后就可以步入某个领域顶尖科学家行列,而同样水平的人在国内混迹几年后就变得碌碌无为了呢,这就是平台的作用。我们看到有越来越多的华人面孔在所在领域成为领军人物,但前提是这些人绝大多数是在欧美顶尖高校或实验室内学习和工作,在这种顶级的平台上,他们拉大了与其他平台上同行的能力差距,取得了顶级成果;而在国内平台上的那些选手,他们很难突破平台的“天花板”,又无法跳到更高的平台,虽然在国内依旧是一流选手,但与世界顶级学者相比,差距也许在逐渐拉大。

俗话说:“与臭棋娄子下棋,越下越臭”。反之,与高手对决,越战越强,哪怕是偶尔输掉。七龙珠中的孙悟空就是在经历了与比克、贝吉塔、弗利萨、沙鲁、布欧等高手的对决后,才变成最强者的。而如果让梅西到中超联赛混迹几年,估计也会变得平庸无为了。要勇于登上更高的平台,与高手共舞,至少我们要始终具有这种意识。

程序员是一个苦逼的职业,技术变化日新月异,程序员要学的东西很多。职业的特殊性要求我们快速学习,快速进步,变得更强,才能脱颖而出。我们欣喜地看到越来越多优秀的程序员为自己喜欢的事情努力着,提升自己的能力。他们进步很快,但一段时间后,就碰到了天花板。无论如何努力,始终无法取得实质性的进步。这时候要想获得突破,就不得不更换更高的平台了。

不过也有例外,那就是当你变成所在平台的主导者时,你是有机会提升整个平台的能力水准的,在这个过程中你的能力也随着平台的提升而提升,你可能成为唯一能力超越这个平台但仍属于这个平台的人。这样的人已经突破了一些思维和眼界的限制,并且很有奉献精神,自驱力超强,能力突出。这样的人就是所谓的领军人物,是不可多得的人才。

如果你不是领军人物,又没有认识到或没有勇气站到更高的平台上去,那么你可要小心了。你的工作热情会被时间打磨殆尽,你的能力会止步不前,你始终在重复着以前的工作,你的知识、技能和经验不再有新鲜感,你对自己不再拥有自信,你会逐渐失去工作的方向感,你开始在能力之外寻找安全感,你的竞争力在逐渐流失。

我的身边不乏成功切换平台的好例子,郑大大就是一个让我顶礼膜拜的典型,他的这篇“打开视野”也或多或少反映了他当初的心路历程。

没有最高,只有更高。让自己始终保有站上更高平台上的意识、选择平台以及被更高平台选择的能力吧!以此和大家共勉!

我的工作原则2

自我认知是循序渐进的,体会到了,就想将其整理出来,给自己一个交代。
                                                                            - Tony Bai

关于我的工作原则,感觉之前的那篇总结的还不够,这两天通过观察自己的所言所行,又有了些思绪,这里记录下来。

* 重塑标准

简单来说就是根据组织实际情况,重新建立各种标准 – 技术标准、人员标准和产品标准。 个人认为这恰是一种实事求是的积极态度。避免陷入技术泥潭中无法自拔,不用Google的人才和做事标准来要求组织内部的人和招聘新人上,认识到存在的差 距。恰如当年钱学森根据国内人力、物力以及实际技术水准重新制定了标准,而不是照搬美国的标准,否则造导弹就会变成一个不可能完成的任务,对团队 士气也将会是一个极大的打击。

* 问题理解要透彻

很多时候,干完了才知道白干了,这往往缘于起初对问题理解的不够透彻,没有抓住焦点,导致Solution不是最合适的,引发不必要的返工。但很 多问题往往无法一次性透彻地理解,这就需要在工作方法上有所调整,以尽可能少的工作消耗去理解和摸索,对工作内容进行阶段性的反思和重构。这样在 1.0, 2.0以及3.0等后续版本的演进过程中,你会发现问题将变得逐渐清晰,焦点也会越来越清楚。而一旦问题被看透,最正确的Solution自然就会在大脑 中形成。

* “眼见为实”还不够

俗语讲:眼见为实。但在工作中,有些时候“眼见为实”还不够,因为很多时候眼中看到的是假象,这在调试和查找技术问题时显得尤为突出。无数次的问 题调查告诉我:始终要保持头脑清醒和逻辑清晰,不能人云亦云,不能轻易相信亲眼所见的“事实”。要追求逻辑的全局合理性,一丝的不 合理都要刨根问底,不遗漏任何蛛丝马迹。

* 把事情做在前面

推进知识管理为例,在发布知识库之前就应该把发布后可能遇到的各种问题、阻碍想清楚,提前就这些可能的问题给出方法、答案的指导或以Q&A的形 式与知识库一并发布。这些要做在前面的事情包括几类:解放思想的(帮助大家突破原有思维禁锢)、最佳实践的(告知以何种方式去做收到的效果最好)、基本知 识技巧普及的(以大家最易接受的方式对基本知识技巧做出诠释)、服务运维的(还以知识库为例,发布后,你要始终保证其运行稳定可靠,不能让其他人操心于此 事)等。 




这里是Tony Bai的个人Blog,欢迎访问、订阅和留言!订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:


以太币:


如果您喜欢通过微信App浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:



本站Powered by Digital Ocean VPS。

选择Digital Ocean VPS主机,即可获得10美元现金充值,可免费使用两个月哟!

著名主机提供商Linode 10$优惠码:linode10,在这里注册即可免费获得。

阿里云推荐码:1WFZ0V立享9折!

View Tony Bai's profile on LinkedIn


文章

评论

  • 正在加载...

分类

标签

归档











更多