`
xiaoboss
  • 浏览: 648280 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

软件开发中获得的宝贵经验!

 
阅读更多

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

也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思 是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。 十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。

软件开发的难点在于沟通

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

学会拒绝

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

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

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

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

我们这一行,总是强调每种特性都是同等重要的,其实并不是这样。敦促你的同事,让他们承担起工作。
如果你不强迫他们选择该做和不该做的事情,你会轻松很多。相反,让他们来为你选择你这周的任务。这会让你生产出来的东西变得最有价值。如果其他的部分都还是乱糟糟的,至少你已经完成了最重要的。

不要过度考虑问题

我可以站在白板前面一整天策划事情,但是这并不意味着事情会向更好的方向发展,这仅意味着事情将变得更复杂。
我的意思并不是“你不应该去做任何策划”,只是如果我会在实现程序的时候会很快遇到我没考虑过的问题的话,那为什么我不去尝试把它做好呢?像戴夫·法洛所说的,“魔鬼居住于细节中,而驱走魔鬼的方法是实践,而不是理论”。

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

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

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

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

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

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

同事是你最好的老师

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

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

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

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

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

有些人真的不可理喻

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

分享到:
评论

相关推荐

    10年软件开发中获得的最宝贵的经验!非常值得你一读

    10年软件开发中获得的最宝贵的经验!非常值得你一读

    敏捷软件开发:原则、模式与实践(全).pdf

    Martin,作为敏捷开发的权威和实践者,通过《敏捷软件开发:原则、模式与实践》一书,向读者展示了一系列核心原则、模式和实践经验,旨在解决软件开发人员、项目经理及软件项目领导在开发过程中面临的问题。...

    软件开发环境 课件(中英文结合)

    总之,"软件开发环境 课件(中英文结合)"提供了一个全面的学习路径,涵盖了软件开发流程中的关键要素,无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用技能。通过深入学习这个课件,你将能够构建...

    有关大学生软件开发实习总结.doc

    通过实习,作者不仅获得了软件开发的实践经验,还获得了宝贵的人生经验。 知识点1:软件开发的重要性 文章强调了软件开发的重要性,在软件开发中,团队合作和沟通是非常重要的。作者通过实习获得了软件开发的实践...

    软件开发文档模板(最全)

    在软件开发过程中,文档起着至关重要的作用,它不仅是团队沟通的桥梁,也是项目管理和质量保证的基石。本文将深入探讨“软件开发文档模板(最全)”所涵盖的几个核心部分:需求文档、设计文档和开发文档,以及它们...

    Nios II 软件开发手册(中文版)

    《Nios II软件开发手册(中文版)》不仅是一份详实的技术文档,更是嵌入式系统开发者深入了解Nios II软核处理器及其开发流程的宝贵资源。通过阅读本手册,开发者能够掌握Nios II软件开发的关键技术和最佳实践,从而...

    96篇软件开发论文 --中英对照

    描述中的 "项目管理术语英中对照表" 强调了在软件开发过程中项目管理的重要性。项目管理是确保软件开发按时、按预算并达到预定质量标准的关键。CMM(能力成熟度模型)是项目管理中常用的一个框架,它为软件组织提供...

    软件开发之星事迹 (2).pdf

    在软件开发领域,"学习之星"和"创新之星"的故事为我们提供了宝贵的启示。潘锦怡,这位属马的勤奋女孩,以其卓越的学习态度和成就展现了软件开发者的优秀品质。她深知宝剑锋从磨砺出,梅花香自苦寒来的道理,不仅在...

    软件开发之星事迹.pdf

    4. 项目经验:陈x参与的项目,如环境监测系统和GPS面积测试仪,体现了他在实际项目中的贡献,这是软件开发简历中的亮点,能够吸引潜在雇主的注意,证明其有能力完成高质量的软件开发工作。 5. 技术提升:陈x深入...

    敏捷软件开发实践

    这使得《敏捷软件开发实践》成为了一本值得反复阅读、长期参考的宝贵资源。 #### 四、读者反馈精选 - **Nathaniel T. Schutta**(《Ajax基础》合著者):特别提到了书中的实践感受部分是“金子般”的内容,认为它...

    微软公司软件开发模式

    微软作为全球领先的软件公司,在软件开发领域积累了丰富的经验和独到的方法论。《微软的秘密》这本书深入剖析了微软的软件开发模式,为业界提供了宝贵的参考案例。 #### 二、微软的软件开发战略 微软的软件开发模式...

    软件开发方案标准模板

    它们记录了软件开发的每一个决策和过程,为后续的软件升级、维护和使用提供了宝贵的信息。同时,文件也帮助潜在用户了解软件的功能和性能,为他们是否选择该软件提供决策依据。简而言之,这些文档是软件项目成功交付...

    历年自考软件开发工具汇总

    【标题】"历年自考软件开发工具汇总"指的是一个集合了多份历年高等教育自学考试中关于软件开发工具科目的试题和答案的资源包。这个标题表明这个压缩包包含的信息主要针对的是那些准备参加自考软件开发工具科目考试的...

    软件测试教材 软件测试从零开始 软件开发的科学和艺术之软件测试

    在IT行业中,软件测试是确保产品质量的关键环节,它涉及到对软件功能、性能、稳定性、安全性等多方面的验证。...无论是对初学者还是有经验的测试工程师,都能从中获得宝贵的知识和启示,提升自身的专业能力。

    《敏捷软件开发:原则、模式与实践》

    无论是对于初学者还是经验丰富的开发者,都能从中获得宝贵的洞见和启示,提升他们的开发技能和团队协作能力。通过阅读和应用这本书中的知识,开发者可以更好地适应不断变化的项目环境,提高软件开发的效率和质量。

    2019年软件开发实习工作总结报告.doc

    报告中提供了宝贵的经验和收获,对软件开发的实践和理论具有重要的参考价值。 此外,报告中也强调了团队合作和交流的重要性,作者学习到了如何与人相处,如何和人跟好的交流,如何将自己的想法清楚明白地告诉队友。...

Global site tag (gtag.js) - Google Analytics