V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
CoderOnePolo
V2EX  ›  程序员

21 天,在 Github 上获取 6300 star

  •  6
     
  •   CoderOnePolo · 2018-12-29 10:30:16 +08:00 · 8998 次点击
    这是一个创建于 2185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知不觉在 V2EX 待了两年多了,在这里看到了很多个创意与想法,自己也在这里收获了许多的认可,感谢 v 友。

    12 月初在 github 上启动了一个叫做「 LeetcodeAnimation 」的项目,第一时间在这里宣传,靠 v 友们的第一波 star,冲上了 trending 榜,再次感谢:)

    下面和大家聊聊关于项目启动的初衷、面临的一些困难和未来的计划吧。

    「 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,与君共勉:)

    49 条回复    2018-12-30 11:25:57 +08:00
    privil
        1
    privil  
       2018-12-29 10:33:21 +08:00
    厉害了!
    hackerang
        2
    hackerang  
       2018-12-29 10:33:22 +08:00
    牛皮!支持!
    hflyf123
        3
    hflyf123  
       2018-12-29 10:35:08 +08:00
    支持,动画非常生动形象
    CoderOnePolo
        4
    CoderOnePolo  
    OP
       2018-12-29 10:35:41 +08:00
    @privil
    @hackerang 谢谢,一开始全靠 v 友的支持冲上 trending 榜后,看到被认可,我才能坚定的做下去
    CoderOnePolo
        5
    CoderOnePolo  
    OP
       2018-12-29 10:36:18 +08:00
    @hflyf123 感谢支持
    ZehaiZhang
        6
    ZehaiZhang  
       2018-12-29 10:37:05 +08:00
    star 了,超棒,顶
    luosuosile
        7
    luosuosile  
       2018-12-29 10:37:44 +08:00
    创意的力量?,idea 不算新,但是没发现有多少人这么做
    hei1000
        8
    hei1000  
       2018-12-29 10:46:03 +08:00
    支持一下
    xiaozizayang
        9
    xiaozizayang  
       2018-12-29 10:47:59 +08:00
    波波老师粉丝群群友路过支持打 call
    lvxiang119
        10
    lvxiang119  
       2018-12-29 10:50:45 +08:00
    加油哦~~
    zdl0929
        11
    zdl0929  
       2018-12-29 10:55:01 +08:00
    支持,很厉害
    ppdudu
        12
    ppdudu  
       2018-12-29 10:57:56 +08:00
    支持!牛皮
    zhuoyan
        13
    zhuoyan  
       2018-12-29 10:58:57 +08:00
    支持
    duowb
        14
    duowb  
       2018-12-29 11:01:44 +08:00
    支持
    ayase252
        15
    ayase252  
       2018-12-29 11:02:09 +08:00 via iPhone
    很厉害,感觉用 PPT 搞动画工作量实在大。
    gdky005
        16
    gdky005  
       2018-12-29 11:05:45 +08:00
    点赞
    zhuly09
        17
    zhuly09  
       2018-12-29 11:06:04 +08:00
    支持
    DR0011
        18
    DR0011  
       2018-12-29 11:07:24 +08:00
    膜拜大佬
    SupperMary
        19
    SupperMary  
       2018-12-29 11:10:46 +08:00 via Android
    支持一下
    SteveZ
        20
    SteveZ  
       2018-12-29 11:11:15 +08:00
    star 了,支持大佬
    mathzhaoliang
        21
    mathzhaoliang  
       2018-12-29 11:13:54 +08:00
    开头英文版链接直接写 English VERSION HERE 就可以了。 而且我建议把 README 设为英文版,在开头加个中文版链接。毕竟英文受众确实更多。
    atonku
        22
    atonku  
       2018-12-29 11:16:09 +08:00
    大佬厉害了,我要抄你的创意!
    bonfy
        23
    bonfy  
       2018-12-29 11:17:44 +08:00
    支持 Leetcode 做动画,这个是第一次见

    数据结构 做 动画的 国外见过还满多的,甚至还见过 代码 联动 动画的

    我还是 期待你的 Leetcode 动画
    Donne
        24
    Donne  
       2018-12-29 11:31:26 +08:00
    有点东西的
    jruif
        25
    jruif  
       2018-12-29 11:35:55 +08:00
    很新颖的开源贡献,直接拿代码上 app store 就太恶心了
    zhuoyan
        26
    zhuoyan  
       2018-12-29 11:47:59 +08:00   ❤️ 1
    想起以前收藏了个数据结构和算法动态可视化网站 https://visualgo.net/zh
    radiolover
        27
    radiolover  
       2018-12-29 12:32:32 +08:00   ❤️ 2
    维基百科在 15 年前就有相关的演示动画了。
    国人热衷这个,还不是因为最近几年的面试套路。
    所以啊,本质上还是浮躁
    a852695
        28
    a852695  
       2018-12-29 12:36:36 +08:00
    太支持了,能将枯燥的算法动画化,本身就是一个非常难得事情
    dacapoday
        29
    dacapoday  
       2018-12-29 12:46:45 +08:00
    第一次看到国人弄这个,python 源码就自带一个 sort 可视化例子 Python36\Tools\demo\sortvisu.py
    @radiolover #27 浮躁是一方面,也说明 IT 在国内的热门程度。可视化做出来容易,做到直观易懂,尤其是没常识的初学者易懂很难。
    zhy
        30
    zhy  
       2018-12-29 12:47:18 +08:00
    赞!怎么做动画是个问题,谁来发明个动画的语言😂
    wxl1380610
        31
    wxl1380610  
       2018-12-29 13:05:34 +08:00
    支持一下
    HeliumTang
        32
    HeliumTang  
       2018-12-29 13:26:59 +08:00
    一看到楼主帖子就觉得和 liuyubobobo 老师的课很像,后面果然老师也出现了。支持楼主
    SCaffrey
        33
    SCaffrey  
       2018-12-29 13:27:47 +08:00 via Android
    动画其实没有 visualgo 实用,不过能做出来也很不容易。加油!
    weiliangweiliang
        34
    weiliangweiliang  
       2018-12-29 13:40:58 +08:00
    楼主加油 正好需要好好学习下
    glfpes
        35
    glfpes  
       2018-12-29 14:08:07 +08:00
    @zhuoyan 你给的链接这个真的是太棒了
    twttwt
        36
    twttwt  
       2018-12-29 14:11:27 +08:00
    支持一下
    natforum
        37
    natforum  
       2018-12-29 14:13:53 +08:00
    膝盖送上
    HeartJ
        38
    HeartJ  
       2018-12-29 14:18:23 +08:00
    支持一下,赞
    kawkeye
        39
    kawkeye  
       2018-12-29 14:20:10 +08:00 via Android
    很不错😊,已 start,持续关注中
    spark104
        40
    spark104  
       2018-12-29 14:23:16 +08:00
    orz
    TonyShng
        41
    TonyShng  
       2018-12-29 15:36:20 +08:00
    真的做的很棒,赞
    lamada
        42
    lamada  
       2018-12-29 15:43:02 +08:00
    赞!
    zdd2389
        43
    zdd2389  
       2018-12-29 15:52:34 +08:00
    最早是在掘金看到大佬,那时候就关注了
    xlx
        44
    xlx  
       2018-12-29 15:56:00 +08:00
    如果能再加个语音解说就更屌了
    specita
        45
    specita  
       2018-12-29 15:57:55 +08:00
    国外网站这种方式见过,对理解算法挺有帮助的,支持一下
    dallaslu
        46
    dallaslu  
       2018-12-29 18:59:59 +08:00
    把算法实现库,一步转成动画展示,有没有可行性呢?
    dinghow
        47
    dinghow  
       2018-12-29 19:00:58 +08:00
    感谢分享,超级棒!
    tianzry
        48
    tianzry  
       2018-12-29 19:07:51 +08:00 via Android
    支持。感谢你
    kain007
        49
    kain007  
       2018-12-30 11:25:57 +08:00 via iPhone
    支持!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:10 · PVG 04:10 · LAX 12:10 · JFK 15:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.