书籍、课程速读提问:《文献管理与信息分析》、《构建之法》、《深入理解计算机系统》。《从问题到程序》还未读。
《文献管理与信息分析》
本课程主要是笔记。网易云课堂的已经下架,以下链接可以学习:
- 1.四大工具:搜索引擎、RSS(简易信息聚合)、好用的笔记软件(为知笔记等)、思维导图。
- 2.搜索引擎常用的有:google、baidu、bing、sogou等。 google搜索在国内不好用,但是google是时效性最好的是英文网站。 个人经验:谷歌学术可以通过镜像进行访问。
- 3.本地搜索everything,我使用的是wox,将everything作为插件来使用,使用“alt”+空格快捷键可以打开。
- 4.高效检索: 快速尝试,不断优化:增加、减少或者转换关键词。 宽泛检索,逐步精炼:在结果中进行再次检索。 精确检索,直达结果。
- 5.搜索从一键式搜索进阶时,可以用基本逻辑关系or、and、not等。 高级搜索阶段使用搜索命令有很多: filetype:搜索PDF或者PPT(注意:要用英文的冒号,前后无空格),搜索不同类型的文件,文本文件、数据库文件等等。 site:指定在特定的网站进行搜索 site:+网站名称,例如site:edu.cn。 intitle:标题中包含某关键词。 allintitle:这些关键词必须在标题中全部出现。 nurl:网址中包含该内容的网页。 intext:在正文中出现的内容。
- 6.搜索文献可以先开始从综合性搜索引擎,在web of sicience,scopus文摘型数据库找到相应的专业词汇,再在较为专业的数据库中进行搜索。
- 7.中文数据库主要有知网、万方、维普、超星。知网相对较全,用户量较大;万方在医学、人文社科类占优;维普检索不好,个人使用体验也不好;超星致力于电子书(超星发现,超星读秀)。
- 8.RSS可以帮我们追踪到最新资讯,RSS起到一个新闻聚合作用,避免上多个网站,一站式阅读。
- 9.为知笔记可以用于网页资料收集,微博收集、记事和灵感记录、实验室内部协作、碎片化时间的有效利用等。 个人是使用过有道云笔记,主要目的是使用OCR识图功能,总体来说使用体验很好,在网络不佳时,无法进行同步,不能够做某些操作(比如识图)。
- 10.文献管理软件Endnote,中文的Note Express,文件管理Total Comander,引文分析工具histcite,思维导图。
- 11.使用云笔记一类、微软office、WPS、网盘类工具进行团队协作办公。
- 12.发表论文的四个原则是新颖性、排他性、专一性、准确性。
《构建之法》
- 第 1 章 概论 软件 = 程序 + 软件工程,本科时期我们的编程都是个人编程,没有很多的团队编程实践经验,研究生阶段如何培养这方面的能力。
- 第 2 章 个人技术和流程 在团队中发挥作用,需要个人能力,对自己的工作负责,做好单元测试、回归测试,效能分析的方法也需要掌握。
- 第 3 章 软件工程师的成长 如何避免自己进入课后题2中那种进退两难的境地?
- 第 4 章 两人合作 合作过程中,发现对方比较,比如代码细节不注意等,时间成本太大,这种时候还有合作的必要么?要怎样使自己能把精力放在软件的实现上?
- 第 5 章 团队和流程 在实际的项目开发中,很多时候项目组中技术实力极不平均,管理流程也很混乱,如何适应或者改变这种团队?
- 第 6 章 敏捷流程 在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用的状态。那么什么时候适合选择敏捷?
- 第 7 章 实战中的软件工程 如何在一个纪律松散的团队中实施MSF?
- 第 8 章 需求分析 需求分析是时,进行问卷调查或者其他与用户直接接触的方式,如何使对方不会产生反感而给予不真实的回答?
- 第 9 章 项目经理 PM需要会写代码,有文字功底、有大量的阅读、有领导力等各个方面的能力。但是贪多嚼不烂,技术好的大牛工程师凭什么听服于PM的安排呢?
- 第 10 章 典型用户和场景 用户的需求描述可能并不能直观地反映出来,由于传达或者技术方面的问题,经常会跟用户实际情况大相径庭,如何获得真实、典型的用户类型。
- 第 11 章 软件设计与实现 “小强地狱”是正确的吗?或者说在什么情况下是正确且行之有效的?
- 第 12 章 用户体验 用户体验和实际功能哪个更重要?针对不同的用户类型,两者是否有优先级的变化?
- 第 13 章 软件测试 本章总结了各个阶段的测试,这些测试中哪个是最重要的?或者说哪个优先级更高?
- 第 14 章 质量保障 软件工程中,能够有实时的反馈是很重要的,有些管理层认为测试用处很小,我们是否应该向测试岗位发展?
- 第 15 章:稳定和发布阶段 如何尽量避免“末端治理”?
- 第 16 章: IT行业的创新
- 第 17 章:人,绩效和职业道德
《深入理解计算机系统》
- 第一章 计算机系统漫游 这样理解amdahl定律是否正确? 在进行性能优化的时候,应该优先对能够给系统带来更大加速比的部分进行优化,获得更大的效益比。
- 第二章 信息的表示和处理 数据类型的转换是一个很常见的问题,比如进行大数加减时,可以把每一位数字转换为字符,进行简单的运算,那么对于复杂的运算应该如何考虑呢?
- 第三章 程序的机器级表示 除了C语言的其它语言如何转换为汇编语言?
- 第四章 处理器体系结构 本章没有什么理解,暂时还提不出来问题。
- 第五章 优化程序性能 程序的优化可以通过手工改变代码结构,优化算法效率和数据结构,提高执行效率。对于在用户空间层次的优化,如何取舍时间复杂度和空间复杂度?某些我们需要用到的功能可能已经有库函数包括了,怎样才能熟悉各个库函数所包含的功能实现?
- 第六章 存储器结构层次 除去物理销毁,如何100%确保删除的文件无法恢复?
- 第七章 链接 静态连接和动态共享链接在具体的情况下如何选择?
- 第八章 异常控制流 多个并发发生的信号由于有待处理信号可能会被阻塞,后面的信号会丢失吗?
- 第九章 虚拟内存 内存碎片整理频率是怎样的?能否最大化利用内存?
- 第十章 系统级I/O 暂时没有深入了解。
- 第十一章 网络编程 socket的使用还没有掌握。
- 第十二章 并发编程 多处理器下,信号量的使用是否要更加注意?工作方式与单处理器有何区别?