分享

做程序员要背过所有的算法?(深入解读)

 樟榆原创诗词 2016-10-26

作为一个还没有毕业的菜鸟,现在对算法有些恐惧,有的算法会了一段时间后又忘了,有的干脆不会,各位已经工作的师哥师姐能不能大致讲一下你们工作中遇到的算法以及解决途径?

我觉得大部分人都差不多,算法该忘记的都会忘记;平时在工作中,我们用到的时候,会回头再看看,然后捡起来。但你笔试、面试的时候,可不能忘了,有一些基础的算法,还是应该记住的。

工作中涉及到的算法很多,我以游戏里面,随便举两个例子:

1、各种排行榜,各种排序算法,肯定是用到的

做程序员要背过所有的算法?(深入解读)

2、自动寻路算法

做程序员要背过所有的算法?(深入解读)

做程序员要背过所有的算法?(深入解读)

下面是专业回答

算法这个东西,不仅局限于数学模型,不是只有算法导论里边的才是算法;更宽泛的看,解决需求的方案、思路,都可以称为算法。

随着高级语言的流行,写代码变得更加容易,你不需要关心排序算法,你也不需要关心散列表的实现,照样写出过得去的业务逻辑;这些基础数据结构、基础算法,官方库或者第三方早就帮你实现好了。也就是所谓的轮子不需要重复制造,只管造汽车吧。

那么我们为啥还要学算法课呢?

作为一名程序员,如果只停留在知其然的境界,那么无论写上五年还是十年代码,能力始终就是半瓶醋;真正牛逼的程序员,对自己的程序可以了解到每个字节,当然,这个我也达不到^_^

不了解底层细节,不明白运行原理,这种情况堆砌出来的代码,很可能有严重的潜在bug。比如服务器程序,要求对性能敏感,要求健壮稳定,要求易于扩展,要求快速定位;如果服务器崩溃在一堆库函数里边,怎么办呢?

所以轮子不必重复制造,但制造原理还是要知道。

第二个,关于学过就忘。没必要恐惧,这些东西,我一样会忘,除非天天用到这些算法,反复强化记忆;实际工作中很少有这种情况,所以用的时候,再把他捡起来就可以了;前提是学的时候真正理解了,后面再捡才不费事。

第三个,关于工作遇到问题。举例,db里有数百万行user数据,当user登录游戏进程时,游戏进程需要从db中拉取user的数据,问题是游戏进程所在的物理机内存有限,怎么办?那么我就想到可以用lru或者lfu来解决,lru的具体实现未必记得住,但要知道lru的作用、应用场景。这些要慢慢积累。

以上,都是个人看法,权做参考。

您听懂了一点么?

问答社区地址:

http://ask./

我们的愿景,做大学生学习的点拨者,职场的引路人

做程序员要背过所有的算法?(深入解读)

欢迎加入QQ群:540040862,与我们随时互动

扫码关注我们:qbhere前辈在这儿

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多