Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【039 - 毕业总结】学习心得 #909

Open
plin005 opened this issue May 19, 2019 · 1 comment
Open

【039 - 毕业总结】学习心得 #909

plin005 opened this issue May 19, 2019 · 1 comment

Comments

@plin005
Copy link
Contributor

plin005 commented May 19, 2019

  毕业6年左右, 在工作中真真不需要使用到算法, 只是不断地谈业务需求, 实现业务功能, 产品上线, 自己是积累了一定的业务能力和一些管理经验. 但是有时静下心来, 对于一个程序媛来讲, 不由得觉得心虚. 于是决定还是要提升自己的代码能力和逻辑思维能力. 看到极客大学举办的数据结构与算法课程, 毫不犹豫就报了名, 作为重拾算法的起点吧.

    一个多月的算法学习, 基本历程如下:
   首先, 阅读王争老师的<<数据结构与算法之美>>专栏, 该专栏对数据结构和算法的讲解确实很细致, 既简易清晰, 又不乏有深度. 对于数据结构与算法基础为0或相关基础比较薄弱的初学者, 确实是首选, 学习起来也不会枯燥乏味. 每每了解一种数据结构和算法之后, 就忍不住自己也推算一遍, 并用自己熟悉的编程语言(java)实现一遍. 然后再对照专栏中代码样例, 找出自己代码的漏洞, 再进行思考总结, 比如边界条件考虑不周; 或者是思维方式, 解题思路需要转变, 比如动态规划解决0-1背包问题, 用二维数组来记录每层达到的不同状态, 那么用一维数组是否也可以解决问题呢, 这样还可以提高内存使用率…等等.每每需要修改的时候, 却也是收获满满的时候, 也体会到数据结构与算法之美呀.

  在学习数据结构与算法过程中, 也会去思考一些工业实现, 去琢磨其中使用到的数据结构与算法, 比如Java库中的HashMap, jdk8之前,内部实现是由数组+链表来实现; 在jdk8中的实现,当链表长度超过8时, 链表将转换为红黑树; 再比如Arrays.sort的底层实现, 对于基本数据类型, 采用双轴快速排序… 而对于对象数据类型, 会根据排序个数, 又采用不同的排序方式, 比如小于47个对象数据的排序, 采用插入排序…大于等于47但小于286个对象数据…采用快速排序, 大于等于286个对象数据, 采用归并排序. 当然我了解的也只是冰山一角, 但数据结构与算法确实是了解系统底层架构的基础.

    当然, 从认识到会实际应用数据结构与算法, 还需要练习, 练习, 再练习. 虽然, 目前才开始刷leetcode, 各位大神说的没错, 多刷几遍, 也开始有些感觉, 而且刷题也是会上瘾….期待之后质的改变吧.

   另外, 参与极客大学课程, 感谢陈浩和王争老师的分享与激励; 在线下, 认识到了一群志同道合的同学, 一起学习数据结构和算法, 在工作中能接触到这么一个学习浓厚的氛围, 也是不容易的. 在这里, 大家互相分享, 互相激励, 什么时候学习都不晚. 前路漫漫, 极客大学也只是起点, 最终学会才是终点, 大家一起加油 ~
@hapiman
Copy link
Contributor

hapiman commented May 23, 2019

妹子, 不错, 加油.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants