为什么学习这个:
- 大厂(BAT,Google,Facebook)面试,都喜欢考算法、让人现场写代码(看中长期潜力,能解决实际工作问题)
- CRUD业务开发工程师(数据结构与算法能评估性能)
- 基础架构研发工程师,达到写出开源水平的框架(各方面细节)
- 对编程还有追求?不想被行业淘汰?那就不要只会写凑合能用的代码
个人总结上面原因:
- 工作需要,特别是大公司对计算机内功要求高
- 个人技术成长需要,提高代码水平,写出质量高的代码
作者提到的技术名词:
- Spring,RPC 框架
- 消息中间件
- Redis (Key-Value 数据库 )
- 跳表,链表,二叉树
- 大 O 复杂度分析,快排
- 人工智能,区块链
疑问:(提问老师)
- 什么是业务开发工程师、基础架构研发工程师?
- 性能和资源的消耗指什么?
- 业务开发中的各种框架、中间件和底层系统,这些名词在开发中怎么理解?
- 99% 响应时间什么意思?
- 性能到底指什么?性能跟数据结构算法有关系?
- 初级工程师,资深架构师,怎么评定自己在大厂的级别定位?什么水平能达到,怎么自我评估?
- 每个项目都是重复地堆砌业务逻辑而已,完全没有难度递进,看不出有能力提升?自己如何摆脱这种困境?
- 面对的是千万级甚至亿级的用户,开发的是 TB、PB 级别数据的处理系统 ,平时如何模拟这种情形?
- 性能几乎是开发过程中时刻都要考虑的问题。怎么时刻考虑性能问题?
反思:
- 何为编程能力强?
皮一下:无所不能,哈哈哈哈
课后思考:
- 你为什么要学习数据结构和算法呢?在过去的软件开发中,数据结构和算法在哪些地方帮到了你?
感觉自己这方面欠缺所以想学,夯实基础。
过去的开发中,我理解的数据结构就是数据类型到底是int,还是string,还是其他的。算法,听过一个朋友讲算法不难,算法就是我们为实现一个功能去设计程序走向的一个逻辑。
课堂总结:
- 计算机基础很重要,就是前面提到的基础课程,
- 建立时间复杂度、空间复杂度意识,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,
- 根据作者讲解的,感觉数据结构和算法跟性能有很大关系。
10.16周三学习总结:(可以更好)
- 10.16学习内容:文档,音频都认真看了,听了,晚上时间晚了没有写博客,(10.17完成并发布博客)
- 如果每天这样,会发现,进度实际是落下的,
- 给自己加油打气!可以更好,更自律!