职业发展思考(一)
(四)
及早规划
任何一个行业,要想在相同的时间内获得更好的发展,都需要进行仔细的职业规划。那么, 作为程序员,自然不能例外,并且更加不能例外。虽说 35 岁的生命期听上去有点吓人,不过也不是全无道理。 体操运动员的生命期不是更短吗? 能够坚持走下去当然是好事,但是换一种不同的方式生存也是一种不错的选择嘛!
那么, 作为开发人员的你,打算成为哪方面的专业人才呢? 技术, 产品,运营,市场还是管理 ? 在多长的时限内完成怎样的飞跃 ? 我想没有必要非要去选择技术钻研作为“最有荣耀的方式”, 也不用一股儿削尖了脑袋去做管理或者小老板。 路其实有很多,最重要的是善于去发现,选择一件自己觉得值得去做并且也能产生影响和价值的事情。
敢于挑战
我们大部分人局限于自己的思维和视角,只开启了很小的一部分能量。 实际上,是自己限制了自己的发展。 谁说程序员就只能躲在屏幕后敲代码? 要敢于走出来,接受公众的注目,敢于让别人来审视你,剖析你,了解你。 只愿躺在编程的温床上的人注定只能做一只井底之蛙。 会遇到很多挑战,不过相比那些创业者来说,我们遇到的困难又算什么呢? 一点小小的槛都踏不过去,能成什么事? 不要固守自己的内心, 用一颗开放的心去迎接世界。
从小处训练
关于项目管理,关于各种管理,也许我们会阅读很多书来“增长见识”, 但最实际的,莫过于从小处着手,一点点地磨炼自己的技能。 比如,项目管理的预估时间技能,作为开发人员就可以开始训练了。 要达到怎样的目标和效果? 需要做什么事情? 采用什么方法最有效率? 在多长时限内完成? 实际完成时间? 误差时间和原因分析? 反馈和改进? 从最简单的小需求开发、事务处理到BUG修正、代码重构、模块开发、测试、集成等,几乎任何事情都可以用来训练自己的时间估算能力。 同样,管理方面,也可以从各种小事着手。 了解别人的性格和需求, 和别人打交道, 从互助互进到指导新手,都是不错的机会。不放过这些小的机会,才能捕捉到更大的机遇。
做好一件事
做好一件事,其实挺不容易的,虽然做到80%差不多是比较容易的。 因为除了事情本身,其实还会有不少琐碎的事务需要仔细考虑和处理好。 譬如开发一个小需求, 也许花一小段时间就能做出功能。可是,你彻底做好这件事了吗? 新添的代码在性能、可靠性、安全性、可移植性、可读性上过关吗? 会破坏现有系统的风格或者功能吗? 你真正理解了这个需求吗? 这个需求的实现能够带来怎样的影响和效益? 用户将如何使用你的功能实现? 你的代码注释写得精简到位吗? 相应的文档是否已经同步,准确描述了你所做的工作 ? 如果你只关注代码的编写实现, 那么你实际上只是完成了40% 的工作而已。 偷懒把其他的工作推给同事, 也同时将进步晋升的机会推走了。做一件事,就踏踏实实一丝不苟把事情做好,尽力考虑各种现实问题, 给出最好的解决方案。
一次说一件事并且把它说透,其实也不容易。很多人能够口若悬河, 滔滔不绝, 然而你要指定一个点让他说, 他不一定能够说得有多透彻。 东扯西拉转移了人的注意力,给人一种很健谈的错觉。 只有那些能够把一件事说得非常完整、透彻的人,才是真正有智慧有口才的人。 程序员,如果你希望能够走出沉默,面对公众,就必须下功夫练就这个本事。
写一份专业化的文档,也不容易。 很多人甚至就不愿意写文档,嫌累赘,这些人直接瘫在起跑线上; 大部分人通常草草写完文档, 大致能起个作用; 只有极少人能够一丝不苟地把文档做得赏心悦目,而且让人受益匪浅, 就像诗歌哲理作品一样。
你觉得说和写都不重要吗? 你觉得只有写代码才重要吗 ? 写代码、写作还有演讲, 究竟有多大区别 ? 都是组织语言的能力。 无非写代码能够实现一点效果让人振奋一下。 世界上其实不缺效果, 缺的是令人赞叹的做事态度,以及由此产生的说、写、运行的三位一体的令人赞叹的作品。
更重视开阔思路和视角
一本真正好的书籍不是教授一门编程语言、开发框架或者开发技术,而是为你打开一个全新而开阔的思路和视角。 上班做事情偏重技术,下班广泛阅读非技术方面的知识。 时日长久,光阴飞逝。 真正沉淀下来的, 不是计算机的INT 类型有多少个字节组成, 而是你所练就的敏锐的经验、直觉、洞察力、判断力和执行力, 而这些都是通过那些看似没用的没法给你饭吃的思想书籍教给你的。
(三)
所得即应得
你所得的便是你应得的。 你有怎样的能力,便能得到什么样的待遇。反之,你能得到什么样的待遇,就说明你有怎样的能力。 这里的“能力”, 是一种综合的能力,包括一个人的专业技能,人际沟通,应变能力以及其他能力。此外, 因缘时势也会起一定的作用,有时会很关键。古时经常有“怀才不遇”, 综合看来,基本有两种原因: 1. 没择好投身的雇主。良臣择主而事,良禽择木而栖;如果没投好雇主,即使有回天之力,也只能黯淡收场。所以,这方面的工夫要做好。 2. 人际沟通不过关, 不善于处世,或者不愿意“与世同污”,这与个人的价值观有关。 做文章是一种专业能力,专业能力过硬是无可辩驳的优势,但这并不代表一切,尤其不代表可以凭借这一点漠视别人的存在。
“不思进取”的程序员
那种躺在“我会编点程” 的温床上, 非技术之外的东西什么都不闻,什么都不学的程序员, 其实是“不思进取”的程序员。 程序员通常习惯于沉浸在程序的世界里, 显得沉默寡言, 不善交流和沟通, 但事实上,并没有谁规定说程序员就一定是不善交流和沟通、沉默寡言。 所以, 不要以为自己在努力学习技术,就可以回避职业发展的其他因素,就可以作为借口去回避其他问题。 除了技术,程序员也要懂得与人打交道, 还要学习演讲、口才、策划、管理等相关的技能素养。牢记: 你是一个完整的人, 能够学习和擅长各种的事情,不仅仅是一个程序员。
“技能套餐”
你会做什么? 会编程? 会写点文字 ?会弹吉他 ? 喜欢旅游摄影 ? 为什么你看上去这么有才华,却依然毫不出彩,无所作为? 单纯的依靠这些东西是很薄弱的,很难产生较大的影响和效益。 要想借助相同的资源产生更大的影响和收益, 就必须动点脑子, 将所有自己喜欢的,会的,擅长的东西和资源都整合起来, 形成一个牢固的”技能套餐“ 。 程序员的”技能套餐“ = 某一领域的专业技术能力 + 善于交往和沟通 + 清晰的书面和口头表达能力 + 其他特质或能力。
创业,是创造一种商业模式
创业,不是单纯的赚钱, 而是创造一种商业模式。 投入一定的资金和资源, 经过一定的运转, 取得收益, 从而使事情能够持久地发展。 这实际上就是创造一种商业模式。 单从做事的角度来说,创业者所做的事情, 大多数人在暂时的高压下几乎都能去做到, 但要将所有事情整合起来能够持续运转, 就不是大多数人能够做到了。 所以,创业, 实际上是一种整合资源、承担持续压力的能力。创业并不神秘, 但也确实不简单。
事先规划,确认需求, 多思考框架性的东西
程序员习惯于编程, 急于编程,实现功能。 但现代软件面临的问题不是功能无法实现,而是需求模糊,变更频繁。 因此, 急于编程所导致的结果通常就是白费力气,一次次返工。 真正成熟的程序员必定懂得事先规划,确认需求,这是项目的良好开端; 其次, 要多思考框架性的东西,设计好应用框架, 当需求变化时,能够更多地关注细节的修改,而不是整体的更改;最后, 多多思考上层的问题, 比如, 如何应对需求模糊、变更频繁 ? 如果能提出一些可行性好的解决方案,就是一种创新。虽然在技术方面,国内还落后于国外,但这些非技术层面,国内完全是有能力去超越国外的。
(二)
未来如何发展
暂时的高薪待遇是不足羡的。长路漫漫,能否掌握高含金量的知识技能,能否抓住机遇发展,不断使自己增值,才是最值得深思和仔细规划的。
做好研究工作
研究,就是弄清楚一件事情的来龙去脉。追溯它的来源,剖析它的当前,探讨它的未来。不如此,就很容易只是获得支离片段,迷失于技术的丛林中,不能看到其全貌,不能掌握其本质。在掌握全貌的情况下,选准一个点去深入钻研,在钻研的过程中围绕该点进行辐射。从广到深,再到广,逐渐积累。
理论性的思维是很重要的, 有助于提升一个人的可预见能力,能不能在还没有实现系统的情况下就能够预测到未来可能的现实图景及应用前景。 尽可能脱离“See, it works! ” 的“观察即验证”思维, 以更严谨的思维和方式来引导实践工作。
沉下心来阅读和钻研
目前做学问做技术最大的问题就是,不能沉下心来钻研问题,甚至不能静下心来阅读一篇文章或一段代码。很难想象,这样能够作出什么成就,甚至可能连基本工作都做不好。一定要克服自己浮躁的心态,踏实、沉下心来阅读和钻研。
目标比技术更重要
确定一个明确的目标, 围绕这一目标进行大量深入地调研和学习, 形成系统扎实的知识、技能和经验架构, 同时紧跟最新动态和发展趋势,这比盲目追求和学习各种技术更关键。
用户是企业和个人最珍贵的资源和价值
拥有忠诚的用户及大量的用户群, 愿意用你的东西, 愿意给你提出各种意见、支持和鼓励,是这个时代赠予企业或个人最好的礼物, 应当倍加珍惜。
读点文哲类的书籍
阅读文哲类的书籍,可以拓展自己的思维和视角,感受计算机编程领域之外的广阔空间,同时也能在为人处世方面有着很好的指引作用。仅仅只是掌握一门软件开发技能,不能从宏观层面和非技术层面去思考问题,是很难做出更大成就的。
学习关于经济、商业运作的知识
最好能够了解一些日常经济、商业运作的基础知识, 理解财富的产生、流通与运作的基本原理,懂得自己的行为所能创造的效益和影响。
(一)
事在人为,跳出条条框框
学机械土木的搞计算机不一定比计算机专业的逊色;学计算机的体质也不一定比体育专业的差。虽然学历背景很重要,但并不是决定性因素;重要的是人的决心和努力。何况,学历本身就是通过决心和努力而收获的。
现实需求与个人兴趣相结合
要将现实需求和个人兴趣结合起来;现实需求决定你所做的事情是有用的容易被认可的,而个人兴趣则决定你喜爱这份工作,并甘愿为之奉献精力和时间。
凡事勿贪多,做好一件事;向自己和别人证明:你能行。
追根究底
对问题和技术的探索要有一种追根究底的精神,切忌浅尝辄止; 要探究到对这个东西的方方面面都有着比较清晰的脉络和认识。
不懂的就去学
无论所在领域多么陌生,不懂的就去学,决不回避。
发现问题,解决问题
其实在计算机基础学科中,譬如离散数学、操作系统,数据库等也有很多丰富有趣的问题,只不过,由于太注重知识的获取,而没有积极去发现问题和解决问题, 才觉得 这些课程学起来没劲。
假如我们在学习的时候,总是能够怀着“发现问题,解决问题”的态度去探索和钻研,那么,相信学习的过程会比以前乐趣得多。
做一些有挑战性的事情
越困难的事情越要专心去做,用心去做。如果一件事情大多数人都能做,那么,即使你做出来了,能够从中获得的收益也不会太多。时不时给自己一些挑战,尝试做别人不会去做的事情,令人望而生畏的事情……生命确实很渺小,但只要用心,你依然能够做出了不起的事情!~~~
远离“惟技术论”,运用所学做想做的东西
是否掌握了什么高级技术其实并不是最重要的事,最重要的是心中有怎样的设想并能够将它变成现实。在实现设想的过程中去探索和使用技术,——技术只是手段。社会需求是技术进步的最深刻的驱动力;而技术是社会进步的重要但并非唯一的途径。