前天晚上,老婆和我偎在床上说悄悄话,大致的意思是所有她的同学都有房子了,有些还当上了管理人员,并带着少许调侃说我以后也就这样了,1年10多万,失业就会掉头发。
我今年28,一个C++/Java程序员,跟大多数人一样,天资平平,虽然爱学习,但没有上一个好大学,工作这么几年也没有混上一个管理人员,有时候在自己看来,稍稍有些可悲。因为官本位的残留+农耕文化,在中国搞技术历来就是一个吃力不讨好的事情。搞技术意味着被人管,薪酬低,上升通道窄,所以好多技术人员包括优秀的总是希望能在一段时间以后转型,可是管理也是一门学问,控制社会关系不一定比控制计算机简单,所以彷徨且不时有受挫感。我也一样,有时候一个人看书的人总会想自己的理想到底是什么?什么才会让我觉得自己有存在价值?思来想去,我还是觉得自己是一个比较典型的程序员,喜欢写程序,喜欢调试,喜欢帮助别人,这些都能带给我快乐。既然认定了这条路线,就坚定地走下去,但只是想做技术人员还不够。
我有过一位法国同事,技术人员40来岁,做测试写文档,放在中国来说是典型的失败。有次看了他写的详细测试报告,我不敢相信Excel能做出这么NB的东西出来,在我的赞扬之下他脸上荡漾着满足感。听他说自己做了十多年技术人员,觉得自己挺适合干这个,非常坦然,我有一种朴素的感动。这根我看到国内程序员普遍焦虑不一样(当然有社会保障因素),那就是专注于自己喜欢的,一直干下去。在兴趣和严格要求自己产出物的导引下,一个你认为不起眼的小事情也会让人感觉莫大的惊喜。岁月会让我们老去,但兴趣,专业的心态不会。我更希望在帮传代的过程中,用朴素的,职业的技术情节影响新生代程序员,推动行业的整体进步。
你到底想干什么?这是一个问题。我看到好多人工作几年后还在今天groovy, 明天ruby,后天uml,然后是struts2,反正什么火跟什么。一天一天宝贵的时间再流逝,人也越来越焦虑,我不知道他们到底想要干什么,因为普通人是很难同时干好几件事情的。或许他们认为这些新鲜简单,学学就会,但我认为,不专业是技术人员***的敌人。很久前我面试过一个开发人员,据说对struts非常精通,我就问 说说你怎么将jbpm集成到struts里面去,然后支支吾吾一大堆,貌似200+k的struts源代码都没有读过(我试验过,扩展webActionContext, 引用jbpmcontext,增加线程保护,扩展struts bean映射jbpm var)。就如同学groovy,但不知道它是通过什么样的语法翻译出来的(parser generator);学ruby,不知怎样用C增加系统关联性,总在技术的外围打转,这样下去,焦虑就是一种必然了。我的想法就是抓住一种最感兴趣的,把它搞透,不要害怕哪一天这个技术被淘汰了,计算机越往下关联越大,周期越长。即使有时候因为工作的性质让我们在外围打转,我们也应该在兴趣点上持续深入,专业一点,更专业一点,即可以探奇得到满足感,也可以让你时时充满竞争力,说不定哪天就用上了。
计算机的基础是编译+操作系统+数学,比如写一个高效的多线程程序,写一个调试器,写一个脚本语言。基础的基础是数学,所以要想专业必须趁年轻能看进去书的时候打好数学基础,即使不通透,也要知道概念。就拿我做的DSL的graphical editing来说,就包含解析几何、线形代数、立体几何、微积分、图论(离散数学)等学科,这还不包括DSL的Run/Debugger/Debuggee,Text Editing等。如果你做的工作感觉不到数学的存在,那很危险:)。曾经有人说“计算机是数学的艺术”,一点不假。
但总是有些笨人比如我,小老头了还在看数值计算,概率等数学书,看到ms, google的requirements都不敢投简历,但没关系,只要能够按照自己定的目标逐步靠近,不断学习,不断挑战自我,肯定会有收获,无论物质上还是心理上。即使最终没有在IT史留下名字的一撇,人生也没有白活,因为我在自己站着的土地上认真地来过。
爱就努力的去做吧,愿每个程序员都能有坚强的信念和一片属于自己的天空!
【编辑推荐】