工作中基本不接触算法, 跳槽时复习算法很痛苦

2018-10-10 16:41:30 +08:00
 haikuo93

工作三年,基本用不到面试中看到的所有算法, 连排序都没怎么用到过, 现在一看算法就头大, 你们平时会用到很多算法吗, 各种数据结构? 面试前怎么准备呢?

5558 次点击
所在节点    程序员
27 条回复
gowk
2018-10-10 17:25:43 +08:00
强迫自己看进去,有滋有味的学起来,不会数据结构和算法的程序员不是好程序员~
harde
2018-10-10 17:29:10 +08:00
不是吐槽,但的确想问问楼主,算法和数据结构都没用到你这三年都干什么了。。。。
qq976739120
2018-10-10 17:32:17 +08:00
我觉得原题那样的使用的确是没有的,但是思想是经常用到的,我最常用到的是 动态规划
qiyuey
2018-10-10 17:33:21 +08:00
@harde 高并发、大流量、复杂业务设计,都用不上吧
kljsandjb
2018-10-10 17:53:39 +08:00
多刷刷题其实感觉会不一样,你会觉得有所收获,哪怕做不出来你能看答案理解了也比不看好,当然最好还是自己先做出来,哪怕用最笨的方法
Raisu
2018-10-10 17:56:36 +08:00
看算法导论,一本解决
guolaopi
2018-10-10 17:56:48 +08:00
@harde 三年的增删改查你让我怎么用。。。。都扔给框架处理了
takato
2018-10-10 18:00:58 +08:00
我很难理解“不接触算法”这个概念。
毕竟做很多事情的时候其实都用得到的诶。
haikuo93
2018-10-10 18:04:42 +08:00
@harde 开发的工作基本都是在别人的基础上进行的, 没有从 0 到 1 开发过, 不管是新功能还是改 bug, 都不会有太多涉及算法的地方(我说的是相对复杂一点的算法或数据结构), 或者即使用到一些也是使用现有的库
Gea
2018-10-10 18:05:18 +08:00
@guolaopi 太真实了
woodensail
2018-10-10 18:07:09 +08:00
社招一般都不问算法了吧,除非是相关工作的或者去 google 之类的。
zhangZMZ
2018-10-10 18:12:44 +08:00
不知道各位品论区大佬工作中如何使用红黑树和排序算法的?随机举个例子?
paparika
2018-10-10 18:22:02 +08:00
头疼+1,主要是记不住算法的演绎过程。当然我知道又有人要说是我没真正理解。。。
haikuo93
2018-10-10 18:24:27 +08:00
@woodensail 一般的互联网公司基本都会问吧, 不然问什么
haikuo93
2018-10-10 18:28:36 +08:00
@Raisu 好的, 回去啃
shm7
2018-10-10 18:30:40 +08:00
@Raisu 算法导论里面有些没有的好吧

lz 多看看面试题吧,这个最快。

长久之计是多刷题,练练脑子,也会有机会接触
haikuo93
2018-10-10 18:37:48 +08:00
@kljsandjb 感觉一道题就能看一下午,甚至一天都不太能理解。。
woodensail
2018-10-10 18:40:38 +08:00
@haikuo93 问项目,还有一些实际工程难点,比如 tps 优化,前端优化,fail safe 之类的。以及有没有为团队做出过组件之类的贡献。
fatelovely
2018-10-10 18:41:14 +08:00
我也一直不能理解某些不需要对算法深入理解的岗位问算法问题的意义在哪儿,估计纯粹是不知道问什么好。

大部分开发岗位,对算法停留在「了解」就行了,也就是,我知道有这么个算法解决这么个问题,也知道它的利弊,但是具体实现我不清楚。工作中就算要用,肯定是用现成的库,有多少程序员会遇到非常特别的问题,需要自己动手写算法的?

我基本上每次面试都会事先声明:我是个工程人员,不是研究人员,算法细节我不清楚,也不感兴趣,但是我知道有哪些算法,可以解决哪些问题。
woodensail
2018-10-10 18:51:19 +08:00
fail safe 这块能问的可多了,比如后端的最终一致性实现,前端的自动重试。
其中前端的自动重试还有个坑,必须要加乐观锁。举个例子,有 3 个请求,其中请求 2 和 3 在请求 1 完成后并行执行。执行请求 2 时发生异常需要从请求 1 开始从头重试,当重试进行过程中,之前的请求 3 完成了并进行了后续处理,就会导致数据错误。
所以这种异步任务链重试机制需要上乐观锁,在重新发起新流程后,之前所有的请求全部会因为版本过期而被废弃。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/496388

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX