IT求职中,笔试、面试的算法准备
PS:此文章为转载,源地址:http://www.newsmth.net/nForum/#!article/CoderInterview/849 作者应该是在美国进行的笔试面试,感觉面试的的公司也很NB,其准备过程很值得借鉴
原文如下:
其实早在8月份我刚来美国的时候我们就开始准备这个事情了。那个时候我通过她的朋友认识了一个在G公司工作的师兄,并且打电话聊了一下。
事实证明这个电话对于我后来找工作的过程有着至关重要的影响。师兄推荐了四本书给我:CLRS,Programming Pearls, Programming Interviews Exposed 和 Career Cup 150.
其实其中的三本我都看过,Programming Pearls也恰好是我为数不多的带到美国的技术书籍之一。八月份的时候我正在雄心勃勃打算读完Concrete Math的后半本,当时听师兄这么一说,正好给自己一个偷懒的借口,重新读读PP,编程序总比学数学容易,是吧。。
当时我正在思考的一个问题其实是如何把代码写得干净整洁。之前其实我在各种网站上做题也不少,但是给出的答案往往都是一坨sh*t一般的代码,面试中也很难在短时间内写出正确的、易读的东西——呃,直到几个月前我还是这个水平,是不是太逊了。。= =
当时重新读编程珠玑的时候,我突然从那个简单的二分查找的例子里面明白了维持不变量在写算法里面的意义。然后我用这个原则试着写了一下二分、堆排、快排、mergesort和kmp,然后就猛然发现牛逼了。。。
关于边界检查,我以前经常要么就是做得过少,要么就是做得过多,建议对于边界检查没有太多概念的童鞋参考一下glibc的strlen, strcpy, memcpy等函数,知道什么样的结果是适度的。
后来到了Pittsburgh之后,俺花了好几十大洋,是真的大洋,买了一本纸板的CLRS,美国的书还是挺贵的,以后谁要来最好还是想办法多带点吧,或者海运一些。。于是在准备简历之余我就开始第四遍或者是第五遍读这本厚书。
期间简历我准备得很差,估计这也是为什么amazon甚至没给我校园面试,在后来很久以后才从简历堆里把我翻出来。这个谁有经验的可以说一下。。
复习算法确实是很必要的一个工作。主要是因为很多不常用的算法会被我忘的一干二净。比如dfs找连通区域。全图最短路径。网络流。。然后我很英明地去看了看以前不是很熟悉的那些数据结构,比如Trie,比如Suffix Tree,比如Treap,Splay Tree等等。Trie值得好好看一下,因为大家经常考字符串处理,图算法也得多了解,因为重现率非常高。至于算法导论前几章的排序和查找。。那是基础。。必须得能倒着背出来(恩。。我不能。)
算法里面最容易在面试中重现的。。我感觉就是hash了。。恩,大家离开hash貌似都活不了的样子。。所以关于hash的各种特性和应用场景也要仔细研究一下。
复习完CLRS之后的一个多月里,事实证明我基本是在做无用功,我把cs:app重读了一遍,可是面试里面基本没人鸟这块的知识,当然关于page fault啊,stack啊heap啊这些玩意的基本概念是要有的,问起来不要露怯就好了。
这段时间里面我基本在topcoder上做练习题。250分的题目基本是1+1=2型,但是正因为简单所以可以练习如何把算法写得简洁正确。500分的题目有简单的又很难的,但是大体还是可以用的。这类题目的难度和面试基本很相近了。如果能在30分钟内完成的话,面试的时候至少速度不成问题。
后来就是cmu的校园招聘大会,一坨公司跑到学校里面练摊,一群学生穿上正装去投简历。。说实话作为一个码农我真不理解为啥要穿正装。。
投过简历之后我收到了m$和ff的面试通知,不过这都当后话了。
后面除了坚持在topcoder上练习,我还读了另外两本书,programming interview exposed和career cup 150。前者其实很扯淡,随便翻翻就好了,后面那本是真的应试宝典,虽然撞上的题目基本没有。。我面了这一坨,一共也就三道题撞上了,但是对于热身和适应难度绝对是极品,建议要面试的童鞋都翻翻。其中一些问题的解法都很tricky,对于将来现场能解决一些tricky的问题很有启发意义。
再之后我从topcoder转战了spoj,因为我比较喜欢那边的题目普遍输入输出都很简洁。。有兴趣的也可以去做两道试试。http://spoj.pl
IT求职中,笔试、面试的算法准备的更多相关文章
- leetcode 刷500道题,笔试/面试稳过吗?谈一谈这些年来算法的学习
想要学习算法.应付笔试或者应付面试手撕算法题,相信大部分人都会去刷 Leetcode,有读者问?如果我在 leetcode 坚持刷它个 500 道题,以后笔试/面试稳吗? 这里我说下我的个人看法,我认 ...
- 从头说catalan数及笔试面试里那些相关的问题 (转)
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11938973. 声明:版权所有,转载请注明出处,谢谢 ...
- catalan数及笔试面试里那些相关的问题(转)
一.catalan数由来和性质 1)由来 catalan数(卡塔兰数)取自组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项 ...
- php 笔试面试 总结
一次小小的笔试面试经历,虽然是一些简单的问题,但是自己在这儿总结一下,也查一些资料,得出一些较好的答案,也能帮助自己成长. 1.自己熟悉的http状态码及其意义 其实这个题答案随处可见.这儿也还是记录 ...
- 找工作笔试面试那些事儿(16)---linux相关知识点(1)
linux这部分的知识倒不是笔试面试必考的内容,不过现在很多公司开发环境都在linux系统下,一些简单的知识还是需要了解一下的,笔试面试中万一碰到了,也不会措手不及.作为菜硕的我,又因为读研期间的项目 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- 找工作笔试面试那些事儿(13)---操作系统常考知识点总结 ZZ 【操作系统】
http://blog.csdn.net/han_xiaoyang/article/details/11285485 上一节对数据库的知识做了一个小总结,实际找工作过程中,因为公司或单位侧重点不一样, ...
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
- 10个经典的C语言面试基础算法及代码
10个经典的C语言面试基础算法及代码作者:码农网 – 小峰 原文地址:http://www.codeceo.com/article/10-c-interview-algorithm.html 算法是一 ...
随机推荐
- [解决方案]vs2015无法解析外部符号__imp__fprintf和__imp____iob_func
转自:http://www.cnblogs.com/ubosm/p/5444919.html 使用vs2015编译ffmpeg的一个小项时,出现了__imp__fprintf和__imp____iob ...
- sql 保留两位小数+四舍五入
1. ROUND(该函数,只是负责四舍五入到两位小数,但是不负责截断 只留两位小数,例如下例:) 关于ROUND函数,我们平常理解为4舍5入,如: print ROUND(13.145, 2); 结果 ...
- 我理解的webservice是这样的
本文来自 --迹忆:http://www.onmpw.com/tm/xwzj/network_45.html 最近在工作中遇到这样的一个项目(暂且定为项目A),项目A本身是用PHP开发的,但是其数据是 ...
- [转]SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定
对普通开发人员来说经常能接触到上千万条数据优化的机会也不是很多,这里还是要感 谢公司提供了这样的一个环境,而且公司让我来做优化工作.当数据库中的记录不超过10万条时,很难分辨出开发人员的水平有多高,当 ...
- 给自己的XTC820摆拍一下。
上个月入手了捷安特的XTC820,始终没有时间为爱车拍几张照,今天凑着在办公室的机会,就随手拍了几张,展示一下XTC820.先给大家看图片,然后再分享一下当初我买它的原因以及车的规格. 下面就来简单说 ...
- TCP重传率高的监控
TCP重传率是对网络质量的一个体现,简单包装netstat -s的输出可以计算出TCP重传率.现成的脚本如下: #!/bin/bash export PATH='/bin:/sbin:/usr/bin ...
- T检验与F检验的区别_f检验和t检验的关系
1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...
- $.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解
[一]$.ajax()所有参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注 ...
- CentOS 7 Rescure
之前从来没想过会在Linux系统中使用这个东西-- 今天系统无法启动了!!! 一.开机进度条卡住了.查看一下字符卡在哪里了? Starting MySQL Community Server... 就是 ...
- C++学习注意点
1.cin,cout关同步再用,不然效率很糟cin,cout关同步再用,不然效率很糟cin,cout关同步再用,不然效率很糟.重要的事情说三遍.关同步代码:std::ios::sync_with_st ...