结束语|在技术的世界里享受思维的乐趣
下载APP
关闭
渠道合作
推荐作者
结束语|在技术的世界里享受思维的乐趣
黄清昊 · 业务开发算法50讲
课程介绍
讲述:黄清昊
时长09:01大小8.24M
你好,我是微扰君。
不知不觉,我们的专栏就要暂时结束了。
不知道你在学习的时候有什么感觉,这个专栏对我来说算是一个很大的挑战,长达半年的写作可不轻松,甚至可以说是“痛苦”的。
说这个专栏挑战大,主要因为涉及的内容广泛,如果你从头到尾跟完专栏也一定会深有体会。从最基础的数据结构和算法原理,到操作系统、计算机网络这样的计算机基础知识,再到解决真实生产环境下不同系统所面临的各种不同问题的算法,我们都有所涉猎。
学习了这么多不同领域的算法,相信你也能充分感受到我们一直在强调的观点:学习算法绝不只是为了应付面试,事实上算法在真实的生产环境中是有很大用处的。只不过很多时候,这些真实的算法问题比较复杂,比起业务问题也更为通用,所以有很多前辈们把这些复杂性都封装了起来,给了我们普通业务开发工程师们一个看起来简单的编程世界。
但如果我们想在技术的世界里走得更远,那么,勇于揭开这层漂亮面纱,直面系统中的复杂性,就是我们必须要迈出的一步。
但是作为普通的工程师,选择直面并不意味着之后的困难减少了,我们在深入学习的过程中可能会更“困惑”。在写专栏的时候,我也尤其有这个感受。
在开始写课程目录的时候,实际上我列出了 60 多个算法主题,觉得很值得讲、很值得学。但是编辑提醒我说,学习这件事,如果想持续地进行,必须要考虑到时间和体量。后来我和编辑一起来回迭代好几轮,才删减到 40 个左右。本以为好不容易课程框架通过了,课程设计后面就会是一片坦途,结果发现挑战依旧远超想象。
最大的困难就是在实际落地写的时候,我经常发现有些问题想要讲清楚,需要的篇幅比当初想象中要大得多,必须不断地对内容做修剪,力求在篇幅内讲清楚每个核心问题是什么、为什么有这样的问题、大致的解法是怎样的,尽量删减掉一些不那么重要的技术细节。
当然,最后的成品我还是比较满意的。今天回看前面的每一讲,虽然并不算太深入,但应该还是足以开拓你的技术广度,如果你想深入研究某个相关技术,现在估计也有点线索了吧。
值得讲的算法远比在专栏中讲到的多,但是我们都是在学习的路上,又有谁能走到尽头呢。
毕竟,计算机和互联网发展了这么久,不同场景下的技术问题本来就层出不穷。直到现在很多问题也依旧会拿出来被反复讨论,不断有更好更新的解决方法被提出,而未来,也必然会有各种各样新的问题被提出。
所谓,罗马不是一日建成的,整个计算机的世界正是这样演进了几十年。比如早期,计算机都是单机的,无论是计算能力还是存储能力都非常有限,我们依旧在这样的硬件基础上造出了非常复杂的系统,比如操作系统、文件系统、数据库等等,随便一个成熟的项目可能都有十几万行以上的代码;而现在,随着硬件能力的提升和数据爆发式的增长,在分布式环境下,我们面临的挑战当然会更大,除了要解决很多新问题,也要重新解决一些老的问题。
想解决这些问题,除了需要一些天才的想法,更大程度上需要程序员能对之前系统有深刻理解。但想一个人把这些问题全部涉猎是不切实际的,我们能做的、更应该花时间做的,就是通过了解和学习其中一部分经典问题,获得解决另一些问题的思路和方法。
而学习这些问题的时候一定要注意溯本求源,这才是学习最好的捷径,只有先搞清楚“为什么”才能真正搞清楚“怎么做”;这样再碰到新的问题的时候,我们才能站在巨人的肩膀上继续前行。
那过去几十年里,无数不同国籍的工程师和科学家正是这么做的,他们通力协作,一起打造了我们如此繁荣的计算机世界。
总的来说,虽然没有办法把前人的智慧在专栏中全部展现给你,不过你可以把这个专栏作为一个简单的算法索引,帮助自己更快找到感兴趣领域内的一手资料,比如论文或者项目源码,后续进行更深入的研究。希望通过这个专栏的学习,你能多掌握一些前人们解决不同问题的思考角度,至少,希望他们能给你的工作带来一些启发和乐趣。
在整个专栏的写作过程,除了“痛苦”和“困惑”,我也确实感受到了很大的快乐。
其中一部分快乐当然来自于完成专栏的成就感,无论是许多读者的订阅和留言,还是社群里大家的讨论,都让我感受到自己在做的事情是很有意义的。但更大的快乐还是来源于对知识的反复求证和探索(毕竟我更多时间在写:))。
专栏里很多主题的算法,我在工作中其实也没有太多机会使用,所以为了把问题讲清楚,在写的时候,我反复看了很多项目的源码、文档、博客,还有论文,力求将问题理解透彻。在这个过程里,我发现了很多以前没有注意到的细节,以及理解错误的地方,也对很多概念有了更系统的认知,可以说在欣赏前人的智慧之光中,我获得了无与伦比的快乐。
比如在讲字符串匹配的章节里,我第一次系统地梳理了各种求解字符串匹配的方法和思路,研读了 Boyer Moore 算法复杂度的证明,并自己做了实验对比了几种算法的效率,这让我对这个问题有了比以往深刻得多的理解,也更惊叹于 Boyer Moore 算法的巧妙和在实际生产环境下的高效性。不知道你在学习哪些章节的时候,有没有类似的感受。
在过去的工作中,我认识了许多不同的工程师,其中不乏优秀的同事,但也有很多同事对技术问题的理解不那么尽如人意,在他们身上,我观察到一个显著的区别:优秀的同事往往对技术本身有着更强烈的好奇,比如出现一些事故的时候,想办法快速解决问题之后,他们往往会做更深刻的复盘,去了解相关中间件或者代码背后的运行机制,甚至还会做一些分享;而技术一般的同事,往往懒于做更多的研究和探讨。
其实,对于大部分程序员来说,既然当初选择了编程这条道路,内心都是能找到对编程的兴趣,尤其是那些愿意投入时间主动学习的同学,没错,我说的就是在极客时间学习的你。
那如何能在日常工作中找到编程的乐趣呢?说实话,我个人觉得在日常的增删改查中找到乐趣还是比较难,因为这样的工作确实比较重复,这也是我自己花了很大的努力从前端转行基础组件开发的原因,但这个选择并不是适合任何人,毕竟大家的兴趣点不同。
但是我相信,对于大部分业务开发同学来说,只需要在日常开发中多多留心观察,
在碰到的坑的时候,多走一步,研究一下所用组件、框架或者语言背后的一些机制,很快你就会发现这些日常工作中能接触到的程序,其实设计得都非常巧妙;
然后,你再想一想如果由你来设计相关的组件又会怎么做,或者,对比一下以前见过的类似组件的工作原理有没有什么差异;
最后,和身边的同事一起讨论分享一下。
相信我,只要你坚持这样做,一定可以收获思维的乐趣,并且有一天你也一定会发现,自己对技术的理解进入了下一个层次,因为这些日积月累的知识,早就悄悄地融进你日常的代码和设计中了。
最后,谢谢你学习这个专栏,如果你在学习之后还根据思考题,自己做了一些相关的课外阅读或者动手实验,这些努力一定不会白费,这两件事在算法专栏的学习中其实起着更重要的作用。
专栏暂时结束了,但我们的技术之旅还在继续,这次的结束只是我们的新开始。我会继续更新若干篇更进阶的加餐和修订过去的章节(6 讲高手番外会在接下来的一个半月内持续更新),还有很多评论我还没来得及一一回复,这些我都会在未来一段时间内抽时间完成。
在专栏要暂时结束的今天,我也非常希望能听到你的声音,点这里参与问卷反馈。如果哪天你发现自己在工作中用到了相关知识点,也欢迎你常回来复习留言。未来,你一定会有更多的问题需要解决,希望有了这个专栏能让你解决那些问题时更加从容一些,也更加快乐一些。
在技术的世界里享受思维的乐趣,这是我对你最大的祝愿,希望这个专栏可以帮助你更快地实现这个目标。
在技术的世界里享受思维的乐趣 这篇文章总结了作者在技术学习和思考过程中的心得体会。作者强调了学习算法的重要性,并指出算法在实际生产环境中的价值。文章还提到了技术领域的不断发展和变化,以及对技术问题进行深入理解的必要性。作者鼓励读者在日常工作中寻找编程的乐趣,通过深入研究和思考,不断提升自己的技术水平。整篇文章强调了对技术问题的好奇心和深入思考的重要性,以及在学习和工作中享受思维乐趣的意义。文章以鼓励读者在技术学习和工作中享受思维乐趣为主题,强调了技术学习的持续性和深入性。作者还表示将会继续更新更进阶的内容,鼓励读者在工作中应用所学知识,并期待读者的反馈和参与。整体而言,这篇文章通过分享作者的学习经历和对技术学习的态度,鼓励读者在技术领域中不断提升自己,并享受思维的乐趣。
分享给需要的人,Ta购买本课程,你将得18元
生成海报并分享
2022-03-17
赞 4
提建议
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
上一篇
40|垃圾回收:现代语言是如何自动管理回收内存的?
下一篇
期末测试|来赴一场满分之约!
全部留言(1)
- 最新
- 精选
- 雨落~紫竹2022-07-18越到后面 学的越仔细 有意思 看一些专栏就像是在印证自己的想法 感觉和作者共鸣6