问题一(p1)
程序=数据结构+算法
软件=程序+软件工程
程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量。
——第1章 概论
可以说,软件工程是我们大学所学软件课程的一个汇总,不仅对编程的知识需要精通外,算法和数据结构同样占据很大的作用。因为算法是选修课程的原因,我并没有选修这们课程。而对于数据结构也并不是非常精通,那么这样对这门课程的学习影响是不是很大呢?是否需要自己去恶补这些内容呢?
问题二(P75)
结对编程让两个人所写的代码不断的处于“复审”的过程,程序员们能够不断地审核,提高设计和编码质量,可以及时发现并解决问题,避免把问题拖到后面的阶段去。
所谓结对编程就是两个人合作,这样可以提高工作效率。但是我的疑惑是,对于我们在校生来说,每个同学的水平参差不齐,并且每个同学所精通的编程语言都不一样。想要找到一个“志同道合”的队友实属不易。如果这样去解决问题,极有可能出现名为结对,实则一个人劳动一个人看戏的局面,这实在有违老师们的初衷。请问有什么方法可以有效解决这个问题呢?
问题三(p239)
文学化编程( Literate Programming)
程序员在写程序的时候,要理解在文档中的需求,同时还要在程序里写相关的注释,这些不同目的的“写作”各有价值,但是一旦需求或程序发生变化,这些不同的文档很难保持同步。更不用说程序员最常见的毛病“我以后会加上注释的……” Donald Knuth在20世纪70年代末开始尝试并提倡 Literate Programming的思想并在自己的软件项目中身体力行。这一方法和常见的“写程序,时不时加上一些注释释”相反,它是“写文档,时不时有些代码”。 它使用了宏来进行抽象和信息隐藏。
注释的使用时评价一个程序员好坏的重要指标,而对于有些程序员不写注释或者写出一些没办法理解的注释着实让人头疼。但是,对于文中所说写文档时不时写些代码不是很理解。一个程序的书写需要一定的创作周期,能够按时展示出你的作品仍然是一个最重要的事情。如果把时间全部用在了书写文档上,是不是也会影响创作的效率呢?我的理解是合理的注释是可取的,但不能作为工作的主体,不知道自己是不是太片面,望解惑。
问题四(P353)
统计数据表明,70%的创新者说,他们最成功的创新,是在他们拿手领域之外发现的。
对于这个统计结果,真的让我不敢相信。超越领域的创新真的会让一些内行人汗颜。我不是很清楚出现这个现象的原因。我的拙见是出事一个领域的人总会有一些固有思维,认为1就是1,2就是2.而其他行业的人不会有这种局限。但是这个结果同样让我产生了一个想法。是不是360行,行行有联系呢。一个领域的东西运用到另外一个领域,这是不是也算一种创新呢?
问题五(118)
另一份任务是,要在么一个任务记载我们完成这个这份任务还需要多长时间
看到这句话,我的心里满是狐疑。对于我自己来说,“还需要多长时间”是一个难题。因为一个模块或者功能的编写总是能够遇到这样或者那样的bug,排除bug所用时间是一个未知数。我总是不知道成功和意外谁先来。我想知道怎样才能精确的算出自己还需要多长时间呢 ?