这个作业的要求是:https://bbs.csdn.net/topics/608340396
问题一:
3.5 题目1
a)刚刚在书上看到你的病例,开刀的过程中非常认真严谨,时不时还要停下来翻书看看……
b)富有创新意识,开刀时突然想到一个新技术、新的刀法,然后马上在你身上试验……
c)已经处理过很多类似的病例,可以一边给你开刀,一边和护士聊天说昨天晚上的《非诚勿扰》花絮……
d)此医生无正式文凭或正式医院的认证,但是号称有秘方,可治百病。
①:你要选哪种类型的医生?
我会很果断的选择C类型的医生。
在我看来,任何一项技能都是需要不断操练的。当然,理论是一切技能的基础。这是毋庸置疑的,但现如今,衡量人工程技术好坏的,更多的是去看其实际性的成果,而不是有多深的学术造诣。就软件工程师而言,用户更加在意的是你的工作效率,软件成品质量,维护效率。这些属性很大程度上都是受到工作经验、工作时间以及工作量的影响,而非你翻阅了多少本书籍,品阅了多少篇超前的文章。
②:医生、药剂师、律师和很多行业都有职业考试和职业证书,软件工程师需要有正式的职业证书才能上岗么?
那是一定的。所谓的职业证书,无非就是用来区别内行外行的门槛,进入任何一个行业,一定是要有其相应的门槛。首先需要入了行,才会有人知道你有软件工程方面的技能,才会有实践的机会,才有机会更进一步。
此外,在软件工程行业,科班出身与半路出家甚至自学入行的人在我看来差距其实不大,所谓的基础性的差距,在一次两次的效率领先之后就不在了,任何人都会从失败中吸取教训,工程实践上的绊脚石再次遇见将会是平坦大陆。在同类型的产品做的次数足够多的时候,就会形成像是特定算法一样的某种框架,效率也就相应提高很多。在此之后,需要的才是所谓的创新能力。但是创新在计算机行业,可能就已经上升到学术层次了,而非工程能力。在工程能力方面,所要做的就是勤加练习,学习更加优秀的算法,以此来提高工作效率。
问题二:
4.5.4结对编程
书本中所说:结对编程是个渐进的过程,有效率的结对编程不是一天就能做到的。结对编程是一个相互学习、相互磨合的渐进过程。开发人员需要时间来适应这种新的开发模式。
根据我的实践经验来看,只有在处理大规模的项目工程时,才值得采取结对编程。
结对编程,其实就是一人写代码,一人检阅辅佐。就类似于组合一样,在经历学习磨合后,互相了解懂得彼此的优缺点,不同的模块适合谁都一目了然。一旦组合成型了,其编程效率将会产生1+1>2的效果。
但是对我个人而言,我认为结对编程不值得采取,没有人会永远跟你结对,与其和他人产生互补,不如全面提高自己的编程能力。
问题三:
12用户体验
“很多软件设计者把用户界面等同于给领导汇报的工作成绩单,所有的功能都争先恐后地出现在用户面前,唯恐用户没有注意到。但是用户往往会被繁乱地界面弄得晕了头,无所适从。现在电视的遥控器大多数就是这样设计的。”
在我看来,一款软件在用户眼中,最重要的就是UI的设计,一个好的UI首先会让用户觉得舒适,将所有功能罗列在一个方方正正的盒子中,只会让用户觉得压迫,甚至自我怀疑。
在一切模块的设计中,程序员首先需要做到的就是以用户的角度去想,拥有“同理心”,明确知道用户需要什么,才能巧妙地设计出用户所需求地软件,尽管有时用户自己都无法将自己地需求描述地淋漓尽致。
问题四:
14.1.4质量的成本
“要到达一定的软件质量,是要付出成本的。”
一款好的软件,需要经过精心的雕琢才会有好的质量。每一个工程师都愿意去写新的功能,但同时却不得不将精力投入到软件质量问题的维护中。
想要一款软件拥有高的质量,绝对离不开软件质量保证工作(QA)。
但是书中并没有明确说软件质量保障工作除了软件测试(Test)还有其他什么工作。
我通过百度以及CSDN的部分帖子中查阅得到:
(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。
根据我目前的实践来看,所谓的质量保障就是保证自己所写的程序满足用户所需的功能。还没有遇到过更进一步的质量问题。
问题五:
16 IT行业的创新
软件工程或者说是程序员在我来就像是小学老师一样,在计算机领域算是一个比较入门级别的工作。此外,软件工程行业早就达到饱和,形成了所谓的围城,只不过里面的人是想赖着却不得不出去。
在IT行业,谈到创新,目前最火热的就属人工智能行业。软件工程就是人工智能的铺路石,在成为一名优秀的软件工程师后,深入学习优秀的人工智能算法(或是大数据、云计算等),成为AI工程师,又会是不一样的体验和收获。
祝看到这句话的你天天开心!!