大家好, 我是程序员小吴. 12 月初我在 GitHub 上上传了一个仓库, 到现在为止获取了 6300 star, 下面和大家聊聊关于项目启动的初衷, 面临的一些困难和未来的计划.
「LeetcodeAnimation」的萌芽?
在刷 Leetcode 的过程中, 遇到很多有意思和有难度的题目, 有时候自己能做出来, 有时候需要看别人的分析才能解开, 但往往隔一段时间再去看原题的时候又是一头雾水.
这时, 我在考虑: 有没有一种方法可以把抽象的算法具体化, 生动化, 加深或者加快解题的思路?
「LeetcodeAnimation」的夭折?
想起去年曾用自己熟悉的编程语言开源过一个关于排序动画的项目(最近发现被人偷源码上架 App Store), 在 GitHub 上也获得了不少 star, 效果不错: 因为每次想起动画场景的时候就能知道排序的思路, 进而白板编程写成相应的排序算法代码, 因为这个能力, 在不少的面试的算法环节能轻松应对.
排序算法演示
项目 GitHub 地址: https://github.com/MisterBooo/Play-With-Sort-OC
Play-With-Sort-OC 地址 被别人偷上架的项目:)
于是, 尝试着将解题的思路用动画的形式记录下来.
一开始尝试像之前一样用 OC 语言编写动画, 但发现这样效率太低了, 一个简单的题目动画编写需要耗费几个星期的时间.
期间也学习过小程序, 打算使用小程序来显示, 可能功夫不到家, 技巧不太熟练, 效果也不理想.
小程序
百般尝试之后无果, 于是这个想法停止了很长一段时间, 期间自己依旧笨拙的刷着 LeetCode .
「LeetcodeAnimation」的开始?[PPT 做动画]
直到一个偶然的机会, 自己在使用 PPT 的时候发现 PPT 的动画很丰富, 使用技巧也不是很高深: 只要你的想象力够丰富, 只需要几分钟便能勾勒出思路动画.
于是, 经过一小段时间的学习, 加上自己的想象力, 马上做出了第一个动画.
第一个动画
可以明显的发现, 这个动画的交互与形状的设置并不是很好, 不过, 我认识到了: 用 PPT 动画来演示 LeetCode 解题思路的确行得通!
当然, 做 PPT 是个细致的活, 于是花了一些时间摸索 PPT 功能, 琢磨怎么把动画做的更好看, 思路展现的更加流畅.
「LeetcodeAnimation」的动画是如何构思的?[一个题目变成动画]
基本上一道 LeetCode 上的原题从选题到文章生成的步骤是这样的:
从基本熟悉知识点 (图, 树, 堆, 栈, 链表, 哈希表, 记忆搜索, 动态规划, 指针法, 并查集等) 中每个知识点挑选出几道经典的题目;
先自己审题, 做题, 然后查看网上有没有思路更加清晰的解题方式;
加上想象力.
比如该题用到了链表的概念, 那肯定动画就要有链表的形象;
比如该题用到了滑动窗口的概念, 那就需要用长方形来表示窗口.
比如该题用到了二叉树的概念, 那么就需要构造二叉树的图形.
其他的一些细节调整比如动画时间的设置, 动画出现与消失的方式, 这些就需要自己耐心细致的一帧一帧的调了.
「LeetcodeAnimation」的快乐与痛苦?[算法动图形成]
很多时候, 一道题目的解题只花费了几分钟, 但做出动画来却要划分一到两个小时不等.
自己是一个在职程序员, 工作也比较饱和, 动画的制作只能安排在夜深人静的时候, 在十一月份的时候经常忙活着做动画做到凌晨一两点.
这个过程痛快却快乐着, 毕竟, 这是做自己喜欢做的事情:)
「LeetcodeAnimation」的成果
12 月初, 将项目放到了 GitHub 上面去, 短短两天登上了 trending 版第一的位置.
项目第一 个人排名第一
到目前位置, 已经有超过 6300 的 star.
「LeetcodeAnimation」的长期计划?
正如我在 「LeetcodeAnimation」上写的: 我会尽力将 LeetCode 上所有的题目都用动画的形式演示出来, 计划用 3 到 4 年时间去完成它, 期待与你见证这一天!
所以, 基本上我一到两天都会制作一道题目的动画, 状态好的周末, 一天能做三四题:)
期间得到了很多读者的认可, 觉得这种动画的形式大大方便了对于 Leetcode 的理解.
与此同时, 有很多小萌新们觉得能不能从简单的数据结构开始, 同样用动画的形式去解析一下.
经过慎重考虑, 期间与「掘金」,「小专栏」等大佬们讨论之后, 觉得「用动画呈现数据结构与算法」这个想法很棒!
于是, 最近开始停止更新「LeetcodeAnimation」, 转为从简单的数据结构开始进行动画制作.
但不用担心「LeetcodeAnimation」会不会因此「太监」, 更新完数据结构与算法章节后, 立马恢复更新「LeetcodeAnimation」, 保守估计 2019 年会至少更新 130 道题目, 敬请期待:)
程序员小吴的 2019 ?
通过「LeetcodeAnimation」这个项目, 认识了很多的算法大佬, 有慕课网最受欢迎的 波波老师(liuyubobobo), 有大二就开始研究深度学习的学霸等. 在与他们沟通交流的过程中, 越来越体会到数据结构与算法的魅力, 也越来越用动力将自己的公众号更新下去:)
慕课网最受欢迎的波波老师
明年的事情挺充实的:
动画演示完「数据结构与算法」内容
将如何制作动画的过程录制下来, 让更多人参与进来
小专栏出一本小书
掘金出一本小册
「LeetcodeAnimation」至少更新 130 篇, 争取突破 20,000 star
2018,say hi say goodbye!
2019, 与君共勉:)
来源: https://www.cnblogs.com/fivestudy/p/10194221.html