0. “面向对象”比你想象的要难得多

  也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。

  十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。

  1. 软件开发的难点在于沟通

  这里的沟通是指与人的沟通,而不是socket编程。有时你的确会遇上棘手的技术问题,但是这种情况根本不常见。常见的问题在于那些你和项目经理之间的、你和客户之间的、还有你和其他开发者之间的误解。培养你的软技能吧。

  2. 学会拒绝

  当我刚开始工作的时候,我非常急切的想要去讨好别人。这也就是说,我几乎不能去回绝别人对我的要求。我加了很多班,但是还是不能完成他们交代给我的所有事情。结果他们表示不满意,而我也表示要崩溃了。

  如果你从不回绝别人,你的答应就显得毫无意义。承担能力所及的事情,如果别人不停地指派给你更多的事情,你需要明确的表示那意味着将会耽误其他的工作。

  为了应付这种事情,我会随身携带一张列有待办事项的纸(To-do list)。当人们叫我去做什么事情的时候,我就给他们看这张纸,并且问他们我应该为他们挤掉哪个事情。这是我用来拒绝别人的一种好办法。

  3. 如果每件事都重要,那就什么事都不重要

  我们这一行,总是强调每种特性都是同等重要的,其实并不是这样。敦促你的同事,让他们承担起工作。

  如果你不强迫他们选择该做和不该做的事情,你会轻松很多。相反,让他们来为你选择你这周的任务。这会让你生产出来的东西变得最有价值。如果其他的部分都还是乱糟糟的,至少你已经完成了最重要的。

  4. 不要过度考虑问题

  我可以站在白板前面一整天策划事情,但是这并不意味着事情会向更好的方向发展,这仅意味着事情将变得更复杂。

  我的意思并不是“你不应该去做任何策划”,只是如果我会在实现程序的时候会很快遇到我没考虑过的问题的话,那为什么我不去尝试把它做好呢?像戴夫·法洛所说的,“魔鬼居住于细节中,而驱走魔鬼的方法是实践,而不是理论”。

  5. 去钻研一些东西,但不要钻牛角尖

  克里斯和我花费了大量的时间钻研SQL服务器的深层部分。那真的很有趣,我也学到了很多知识,但是过了一段时间我意识到,知道了那么多的知识并不能帮助我解决业务上的问题。

  举个例子:我知道在数据表层次,SQL服务器不会接受IU锁——它只会接受IX锁。这是一个性能调整,因为在大多数情况下,IU锁都会升级成IX锁。为了了解这些,我花掉了无数天做实验,我读了很多的书,还在会议上向微软的员工了解情况。然而我用过这个知识吗?没有。

  6. 了解软件开发系统的其他方面

  这对成为一个优秀的开发者是很重要的,但是若要在一个开发软件的系统中成为优秀的一员,你还需要去了解开发系统中剩下的部分在干什么。QA是如何工作的?项目经理在干什么?业务分析员在忙些什么?这些知识会让你与其他员工产生联系,并使你和他们之间的互动顺畅。

  向你周围的人寻求帮助,以便学到更多的知识。有什么好书呢?大多数人都会为你的关注而高兴,并且很乐意帮助你。在这上花一点小时间会对你有很大的帮助。

  7. 同事是你最好的老师

  在我找到第一份工作的一年后,我们和另一所公司合并了。突然之间身边就多出很多聪明又经验丰富的人。我深刻的记得这是我感到多么自卑和愚蠢。我努力地学习,读了一本又一本的书,还是还是赶不上他们。我发现他们和我比起来有非常突出的优势。

  现在,我不会因为和优秀的人一起工作而感到难受。我认为我有一生的时间去学习。我提出问题,并且非常努力地去了解我的同事们是怎么做出结论的。这也是为什么我加入了ThoughtWorks。把你的同事们看成财富,而不是竞争对手。

  关于学习,不论是哪个行业,都是永恒的话题,正如 Jonathan Danylko在总结自己20年的编程经验时所说到,“诚然,总有很多你不知道的技术,你可以从中学习以保持不落后。如果你有一种灵巧的方式来获取你需要的新技术,那你每天都应该坚持学习。”(编注:ThoughtWorks是一家全球知名的IT咨询公司。)

  8. 做出可用的软件是最终目标

  不管你的算法有多酷,不管你的数据库模式有多棒,不管你的什么什么有多么多么好,如果它不能搔到客户的痒处,它就不值一文。专注于做出有用的软件,同时准备继续做出后续软件,这才是正轨。

  9. 有些人真的不可理喻

  在你身边的大多数人总是很优秀的,你向他们学习,他们也向你学习。共同完成一件事情的感觉总是很好。然而不幸的是,你也有可能遇到例外。因为某些原因,人可能会变得冷漠刻薄。萎靡不振的老板啊,满口谎言的同事啊,无知愚昧的顾客什么的。不要把他们看的太重。尽量避开他们,尽量把他们所带来的痛苦和影响降到最小,但不要自责。只要你保持诚实并且尽力去工作,你就完成了你该做的事情。

转载于:https://blog.51cto.com/hongyanwb/588613

软件开发最重要的十件事相关推荐

  1. Dynamics CRM技术开发应该知道的十件事(上)

    Dynamics CRM技术开发应该知道的十件事 1.web资源引入CSS或JS时使用相对路径 <link rel="stylesheet" type="text/ ...

  2. 【转】惹恼程序员的十件事

    惹恼程序员的十件事 转自:http://cocre.com/?p=340 程序员应该是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的.当然,既然是人,当然是会有性格的,也 ...

  3. 关于维基百科你不知道的十件事:

                    关于维基百科你不知道的十件事 关于维基百科你不知道的十件事是专门让那些缺乏维基百科经验的人,如记者.新编辑者或新读者,能够对维基百科有一些较深入的认知.这些内容并不会带 ...

  4. Ubuntu16.04 装机之后要做的二十件事

    Ubuntu装机之后要做的二十件事 用ubuntu做东西很久了,总结了一些教程,一直想整理一下,确实是没有时间,这下简单的整理了一下,大家可以看看,具体的软件安装包已经推到了本人的百度云帐号下面了,需 ...

  5. Photoshop开门十件事。

    Photoshop开门十件事 AdobePhotoshop 是目前最流行的平面设计软件之一.可以说,只要你接触平面设计,那么无论早晚,你都要和它打交道.关于Photoshop,要说的实在太多太多,但不 ...

  6. 成功的前提,35岁前必须做好的十件事

    35岁是青春的后期,35岁以后是收获的季节,如果你没有资格说这句话,你将会憎恨自己.所以在35岁以前,在烂漫蓬勃的青春年华里,你最好把下面十件事做好 第一,学会本行业所需要的一切知识并有所发展.已故零 ...

  7. 35岁前把下面十件事做好

    35岁是青春的后期,35岁以后是收获的季节,如果你没有资格说这句话,你将会憎恨自己.所以在35岁以前,在烂漫蓬勃的青春年华里,你最好把下面十件事做好: 第一,学会本行业所需要的一切知识并有所发展.已故 ...

  8. 35岁以前把下面十件事做好

    35岁是青春的后期,35岁以后是收获的季节,如果你没有资格说这句话,你将会憎恨自己.所以在35岁以前,在烂漫蓬勃的青春年华里,你最好把下面十件事做好: 第一,学会本行业所需要的一切知识并有所发展.已故 ...

  9. spring一站式开发_Spring开发人员知道的一件事

    spring一站式开发 在最近的(核心)Spring框架培训课程中,有人问我:"(Java)Spring开发人员应该知道的一件事是什么?" 这个问题使我措手不及. 是的,(核心)S ...

最新文章

  1. pythonsys模块介绍_sys 模块介绍 - Clarkhedi的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. JUC并发编程六 并发架构--偏向锁
  3. 计算机的磁盘地址格式,如何查看电脑硬盘是GPT分区还是MBR分区
  4. doctype声明的意义
  5. 2.3线性表的链式表示和实现
  6. hdu 3790 最短路径问题
  7. iOS-APP启动页加载广告
  8. 做游戏,学编程(C语言) 3 利用函数对飞机游戏进行重构
  9. 大数据催生智慧园区_杭州经纬智慧园区如何实现各系统间信息数据集中关联、一站管控...
  10. handlerexceptionresolver ajax,Http请求的异常处理(草稿) (SEUG)
  11. PPAPI+VS2013开发(1):环境配置
  12. pythonnumpy安装教程_NumPy环境安装配置
  13. ucla计算机科学博士排名,加州大学洛杉矶分校专业排名一览及最强专业推荐(QS世界大学排名)...
  14. java 俄罗斯 id_Java ZoneId systemDefault()用法及代码示例
  15. uefi装完系统后无法引导_uefi装win7启动不了怎么解决?
  16. Vue2学习笔记1 - win10下安装vue开发环境
  17. 不要签名证书将网页打包封装成苹果APP,无需苹果企业签名,IPA证书签名,ios签名证书,免越狱安装...
  18. mysql exit函数_Exit函数
  19. 【word】图表引用
  20. 苹果手机解压缩软件_BetterZip 5 for Mac(苹果专用解压缩软件)

热门文章

  1. python发送邮件及附件
  2. Knockout v3.4.0 中文版教程-9-计算监控-API参考
  3. 遗传算法在JobShop中的应用研究(part1: 绪论)
  4. 明确需求与功能,优化小打卡的分享刺激点
  5. 在哪个瞬间你感觉自己是一个产品经理?
  6. 那些年送出去的交互方案-微博篇
  7. 产品经理八大惹怒程序员而被砍杀的行为
  8. 51单片机系列——基础指令
  9. 网络基础知识总结_交换机
  10. 《自己动手做交互系统》——导读