10年软件开发教会我最重要的10件事[转]
1.面向对象比你想象的要难得多 也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。 十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。
2.软件开发的难点在于沟通 这里的沟通是指与人的沟通,而不是socket编程。有时你的确会遇上棘手的技术问题,但是这种情况根本不常见。常见的问题在于那些你和项目经理之间的、你和客户之间的、还有你和其他开发者之间的误解。培养你的软技能吧。
3.学会拒绝 当我刚开始工作的时候,我非常急切的想要去讨好别人。这也就是说,我几乎不能去回绝别人对我的要求。我加了很多班,但是还是不能完成他们交代给我的所有事情。结果他们表示不满意,而我也表示要崩溃了。 如果你从不回绝别人,你的答应就显得毫无意义。承担能力所及的事情,如果别人不停地指派给你更多的事情,你需要明确的表示那意味着将会耽误其他的工作。 为了应付这种事情,我会随身携带一张列有待办事项的纸(To-do list)。当人们叫我去做什么事情的时候,我就给他们看这张纸,并且问他们我应该为他们挤掉哪个事情。这是我用来拒绝别人的一种好办法
4.如果每件事都重要,那就什么事都不重要
我们这一行,总是强调每种特性都是同等重要的,其实并不是这样。敦促你的同事,让他们承担起工作。
如果你不强迫他们选择该做和不该做的事情,你会轻松很多。相反,让他们来为你选择你这周的任务。这会让你生产出来的东西变得最有价值。如果其他的部分都还是乱糟糟的,至少你已经完成了最重要的。
5.不要过度考虑问题
我可以站在白板前面一整天策划事情,但是这并不意味着事情会向更好的方向发展,这仅意味着事情将变得更复杂。
我的意思并不是“你不应该去做任何策划”,只是如果我会在实现程序的时候会很快遇到我没考虑过的问题的话,那为什么我不去尝试把它做好呢?像戴夫·法洛所说的,“魔鬼居住于细节中,而驱走魔鬼的方法是实践,而不是理论”。
6.去钻研一些东西,但不要钻牛角尖
克里斯和我花费了大量的时间钻研SQL服务器的深层部分。那真的很有趣,我也学到了很多知识,但是过了一段时间我意识到,知道了那么多的知识并不能帮助我解决业务上的问题。
举个例子:我知道在数据表层次,SQL服务器不会接受IU锁——它只会接受IX锁。这是一个性能调整,因为在大多数情况下,IU锁都会升级成IX锁。为了了解这些,我花掉了无数天做实验,我读了很多的书,还在会议上向微软的员工了解情况。然而我用过这个知识吗?没有。
7.了解软件开发系统的其他方面
这对成为一个优秀的开发者是很重要的,但是若要在一个开发软件的系统中成为优秀的一员,你还需要去了解开发系统中剩下的部分在干什么。QA是如何工作的?项目经理在干什么?业务分析员在忙些什么?这些知识会让你与其他员工产生联系,并使你和他们之间的互动顺畅。
向你周围的人寻求帮助,以便学到更多的知识。有什么好书呢?大多数人都会为你的关注而高兴,并且很乐意帮助你。在这上花一点小时间会对你有很大的帮助。
8.同事是你最好的老师
在我找到第一份工作的一年后,我们和另一所公司合并了。突然之间身边就多出很多聪明又经验丰富的人。我深刻的记得这是我感到多么自卑和愚蠢。我努力地学习,读了一本又一本的书,还是还是赶不上他们。我发现他们和我比起来有非常突出的优势。
现在,我不会因为和优秀的人一起工作而感到难受。我认为我有一生的时间去学习。我提出问题,并且非常努力地去了解我的同事们是怎么做出结论的。这也是为什么我加入了ThoughtWorks。把你的同事们看成财富,而不是竞争对手。
关于学习, 不论是哪个行业,都是永恒的话题,正如 Jonathan Danylko在总结自己20年的编程经验时所说到,“诚然,总有很多你不知道的技术,你可以从中学习以保持不落后。如果你有一种灵巧的方式来获取你需要的新技术,那你每天都应该坚持学习。”(编注:ThoughtWorks是一家全球知名的IT咨询公司。)
9.做出可用的软件是最终目标
不管你的算法有多酷,不管你的数据库模式有多棒,不管你的什么什么有多么多么好,如果它不能搔到客户的痒处,它就不值一文。专注于做出有用的软件,同时准备继续做出后续软件,这才是正轨。
10.有些人真的不可理喻
在你身边的大多数人总是很优秀的,你向他们学习,他们也向你学习。共同完成一件事情的感觉总是很好。然而不幸的是,你也有可能遇到例外。因为某些原因,人可能会变得冷漠刻薄。萎靡不振的老板啊,满口谎言的同事啊,无知愚昧的顾客什么的。不要把他们看的太重。尽量避开他们,尽量把他们所带来的痛苦和影响降到最小,但不要自责。只要你保持诚实并且尽力去工作,你就完成了你该做的事情。
转载于:https://www.cnblogs.com/gxldan/archive/2011/08/20/4066710.html
10年软件开发教会我最重要的10件事[转]相关推荐
- CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序...
CAD制图,机械CAD,建筑CAD,电力CAD,CAD设计, CAD标注, 打印, 软件开发 ,VC++源代码,VB 控件源程序 E-Form++可视化组件库集成最新最尖端的图形处理技术,全部采用VC ...
- EOS开发dApp前需要了解的五件事
EOS只有6个月(2018年12月),但从Block'tivity和State of dApps上来看,它已经是世界上最常用的区块链之一.它是第一个碳中性区块链,它发展得比以往任何时候都快. 随着EO ...
- 软件开发大牛们需要遵守的10大原则
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程.一般来说,软件开发工程师承担着软件的设计.和架构的任务.作为一名优秀的程序猿可谓是十八般武器样样精通,标准的高薪技术人才.而软件开发大牛 ...
- 关于软件开发,都应该知道的10个常识
2011年,马克·安德列森(Marc Andreessen)写了一篇文章,预言"软件吞噬世界".观点主要有两个:第一,许多传统业务正在被软件公司所取代:第二,所有其他公司都发现,他 ...
- 开发计费系统中学到的 5 件事
不是所有货币都有小数位 在设计数据库表结构时,有一个普遍观点是"永远不要用浮点数来表示钱".一些人建议使用MONEY数据类型,另一些人则告诉你要使用DECIMAL. 对于计费系统来 ...
- 24位行业精英:2018,区块链教会我最重要的一件事 |链捕手
区块链十年,所谓的寒冬将近九年半,那些杀不死我们的,终将让我们更强大.岁末年终,链捕手(ID:iqklbs)邀请了24位行业精英通过写一段数百字的文字,表达在2018年区块链让自己明白的最重要的一件事 ...
- “牌面”养成记10:打好牌,从做好这60件事开始[下]
[所谓"牌面",其实就是Product Manager的简称+谐音.也取胡"牌面"的寓意] <产品心经:产品经理应该知道的60件事(第2版)_闫荣> ...
- 暮然回首:我的10年软件开发生涯
前言 我是个码农,在职场干了多年,在超过10个公司服务过,遇到过各种怪现状,拍案惊奇葩,不吐不快,太想写篇文章吐槽一下. 这篇文章汇集了我10多年来的工作中遇到的各种经历,总结的心得,分别讨论了团队与 ...
- 众生百相:我的10年软件开发生涯
前言 我是个码农,在职场干了多年,在超过10个公司服务过,遇到过各种怪现状,拍案惊奇葩,不吐不快,太想写篇文章吐槽一下. 这篇文章汇集了我10多年来的工作中遇到的各种经历,总结的心得,分别讨论了团队与 ...
最新文章
- ​人工神网络来解码皮质电图(ECoG)数据
- vue 输入框限制3位小数_vue+element 中 el-input框 限制 只能输入数字及几位小数(自定义)和输入框之键盘...
- 递归实现进制转换(C++版)
- 用Python一键生成炫酷九宫格图片,火了朋友圈
- 关于渲染流水线的几何变化
- 通过串口打印--超声波测距模块测得距离
- ARKit Plane Detection (平面检测)
- SQL中常用的日期函数
- 学计算机的 1加1,如何用“一加一等于几”解析人生
- 技术负责人如何带领好团队
- win7找不到服务器的dns错误怎么办,Win7系统DNS错误怎么办?
- 4G 全网通DTU是什么 有哪些功能应用
- 云服务器哪家好?云服务器评测对比
- 使用Jmeter对华为私有云进行性能测试
- Java没有友联(函数)这个概念怎么办?
- 计算机系统层次结构最顶层,在多媒体计算机系统的层次结构中,处于顶层的系统是( )。...
- Bless You Autocorrect!(字典树上建图)
- 51nod 1113 矩阵快速幂 (矩阵的n次方)
- 市场上流行的视频格式 简介
- java绘制杨辉三角
热门文章
- 八、pink老师的学习笔记—— CSS用户界面样式(鼠标样式、轮廓线、防止拖拽文本域)
- 《数据结构与算法之美》学习汇总
- LeetCode MySQL 1777. 每家商店的产品价格(行列转换)
- LeetCode 1100. 长度为 K 的无重复字符子串(滑动窗口)
- LeetCode 875. 爱吃香蕉的珂珂(二分查找)
- php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性
- python gis 实例_用Python作GIS之五:从示例入手—example函数
- 基坑监测日报模板_基坑监测有多重要?实录基坑坍塌过程,不亲身经历,不知道现场有多恐怖!...
- mock模拟接口测试 vue_vue+mock.js实现前后端分离
- 货物与产品的区别_超市货架和仓储式货架有什么区别?