文章转自《http://bbs.jointforce.com/topic/17845?ref=myread》,感谢作者分享! ---------------------------------------------------------------------------------------- 程序员是一群“死脑筋”的童鞋,总认为提高了自身的编程能力就万事大吉,走向人生巅峰。然而编程能力是硬实力,想要升职加薪,赢娶白富美,还是要靠职场那点软实力!程序员职业不像是别的职位,靠巴结领导,组小团体就能上位(程序员们也做不来这样的事),那么程序员的软实力是指什么?又怎么能一步一步的提高呢? 首先,程序员在工作中最常见的问题就是:产品经理/测试人员/奇葩领导日复一日的提需求,改bug。程序员们疲于更改各种小问题,每天都忙到要死,可到最后却没有大项的工作成果。 根据这个问题,程序员首先应该做的是:拿到一个需求时,好好问自己几个问题(传说中的先想再做): 1.用户真正需要的是什么? 程序员最容易犯的错误就是,抱着“我只想安安静静的写代码”,或是“我就是要搞出来一个酷炫的玩意”的心态去工作,完全不考虑业务层面、用户体验方面的问题。无论是是什么样的应用,最终是为了解决用户的问题,从而实现商业上的盈利。 因此,抛开自己,去思考用户真正需要的是什么。 2.这个需求是合理的吗?这个需求有价值吗? 在应用中,无论新增还是更新某一个功能,思考一下这个功能是否合理,比如在游戏应用中增添社交功能是合理的,但添加地图定位功能就没有必要。再来思考一下这个功能的价值,在游戏应用中增添了社交功能,那么可以方便用户之间进行互动,也便于官方推出活动或公告信息,不仅增加了应用的用户黏性,还有可能拥有了一种变现的方式。 3.这个需求所需的信息是否已经完整? 增加社交功能,明确目的后,根据结果反推这个需求的信息是否完整。功能的描述是否清晰,目标的期望是否合理等。领导轻而易举的一句话是很有可能导致你一个月的无用功的。 4.这个需求还有什么疑虑?需要团队怎样配合?如何分解需求以达到最快速度的实现? 需求的大方向确定,和团队制定好具体细节和明确的分工是重中之重。甚至于,这个功能是否可以用现成的云服务,比如APICloud上聚合API拥有国内上百家云服务商,能不能直接使用APICloud平台快速开发,能不能用某一个模块直接添加?能用云服务时不自建,这不仅是程序员对于资源的有效利用,更可以充分利用宝贵、有限的时间。 以上4条,总结一句之前领导常和我说的话,别干傻活儿! 5.对需求进行优先级排序 6.把需求分解为最小单位的任务进行开展 7.提前预测可能的问题和风险 程序员的软实力还体现在高效的管理自己的时间上,高强度的工作使得人更容易忽略在工作中的小事。时常进行总结,更易使自己明确目标。 1.首先回顾一段时间内的工作,看看高效工作时长和浪费的时长 2.结合自己的工作经验,分析自己的优势和弱势,你浪费的时间有可能是你弱势的地方,不熟练的工作当然要花更多的时间。那么这也就是自己需要提高的地方。 3.时不时的列出近期的目标,并将目标进行分解,规划为详细的工作/学习计划,建立好日程表后尽量要求自己严格执行(如果遇到拖延很严重的时候,有可能是日程表本身出了问题) 4.常于领导及跨部门同事进行沟通,确保自己的工作方向正确,避免无效返工 5.给自己留出整块的工作时间,可以不参加的会议就不参加,同时也要给自己留出整块的私人时间,保证休息 最后,给程序员们一些舒缓工作压力的诀窍: 1.确保自己吃饱、喝足、睡好,这点说出来很傻,但有研究表明,心理压力有时是来自生理需求没有被满足,尤其是糖摄入量不足时会凸显 2.与同事保持良好的合作关系,工作环境大部分取决于人与人的关系,偶尔不安静的写代码,而是和身边的同事聊上5分钟 3.保证每周的运动量,这点是程序员最难做到但也是最重要的,正常的体力消耗会带走工作压力,有时也会给你更多的灵感。 硬实力强悍会让你成为一个Geek,然而软实力出众则让你成为一个受人爱戴的Geek!提高自己的软实力,让自己的生活与工作更愉快、更稳健。 |