数据结构与算法之美---01 为什么要学习?

为什么学习这个:

  1. 大厂(BAT,Google,Facebook)面试,都喜欢考算法、让人现场写代码(看中长期潜力,能解决实际工作问题)
  2. CRUD业务开发工程师(数据结构与算法能评估性能)
  3. 基础架构研发工程师,达到写出开源水平的框架(各方面细节)
  4. 对编程还有追求?不想被行业淘汰?那就不要只会写凑合能用的代码

个人总结上面原因:

  1. 工作需要,特别是大公司对计算机内功要求高
  2. 个人技术成长需要,提高代码水平,写出质量高的代码

 

作者提到的技术名词:

  1. Spring,RPC 框架
  2. 消息中间件
  3. Redis (Key-Value 数据库 )
  4. 跳表,链表,二叉树 
  5. 大 O 复杂度分析,快排
  6. 人工智能,区块链

疑问:(提问老师)

  1. 什么是业务开发工程师、基础架构研发工程师?
  2. 性能和资源的消耗指什么?
  3. 业务开发中的各种框架、中间件和底层系统,这些名词在开发中怎么理解?
  4. 99% 响应时间什么意思?
  5. 性能到底指什么?性能跟数据结构算法有关系?
  6. 初级工程师,资深架构师,怎么评定自己在大厂的级别定位?什么水平能达到,怎么自我评估?
  7. 每个项目都是重复地堆砌业务逻辑而已,完全没有难度递进,看不出有能力提升?自己如何摆脱这种困境?
  8. 面对的是千万级甚至亿级的用户,开发的是 TB、PB 级别数据的处理系统 ,平时如何模拟这种情形?
  9. 性能几乎是开发过程中时刻都要考虑的问题。怎么时刻考虑性能问题? 

 

反思:

  • 何为编程能力强?

   皮一下:无所不能,哈哈哈哈

课后思考:

  • 你为什么要学习数据结构和算法呢?在过去的软件开发中,数据结构和算法在哪些地方帮到了你?

  感觉自己这方面欠缺所以想学,夯实基础。

  过去的开发中,我理解的数据结构就是数据类型到底是int,还是string,还是其他的。算法,听过一个朋友讲算法不难,算法就是我们为实现一个功能去设计程序走向的一个逻辑。

 

课堂总结:

  1. 计算机基础很重要,就是前面提到的基础课程,
  2. 建立时间复杂度、空间复杂度意识,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,
  3. 根据作者讲解的,感觉数据结构和算法跟性能有很大关系。

10.16周三学习总结:(可以更好)

  1. 10.16学习内容:文档,音频都认真看了,听了,晚上时间晚了没有写博客,(10.17完成并发布博客)
  2. 如果每天这样,会发现,进度实际是落下的,
  3. 给自己加油打气!可以更好,更自律!

 

posted @ 2019-10-17 13:55  狼性  阅读(152)  评论(0编辑  收藏  举报