2010年即将过去,我及我的手下也总算即将完成一个大型项目,回归天朝.
回去以后,肯定不如现在有那么多时间逛这个论坛了,因此和大家说声暂别.以后也许偶尔会上来看看,但解释回答就主要靠开勇等热心人了.呵呵.
明年我即将从业20年了,对在这个论坛上的大多数人,可以算是一个"老人"了吧.借此机会,和大家聊聊自己"程序员生涯"的感受.
1)程序员由于长时间和机器打交道,公认的社会经验不足.呵呵.常常有的一个感觉就是"怀才不遇".感觉明明自己有一身的"本事",但得不到重用,收入也不能出人头地,前途暗淡.其实,在这个社会中,不管你在哪里高就,只要是打工的,基本上有个1/5准则.即,你的收入(含税和四金)是你直接创造财富的1/5左右.当然,具体到个人,会有高有低,但平均而言,都差不多如此吧.对公司而言,员工有能耐当然是好事,但如果不能为公司带来利益,那还是等于零.由此,当我们在抱怨之前,应该先看看我们创造了多少,老板不会为我们的能力发工资,只会在我们创造的利益中分给我们一份(以工资的形式).
对软件公司等以人力为主的公司而言,一个员工对公司的价值(也就是在公司中的位置/层次),还有一个很重要的准则是替换准则.如果你的工作只有你才能做到,那你为公司所创造的价值是"跟着你走"的.如果,这个价值较大的话,自然,你在公司中会显得相当重要.当然,待遇什么的也应该会因此跟上.甚至,其他在你"领导"下,"帮助"你完成任务的其他员工,他们所创造的价值中也有你的一份.反之,就算你的工作对公司很重要,但如果公司内/外能很"容易"找到替代你的人手的话,你所创造的价值对公司而言就要打一定的折扣了.呵呵.在这里,"稀缺性"比能力更重要.
2)程序员还有一个"通病"就是不轻易"服人",包括我这个老程序员也是如此,总容易认为自己的方法是最佳的.这其实是程序员们的一个致命伤.目前的程序系统越来越复杂,越大型.一个实用的系统往往要几十个人,甚至几百人同时开发.如果事事"老子第一"的话,就算总是是对的,又有几个人会真心和这样的人一起齐心协力?(换个位置,如果你在工作中遇到的是这样的人,又会有何看法?呵呵).何况,搞过大系统的应该知道,"条条大道通罗马".很多时候,全局的最优解,在局部仅仅是次优解而已.我们可以在工作坚持自己的意见,但要尊重他人的见解.这在那里都是成功基本要件之一.
3)在我的学生时代,父母教育我的是"学好数理化,走遍天下都不怕".一个人不论在什么环境中,自己提高是基础的基础.别人给的方法,别人的帮助到底是别人的.只有自己的知识,才是任何人拿不走的.任何成功,首先需要的是自己的努力.自己提高了,才能提升自己的"不可替代性"(当然,这个提高要在工作中体现出来).自己提高了,才能领导/帮助别人,得到他人的尊重和合作(当然,也别忘了倾听).
上面是一个老程序员的一些感触.虽然各人的道路各不相同,希望对大家能有所提示.呵呵.
下面换个技术方面的话题,就密码学和大家说说自己的两点认识:
1)搞RSA和ECC的同仁们,个人认为对这两个算法了解了解就可以了.不值得花费太多的精力在这上面或相关的研究上面,没前途的.理由只有一个,而且是很朴素的理由.就是这两个算法都是建立在没人解出的"疑似困难"问题之上的,并没有扎实的数学基础.要注意一点,目前没人解出不等于没有解法.就像沙雕展中的沙雕,虽然通过各种手段"加固"过了,但毕竟还是沙子做的.呵呵.
2)有些同仁热心于"暴力破解",这也是走了"歧途",密码破解的王道是数学分析,是找算法的漏洞.
祝大家
新年快乐!
老程序员
2010/12/30