第1章 概论程序员
书中引用:我成了一名职业程序员,可是我发现全部的算法别人都已经实现了,我只要调用就能够。彷佛咱们公司的软件与数据结构、算法的关系都不大。那我当初辛辛苦苦学习的数据结构和算法有用么?如何区分一个好的程序员和很差的程序员呢?算法
——P1 编程
疑问1:学习算法和数据结构对于一个之后不从事计算机理论研究的人有多大用处?安全
想法:因为本身对算法的兴趣并不深,本身之后确定不会从事计算机理论研究方面的工做,更不可能研究出一个新的算法,更况且如今不少算法都实现了,只要会调用就好了,我以为这没什么问题。可是人人都说算法很重要,因此我对算法也挺重视,数据结构等专业课都听得很认真也取得不错的分数。可是这样到底够不够呢?对于之后不研究算法理论的人学习数据结构和算法又有什么用处呢?至少到如今我作一些小项目就彻底没感觉到算法和数据结构的重要性,多是我资历尚浅吧。我百度了一下算法和数据结构的做用,知乎上的大神都认为数据结构是编程最重要的基本功没有之一,https://www.zhihu.com/question/29587605这是我看到的一些回答,我对其中一个映象比较深入:虽然工做了之后根本就用不到那些书中的讲的二叉树、图、排序算法等,更重要的是你要学习一种思想:如何把现实问题转化为计算机语言的表示。《数据结构》这门课其实会潜移默化的影响你的逻辑思惟。看了这段话后,我认识到了学习数据结构和算法的意义,但我仍不知该把算法放在哪个位置。数据结构
书中引用:IT专业的大学毕业生找工做时声称:我精通Java,会用C++写“Hello World”程序,我懂软件工程,我画了不少图,写了不少文档,最后得了很高的分数......这些同窗是真的懂软件工程,是一个合格的软件工程师么?框架
——P8 数据结构和算法
疑问2:在大学里要作到什么程度,毕业后才算是一个合格的软件工程师?工具
想法:引用中描述的同窗确定不是一个合格的软件工程师,由于他不懂软件开发流程,也没有项目经验。可当代不少大学生毕业后就是这种状态,由于他们缺少项目实践的经验。我不想成为这样的人,因此对项目实践很看重,认真对待老师平时布置的小项目(好比作个新闻管理系统),加入工做室为学校作一些网站,但就算是这样,我以为本身毕业后仍然距离一个合格的工程师很远。但愿老师能给些建议和方向,要想毕业后成为一个合格的软件工程师,在大学里我应该作出些什么程度的项目来?要达到怎样的水平才算基本合格?我会努力靠近的。单元测试
第2章 我的技术和流程学习
书中引用:单元测试应该集成到自动测试的框架中:另外一个重要的措施是要把单元测试自动化,这样每一个人都能随时、随地运行单元测试。
——28
问题3:如何实现单元测试和回归测试的自动化?
想法:读了第2章后我知道了单元测试和回归测试的做用,而且认识到测试的完整性在整个软件开发中的地位,之前并无认识到测试时代码覆盖率等问题,只是简单地功能实现(如增删改查)测试经过就算过了。但文中总提到测试最好要自动化,这样可以快速运行全部回归测试,可自动化是指什么,是指用相似于Junit的工具吗?若是是这样,测试的数据仍是要本身写吧。
书中引用:你们也要注意避免没有作分析就过早地进行“效能提升”,若是咱们不经分析就盲目优化,也许会事倍功半。
——34
问题4:什么阶段最适合“效能提升”?
想法:在作一个项目时,从软件工程的步骤来看彷佛并无“效能提升”这个阶段,只有最后的“提出过程改进计划”,这个算是在进行效能分析吗?效能分析通常是把整个项目基本完成后再进行的吗?若是是这样对效能分析会不会有较大的难度呢,毕竟项目已经基本完成了,再改代码可能有“牵一发而动全身”的风险。“效能提升”的最佳时间是什么阶段呢?我的不太认同放在最后。
第16章 IT行业的创新
书中引用:不但大众不喜欢创新,甚至连创新者本身都不例外,有些创新者甚至恨创新。
——348
问题5:创新真的要顾及到一部分人的利益吗?
想法:书中提到大众甚至连创新者都不喜欢创新,归根结底是他们的利益受到了威胁,就如法国的自动织布机威胁到了广大工人的利益,于是一开始受到了极大的阻力,可最终织布机仍是被社会承认了。咱们不能否认织布机的出现形成了大量工人的失业,可它却实现了生产力的飞跃,推进了社会的发展。那么创新真的要顾及到一部分人的利益吗?我以为是顾及不到的,任何事物都有其两面性。只要能使社会进步,我相信其最后仍是会被社会接纳,尽管它一开始会遭受许多质疑与抵抗。正如阿里巴巴的淘宝,使大量实体店受挫,却促进了物流行业的发展,带来了大量新的工做机会,令人们的购买方式更加便利。再如中国大陆盛行的电子支付,虽给人们带来了便利,但也威胁着我的信息与帐户安全。所以我认为,与其考虑创新是否要顾及一部分人的利益,不如思考什么样的创新才是社会须要的,这样的创新更有意义且具更大的成功率。
以上就是我在阅读中提出的一些问题,感谢阅读!