下午面试出来,有种生无可恋的感觉

2016-06-07 19:42:13 +08:00
 fever105

楼主年后入职一家中型创业公司,上周某一天突然找我们项目组的人一个个谈话,说由于资金问题这个项目被砍掉了,团队当天解散。。。

于是才有了楼主今天下午到一家做 app 的创业公司面试的故事,上来就是一道算法题,楼主不出意料的不会做(不过后来我问过算法比较牛逼的哥们,说这题不难)。嗯,就这样,技术总监根本懒得见我,人事打发了我几句就走了。

肯定有人会说,你个搞开发的连个简单的算法题都不会,不见你也是应该的。完全同意,只是说下楼主的背景:

楼主热爱编程,也认同算法的重要性,只是觉得心里不爽,不会算法就意味着:我只要还在干这一行一天,就必须面面对今天这种人,随时可能拿算法甩我一脸,我心里好气,但又无可奈何。

请问算法如何学起,楼主文科生,数学不好,阶乘的概念都是最近才知道的,找了几本算法书,涉及大量数学公式,许多符号我都看不懂,有种无从下手的感觉,看哪本书好呢?需要复习下高中数学吗?我想过先看 可汗学院的视频,但是又不知道看哪些最有用,唉

16196 次点击
所在节点    职场话题
131 条回复
paperplane
2016-06-07 22:39:33 +08:00
掌握基本的数据结构与常用算法,能分析不太复杂的算法的复杂度,给出伪代码可以用语言实现。不是专门搞算法的,要求不高,但基本的要知道。

入门数据结构可以用《数据结构与算法分析( C 语言描述)》,前面帮你复习了数学知识。

算法导论其实不错,不过比较注重证明和分析,对数学要求也不高,基本的高中数学知识、高数、离散、一点概率论。不过不太适合初学者。初学的时候最好有个代码实现还有图例讲解,这点那本《算法( Java 实现》做的比较好。我记得也有个网站专门给你演示各种数据结构与算法原理。堆、各种排序什么的,一步步看图例演示比较清晰。

其实对于不是专门搞算法的,算法导论不用全看,什么斐波那契堆、 VEB 树,根本不适合放在一本“导论”书里。

学习算法导论可以看 mit 的 ocw 上的 6.006 ,看对应章节和讲义,做下练习题,敲点代码,基本就心里有数了。

速成角度讲,去 leetcode 上刷题,看看《剑指 offer 》。但是最基本的算法功底要有,不然刷题也无从下手,看书也看不进去。
sexoutsex2011
2016-06-07 22:43:40 +08:00
qq2511296
2016-06-07 22:45:57 +08:00
算法 底层 面试就喜欢问这些 进公司 大部分人 不还都是在写增删改查吗?
我跟楼主情况差不多,算法、数据结构那些不懂,面试很吃亏,我也在补这块
目前我也在找工作,同 iOS ,同样也是公司把移动端项目砍掉,项目组解散,哎 iOS 现在真心不好找工作
推荐一本书《啊哈算法》一本很有意思 生动的讲解算法的书 通俗易懂。我也是今天才知道这本书
fyooo
2016-06-07 23:06:29 +08:00
我打个岔,最近看到很多 v 友反映项目关闭,不知道是不是错觉
hackpro
2016-06-07 23:25:12 +08:00
如果你不致力于算法研究,短期内刷题就好了
大多数公司面试只是希望你熟练常用的数据结构基础和经典算法,不想你重复造轮子而已
ipconfiger
2016-06-07 23:26:05 +08:00
想想高考考场上出来的学生, 世界还是有希望的
Mutoo
2016-06-07 23:33:43 +08:00
《算法导论》比较难懂,入门推荐《算法概论(Algorithms)》,国外本科比较经典的教材。
kingzeus
2016-06-08 00:03:24 +08:00
其实作为程序员,平时的工作用的都是标准库里面的算法.很多时候,你只需要使用,但是并不需要理解内部的实现过程.

我被面试的时候也是讨厌算法题的, 但是我面试别人的时候肯定也会出算法题.那么为啥面试的时候需要考算法?

我个人的理解是:
1,算法可以很方便衡量一个人的专业功底.面试的时候,你没有足够的时间去了解一个人的水平,那么常用的算法就能很好的展现一个人的功底,特别是毕业生,项目经验都不足的时候,扎实的基础就显得更加重要了
2.描述一个算法的实现过程,其实是衡量一个程序能否用程序员的思维和别人交流的过程.如果你连基本的数据结构,算法都不能理解,那么以后的交流就会存在一定的障碍,没人喜欢一个猪队友的.
3.一些算法题其实只是用来考察你的解题思路,以及给你提示之后你能否逐步优化你的实现过程,这个过程中,算法本身其实已经不是最重要的了
starcraft
2016-06-08 01:00:25 +08:00
面试考的这些东西 说是考察什么逻辑思路、智商,我是真不信。唯一的目的应该是证明你大学有在看书,具备良好自学能力。
markx
2016-06-08 02:21:35 +08:00
可是面试很多都考算法题啊。
firebroo
2016-06-08 07:49:12 +08:00
剥去网络,操作系统,算法和数据结构,就真的只剩下增删改查了(🐴农
changwei
2016-06-08 07:52:05 +08:00
和楼主有同样的感受,我觉得原因应该是因为设计模式那些东西太过于宽泛,答案界定模糊,不适合进行考试或者面试,而面试官基本上除了这种考试以外也想不出其他更轻松简单的办法来筛选人才了吧。。。
josephok
2016-06-08 08:10:23 +08:00
先把离散数学学了。
vinceguo
2016-06-08 08:29:19 +08:00
并非嘲讽,说算导难的都是一帮弱鸡
zacard
2016-06-08 08:52:37 +08:00
先别看《算法导论》。我前 10 页边看边翻大学数学边上网查,还是没有看明白。。。之后,你懂的。
lijsf
2016-06-08 09:01:51 +08:00
数据结构是基础,算法是提高。基础数据结构如表,树,图, hashtable 是必须掌握的吧?你既然喜欢 KR 的 C programing language ,那么用 C 或者你熟悉的语言把常见的数据结构实现一遍不难吧?然后算法,基本算法就是算导的前 4 章,加 6 , 7,8,10 , 11,12,15,16 章,前四章理解复杂度的概念,会分析一个算法的复杂度,这是最基础的,否则给你一个算法,一个库,你都不能评估这个算法,库的极限,缺陷,适用场景在哪里,怎么去做架构设计?库很多,但不见得每一个都适用所有场景。后面几章是常见的算法,看完了,自己实现一遍,课后题做一做,一般面试的算法大部分都没大问题了。最后的提高就是算法设计了,这个就是日积月累,多思考了,多刷刷题,长进还是很大的。
arens
2016-06-08 09:09:53 +08:00
学开发不难,专注开发难,为什么呢,算法不会怎么做程序员?行业一直在讨论开发泛滥,难道说的根本不是这个问题吗,学会开发技能不是全部,就好比你能在一张纸上画出花来,就是画家了吗?
Ixizi
2016-06-08 09:11:01 +08:00
一般都是睡前看算法导论。。
expkzb
2016-06-08 09:12:27 +08:00
@SuperMild 会英语,有能把事情描述清楚的能力就行,大多数情况下不就是一个翻译么
tabris17
2016-06-08 09:15:01 +08:00
没关系,找个不考算法的公司面试

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

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

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

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

© 2021 V2EX