程序员的成长之路,没有捷径可走,只有坚持不懈的执着追求,才能成为一名优秀的程序员。执着诚然可贵,但如果不能经常自省,则有可能会陷入固执的境地。
1.程序员需要一点执着精神
《士兵突击》中许三多有一句名言:“不抛弃、不放弃”,这是一种可贵的执着精神。正是靠着这种不抛弃、不放弃的执着追求,许三多从一个普通的小兵,成长为团部的精英。在现实生活中也是这样,可以说大凡取得一定成就的人,在工作中都是一个执着的人。
对程序员则言,执着精神尤为可贵。在编程过程中,我们难免会碰到各种问题,如果没有一点执着精神,一碰到问题就抱怨、回避,怎么可能取得技术上的突破呢?又怎么能体会到解决问题的快感呢?
回想起我刚入门学习GIS(地理信息系统)编程时,经理就给我安排了一个之前让不少人望而却步的难题,用MapObjects实现地图符号化,要求具有自定义符号库的功能。以我当时的经验,根本不知道从何下手,但也只能硬着头皮上。首先我把MapObjects的帮助文件全部仔仔细细看了一遍后,找到一个CustomDraw接口。但是只是一个接口而已,离完整的符号化功能还相差很远。怎样利用这个接口呢?当时网络还很落后,网上的编程资料更少,关于MapObjects的中文开发资料则几乎没有,于是我又通过蜗牛速度的网络,查阅国外的相关英文资料,在片言只语中寻求灵感。那一段时间我无论是吃饭、睡觉,还是走了路上,无时无刻不在思考技术上的问题,由于坚持不懈的努力,我一次次获得小小的启发,一步步接近问题的解决之道。6个月艰苦摸索之后,我终于彻底搞定了这个在公司内公认的难题,我本人也从一个门外汉,一举成为了公司的核心技术人员。这一段时间,我不但把MapObjects每个接口弄得烂熟,还学会了一百多个Windows API的使用,无论是技术方面,还是个人的职业生涯,都取得了一次飞跃。
程序员都需要一些执着的精神,来磨炼自己、发展自己,要有水滴石穿的决心和勇气,才能够成为真正优秀的程序员。
2.自省消除固执
固执和执着一样,都是一种坚持不放弃的精神,既然如此,那为什么人们总是赞美执着的人,对固执却嗤之以鼻呢?
其实两者的差别全在于坚持的方向。执着和固执,就像一根绳子的两端,虽然是在同一根绳子上,方向却相反。执着是沿着正确的方向前进,是一种理智的坚持,而固执则恰好相反。既然都是坚持,那怎么判断方向是否正确呢?
其实,何为正确,何为错误,两者之间并不是泾渭分明,不然,也就不会有那么多“执迷不悟”的人了。方向是否正确,往往是以结果来衡量的。因此是执着还是固执,其实主要是结果导向,结果好就是执着,结果不好,就是固执。爱迪生发明灯泡的时候,经历了无数次的失败仍然坚持不懈,最后终于找到了用钨丝作为灯丝方法,取得了成功,他的坚持我们称之为执着。后来,爱迪生创立了通用电气公司,坚持用直流电供电,无视交流电在远距离传输方向的巨大优势,最后输给了采用交流电方案的西屋电气公司,他自己也只黯淡离开自己创立的公司,这时候,我们只能说发明大王也有固执的时候。
如此说来,难道我们非要等要结果发生,才能知道自己的坚持是对是错吗?有没有办法让我们在进行过程中就能出判断呢?这只能靠我们的自省。孔子曰:“吾日三省吾身”,大凡善于自省的人,都不会是固执的人。他们能随时察觉自身的问题,具有理智的否定自己的勇气。
自省需要常识。对于一个不具备常识、不明白对错、不理解基本规则的人,怎么能正确判断方向呢?这样的人再怎么自省也是无济于事的,他只有在不断的碰壁中才能获得真正的成长。
我曾经见到一些程序员,在自己的想法与项目经理发生冲突时,总是一味的坚持,不肯让步,甚至与项目经理陷入无休止的争吵,还以为自己掌握了真理。殊不知,与上司顶撞是一种愚蠢的行为,这种过分的坚持,会在上司心目中形成不听话的印象。更何况,服从上级工作安排是基本的职场规则,你可以提意见,但必须尊重上司的决定。毫无疑问,在这场对峙中,不管理项目经理对错,程序员都是固执的一方。如果程序员具备这些基本的常识,并且保持自省,也就不会发生这样的事情了。
自省还需要具有突破思维舒适区的勇气。每个人的都有其思维舒适区,这里一切受潜意识的保护,一切都似乎理所当然,我们的大脑无需对事物做过多的思考,爽爽的享受这种自我封闭带来的轻松和愉悦。毫无疑问,思维舒适区阻挡了我们对事物深层次的探求,以及我们对不同观点的接纳,因而也就无法对自己所坚持的东西做出真正客观的分析。
在程序员与项目经理的争吵中,其实双方都应该勇敢跳出自己的舒适区,心平气和地考虑,对方的观点是否也具有可以接纳的成分,做一个理智的坚持者,这样才能做到双赢。执着还是固执,往往也就只是在一念之间的差别。
via:http://www.cnblogs.com/watsonyin/archive/2013/01/15/2860678.html