- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《程序员生存定律
程序员生存定律--成长路上常见的坑1.“博”与“专”上的迷失假设说一个人的学习已经聚焦,并且学习的内容和自己实际参与的项目也相吻合,那么是不是就没有问题了?很不幸,答案仍然是否定的,在任何一个子领域里,仍然需要进一步去考虑“博”与“专”的均衡。对于软件开发而言,设计是再常见不过,再简单不过的一个词了。可如果把视角拔高一点就会发现,单以设计而论仍然是一个不可穷尽的领域,我们可以快速扫描一下和设计相关的部分概念:(1)面向对象分析与设计(2) 结构化分析与设计(3) 模型驱动开发(4) 契约式编程(5) 面向方面的开发(6)基于组件的开发(7)元编程有些时候方法论也会和设计牵扯到一起:(1)测试驱动开发(2)敏捷软件开发如果感觉这个还不够多,那可以去Wiki上查编程的范式(paradigms)这个条目,那里列了47种范式,每个都和设计多少有点关系。上述这些还只是说了设计,如果横向展开,那么在特定领域中必然还会牵涉到框架的选用、辅助工具的使用等等。这也就意味着,从博的角度来看,即使是在设计这样一个看似狭小的领域中仍然是没边界的。与此同时,把一个API研究的再透,也是低值人群,因为这种深入理解和单纯会用某个API相比,从创造价值的角度看,差别不大。这也就意味着对于大多数软件开发人员而言,要去寻找广博与精专间的均衡点:既不能闭上眼睛,也不能就用显微镜来看世界。而这一均衡点的价值则可用反木桶原理来说明:木桶原理说的是桶里的水是由最短的一块板决定的,但考量人的价值时却是适用于反木桶原理,即人的价值往往由最长的一块板决定。考虑博和专的问题不能离开产品开发进行考虑,前面曾经提到过,产品开发往往和公司的现金流绑定的更紧,能为现金流贡献力量的技术才是有价值的技术。而产品开发本身事实上对博和专的程度提出了最基本的要求,这种要求往往具有迭代的特质。为了形象的说明这一点,这里举一个通用的例子来进行一点说明:在第一次跌代里,往往需要达到两个最基本的目标。第一个目标是可以为产品贡献自己力量,但代码质量普通。这个目标如果达不到,一个人会失去自己的存在价值。这时候最少需要了解某种语言(比如:C++)、某个平台(比如:Windows)、某个IDE(比如:VisualStudio)和某些业务相关的知识(比如:打印体系)。这个范围可以尽可能圈的小点,但用到的则要学透。比如:不管接触到那个框架,都要去了解它的内存机制、线程机制、异常处理组件构建和国际化处理这些全局性的机制,而不能只是了解某个接口怎么用。这并非是很高的要求,没有这些就变成了“靠运气编程”,写完程序后还要祈祷他能跑起来。了解这些之后就可以负担起部分开发工作,否则的话只能做旁观者,没法参与到实际工作中来。第二个目标是把事情做好,并能负担些层次更高的工作。这时候要比较深入的了解面向对象、结构化方法、设计模式、理解设计原则,并能把它们用好。至少要能判定,这个程序写的好,那个程序写的不好,同时面对需求能把工作进行下去。前两个目标是基础,一般来讲学校中基础打的越好,这个阶段越短。达成这两个基本目标之后就可以结合情境来做进一步的选择,可以认为这是博与专选择上的第二次迭代。当然这时候也要谨记不要和实践分开。完成上述两个层次后,可以有两个方向可供选择:(1)可以进一步考虑专的问题,比如在特定领域里把知识深化下去。做驱动就要理解操作系统的核心机制,做打印的就要了解页面描述语言等,但这个时候要适当警惕边际效应。边际效应是说,你让一亩地从亩产500斤增加到1000斤可能只需要投入100块;让亩产从1000增加到1500可能就需要200块;让亩产从1500增加到2000则需要400块了。一个典型的例子是对C++的学习,C++是公认的复杂,如果想做C++的律师,那么估计搞个10年可能够资格了,但问题是把时间都投在这个上,投入产出比可能不好。而停在那里合适则是个尺度问题,大致来讲是可以靠时间弥补的细节问题,并不适合专到最底层。比如对于100万行的程序,预先花时间去了解每一处细节,就有点过了。(2)可以把博再推进一步,比如:熟悉专门领域的专业知识、熟悉多种既存框架的特性、熟悉提高用户体验的关键点。熟悉多种既存框架的特性的具体含义是:设计某一种解决方案时,首先要考虑的就是是自己开发还是使用现有的模块。一旦决定使用现有的模块(包,框架等),那就要进一步考虑究竟用那个。做这类工作时,如果没有一定广博的知识,做选择的时候就会特别的艰难。假使说现在公司内部要导入一套项目管理系统,那么做决定的负责人必须至少考虑所有下面这些事情:(1)自己从头造,还是用现成的做二次开发?(2)用现成的,是用开源产品,微软的还是其他公司的?(3)用微软的话,是用MSProject还是基于SharePoint,还是混合?考虑License费用的话真的划算么?(4)用开源
您可能关注的文档
最近下载
- 2025年高考历史试卷(山东卷)附答案解析.docx VIP
- 中国文化古城—西安.-PPT.pptx VIP
- 《西方社会学理论》全套教学课件.ppt
- 第7课 实践出真知 课件 中职高教版哲学与人生.pptx
- 一针疗法之肩周炎.ppt
- 2025中国银行中银国际证券股份有限公司招聘8人笔试模拟试题及答案解析.docx VIP
- 神经介入治疗概述及护理常规.ppt VIP
- 舒伯特第二即兴曲,降E大调 D.899之2 Impromptu No. 2 in E flat major, D. 899, No. 2 Op90 Schubert钢琴谱.pdf VIP
- 深潜器钛合金框架结构装配焊接工艺研究-中国造船工程学会.doc
- 村两委工作细则汇编.doc VIP
文档评论(0)