软件开发可能是一份吃力不讨好的工作,你要有创意,并能解决问题。有时候你觉得自己的代码写得很优雅,却无法向不懂代码的人炫耀。经常看见好莱坞电影里面,导演把我们描绘成精英×××,坐在一个神秘的终端前面,很快就能破解政府部门的密码,并在60秒内将整个数据库复制到U盘里。不过,我觉得我连自己的笔记本电脑都破解不了,更不用说去破解别人的了,而且有时候我把一个Word文档拷贝到U盘里都要花上不止一分钟。
然而,在现实世界里,程序员并不像好莱坞导演们描述得那么厉害。我们的老板和同事并不在乎我们的代码有多优雅。他们不明白,我们每天都会被问一些愚蠢的问题,比如估计需要多长时间可以完成某项功能,而之前我们对这些功能可能一无所知。坦率地说,我们经常被要求做一些甚至连他们自己都不知道是什么事情的事情!我们的价值常常以能否在数小时内快速写出代码来衡量。我们经常要面对不合理的截止期限,工作和生活的平衡往往是不存在的。不小心出个bug就有可能让之前所有获得的“好评”功亏一篑。事实上,更努力地工作通常只会让别人提高对你的期望,而当你稍稍没有达到“标准”,你在别人眼里就成了一个“懒鬼”。
我们都很钦佩像乔布斯和扎克伯格这样的人,并且认为如果我们更有才华、更有创造力、更有动力,也会在工作中取得更大的成功。我们会一直工作到凌晨,学习最新的框架和技术,花费整个周末来重构我们的核心库,以便更快、更高效地完成工作。而在很多情况下,我们忽视了自己的需求,忽视了朋友和家人,甚至忘记了为什么要这么折腾。有多少次,我埋头苦干,把代码写出来,只是为了让老板和同事不再抱怨,而不是为了得到什么荣誉或奖励。
“为什么你需要这么长时间开发这个新功能?为什么QA会在你的代码中找到bug?你不测试自己的代码吗?”
当有人说我们的小孩长得很丑,或者当我们付出的努力和牺牲只换来消极的反馈和抱怨时,我们很容易就进入“防御”模式。有时候别人只是指出代码中被忽略的一个小问题,或者要求加入一个小功能,都可能会引来我们指责性的回应。我们如何回应他人,如何回应同事和客户的抱怨,将会对我们的价值产生巨大的影响,并最终影响我们的职业生涯。
成功的程序员是那些抱有正确态度的人,好的态度终将胜过高超的技能,并且足以让你得到非技术人士的认可和赏识。
移情是关键
真正能够影响我们职业生涯的是我们的态度。正如之前所说的,没有人会关心你工作了多少个小时,或者你的代码有多么优雅、多么富有想象力。努力写好代码是我们的本职工作,我们不会因为做了分内事而得到额外的奖励。
别人在意的是你如何回应他们的需求。不管是针对同事、客户还是最终用户,这个前提都适用。如果你想成为别人眼里的优秀员工,首先要让他们欣赏你。我见过一些我认为最差劲的程序员,但他们在公司的位置却一路直上,超越了那些经验丰富和才华横溢的程序员,仅仅是因为他们深谙职场的游戏规则,知道如何与别人相处。通常,这些人最终会成为领导者和管理者,而其他程序员则继续在“气泡”里挣扎,不明白自己错在哪里,不明白为什么没有得到应得的嘉奖。
让我们举一些典型的例子,看看我们应该怎样做才能让人们对我们做出更积极的回应。
老板:我不明白为什么需要3天时间才能在页面上添加一个按钮?乔上周添加一个新按钮只用了2秒钟!
错误的回答:乔开发的是Windows应用程序,并且他是往按钮栏添加按钮,而那个按钮栏本来就是为了方便添加按钮而设计的!而我这个是一个Web应用程序,它需要支持所有设备,动态适应屏幕大小,还要支持各种浏览器及国际化!页面上没有可以放额外按钮的空间,所以我不得不重新设计页面,在不同的浏览器上进行测试,确保页面布局不会在小设备上发生错乱,然后创建新服务,添加新逻辑……
那么为什么说这样的回答并不妥当?老板可能确实不知道“添加一个按钮”背后究竟有多少“隐形”的工作,不知道需要做多少前端测试,不知道你是加班才把按钮加好的,他们是在拿苹果和橘子做比较。但他们没有义务知道这些,不是吗?有时候,你的解释听起来都是借口,特别是当老板开始质疑你的时候。
我的建议是“读懂老板的言外之意”,并从老板的角度看待事情。你的老板可能从来没有写过代码,因为可能没有必要,而且他真正想问的并不是为什么你花了那么长时间添加按钮。你的老板关心的截止期限,如何让客户满意,增加销售额。关心你的老板关心的事情,用你的同理心体会老板的感受,并解决他们的需求和目标。
更好的回答:我可以理解你为什么这么沮丧,也知道添加这个新功能对你来说至关重要。这对我来说也很重要,我希望尽我所能把工作做到最好,让我们的产品变得更完美,这样我们的客户就会很高兴。添加这个按钮涉及到很多后端操作,如果你愿意,我很乐意详细解释给你听。花费一些额外的时间来确保按钮在所有设备上都能正常工作,并进行彻底测试,这些是很有必要的。以后我会更频繁地向你汇报进度,让你更好地了解我在做什么以及进展情况。
换句话说,就是不要找借口,你甚至不需要解释什么,你需要做的是让他们知道你的感受,让他们知道你也理解他们的痛点,并且也在关注他们所关注的事情。
QA:我测试了你添加的新按钮,这是我第二次发现这个bug了。你有没有看过我写的bug描述?你在提交代码之前有没有测试过?
不好的回答:是的,我看了你写的bug描述,并且按照你列出的步骤操作了,但就是无法重现问题,我还把过程录下来给你了,你看了吗?如果你想解决这个问题,就要想个办法把它重现出来。
这样回答的问题在于,带有愤怒的情绪对事态的发展一点帮助都没有。话里行间透着一股挫败感,而且还给对方增加工作量,而这些本来是因为你的过错和你的不作为所导致的。这个时候,要继续发挥“移情”的能力。
更好的回答:感谢你的耐心,在客户发现bug之前把它们拦了下来。因为我无法在我的系统中重现这个问题,是否可以明天早上开个会?我带着笔记本电脑来找你,然后看你是怎么操作的。这样可以确保我们都了解问题所在,或许我还可以当场把问题给解决了,这样你就知道它已经过测试并准备好发布了。
在工作中得到认可的几个技巧
永远不要道歉,除非你真的需要弥补过失。相反,进行积极的回应。例如,把“我很抱歉花了这么长时间”改为“感谢你的耐心等待”。
向顶尖人物学习。找出工作中的“摇滚明星”,那些被人喜欢和信赖的人。他们做事的方式总能获得他人的积极回应。与他们交朋友,模仿他们的行为方式。
比别人来得早走得晚。虽然不一定非要这么做,但人们确实会注意到你的来来去去。不过,如果其他人在上午7点就来了,而你在11点左右才到,人们会认为你是个懒鬼。如果大多数人工作到下午6点,而你4点左右就走了,他们也会认为你太懒散。
频繁沟通。如果你每天都参加Scrum,那么很好,但如果你不参加Scrum,那么一定要向你的老板、领导和同事们说明你正在做什么,以及遇到什么困难。没有必要太过冗长,只要做个快速更新就可以了,让每个人都知道你正在做某件事,而且很上心。
在不工作时,不要谈论工作。如果你和同事出去聚餐,在与工作无关的地方用餐,就没必要再谈论工作。你可以询问他们家人的情况,问问他们最近的假期过得如何,或者聊聊他们感兴趣的事情。
总得来说,当技术能力已经达到了一定阶段,影响你后续发展的是软实力。你可能会发现,积极的态度比优雅的编码能够让你走得更远。

转载于:https://blog.51cto.com/13883564/2155213

程序员如何让自己的工作更上一个台阶相关推荐

  1. B2B平台推广技巧让网络营销更上一个台阶!

    B2B平台是时下电子商务流行的一种模式,很多企业都有自己的B2B平台,来为客户提供更好的服务.不过并不是每个B2B平台都适合自己企业来做推广,每个企业也都有它自己的网络营销平台,那么怎样的B2B平台推 ...

  2. 优秀的Java程序员必须了解GC的工作原理

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...

  3. 一个女程序员的第七年工作总结

    一个女程序员的第七年工作总结 今年的天气似乎特别暖和,虽说已经是冬天了我们这里依然一片秋色.  这是我工作的第七年,要是一段感情的话正是七年之痒的时候.如果在感情中每年作一份总结,是不是就不会有传说中 ...

  4. 同样是程序员,为什么别人比你更优秀?

    作者 | 倪升武 责编 | 胡巍巍 随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农. 这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般: ...

  5. 程序员要为了生活而工作,不要为了工作而生活。

    (此文转载自乐字节) 如果有一门课一定要加到工程师教育课程中的话,那一定不会涉及编译器或时间复杂性.但这就是我们所在行业的基本要求,因为我们不教他们,这会导致很多不必要的痛苦和折磨. 这篇文章希望对作 ...

  6. 程序员该如何有效的找工作?

    又到了一周一次的周末心灵鸡汤的时间了,希望大家能够痛痛快快的喝了这碗鸡汤,让这酸爽的感觉使你永生难忘.哈哈--这周又有几个人,尤其是毕业生在「非著名程序员」微信公众号里私聊我关于找不到工作的问题,我感 ...

  7. leo再谈 80后 程序员为什么找不到工作

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 版权声明 ...

  8. 优秀Java程序员应该了解的GC工作原理

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...

  9. 程序员的全新的兼职工作方式

    金币.经验.等级.声望,这是在说网游吗?No,我说的是工作.对,就是基于自然框架针对程序员的全新的兼职方式! 程序员接点私活,挣点外快替补家用,这个也比较常见了吧,但是现在的兼职方式存在很多的问题,比 ...

最新文章

  1. 复习java基础第二天(异常处理)
  2. POJ1328-Radar Installation
  3. 如何理解c语言的变量,C语言中变量的理解.PDF
  4. element-ui中el-drawer组件打开自动聚焦问题
  5. Js对象如何添加方法、查看Api
  6. 深入理解JavaScript系列(32):设计模式之观察者模式
  7. Java jar 版本 查看
  8. Python爬虫入门六之Cookie的使用
  9. python动态生成数据库表_带有SQLalchemy的动态表名
  10. 在Spring MVC中使用FileUpload功能
  11. hutool对称加密
  12. 数据结构——线性表的链式存储
  13. 日期格式化在高并发场景下的解决方案
  14. 相对路径遍历Relative Path Traversal
  15. ArcGIS面转中心线
  16. 已知xyz yzz 532Java_已知 xyz+yzz=532 ,其中 x 、 y 、 z 为数字,编程求出 x 、 y 、 z 的值。_学小易找答案...
  17. vue复选框组件自定义对勾_关于vue的列表图片选中打钩操作
  18. android真机测试什么不同,android真机测试闪退
  19. 关于房价问题的看法。
  20. java 实习生刚入职都会做些什么工作呢?

热门文章

  1. getbean方法找不到bean_?找不到产品卖点?你需要这些方法!
  2. python3.7安装wordcloud_Python中的wordcloud库安装问题及解决方法
  3. input must have last dimension = k = 3 but is 2 for 'TopKV2_这种错误是怎么产生的
  4. 一种比sys.path更好的获得当前脚本路径的方法
  5. L1标准化与L2标准化
  6. 服务器tcp连接占满_漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
  7. 基于ssm的用户管理系统_基于SSM的高校学生实习管理系统
  8. 信息系统项目管理师:第1章:信息化与信息系统(3)-重点汇总
  9. 信息系统项目管理师:第8章:项目质量管理(1)-章节重点
  10. activeMQ使用总结