Skip to content

Instantly share code, notes, and snippets.

@LiShuMing
Created January 17, 2014 02:01
Show Gist options
  • Save LiShuMing/8467239 to your computer and use it in GitHub Desktop.
Save LiShuMing/8467239 to your computer and use it in GitHub Desktop.
(1)算法导论学习笔记
实现功能:
二叉搜索树的建立、遍历功能
@LiShuMing
Copy link
Author

(2)面试准备

IT公司的笔试和面试的题量都不大(相对于企事业单位和银行动辄上百道选择题的题量,算是很少),一般十几道选择题,三四道大题就算题量很大。但计算机的东西实在又是太多,程序设计、数据结构、算法设计、操作系统、体系结构、编译原理、数据库、软件工程等分支,编译的话太难(一千个码农里也没几个人能在纸上写一个最基础的递归下降LLParser),软件工程、体系结构、数据库这些太水(不是说这些分支没用,而是它们很难考察,尤其对应届生来说这些都是些文字游戏,比如说面向对象的三要素五原则,有个鸟用),这么一排除,再把数据结构和算法设计一合并,就剩下程序设计、算法和操作系统。没错,这三项搞定,国内外IT公司通杀。

因此我的笔试和面试准备很简单,就是重温+突击程序设计、算法和操作系统。下面是我的笔试+面试准备内容:

程序设计:
1、把基础的数据结构的C语言实现在纸上写三遍以上,用我能想到的最精简最优化的方法
2、阅读CARM和TCPL,确保不会遗漏C语言的每个细节
3、重温之前自己做过的靠谱项目,并总结里面的关键难题和解决思路
4、重读Writing Solid Code、Elements of Programming、Practice of programming
5、阅读Science of Programming,做到可以证明自己的程序的正确性(前条件+后条件+不变式)
算法:
1、重读Algorithm Design Manual,重点阅读Dynamic Programming和Backtraverse
2、重读Programming Pearls和More Programming Pearls,并完成所有课后题
3、独立解决编程之美里面的题目(国内不少企业选题用的这本书)
4、完成Careercup里Amazon、Google和Microsoft这三个分类下面的前20页面试题
5、完成TopCoder的数十道D1L2~D2L1难度区间的算法题目

操作系统:
1、重读Modern Operating System,重温OS的核心概念
2、重读Computer Systems a Programmer's Perspective的关键章节,回顾里面的关键点
从七月底开始一直到十一月,花了接近四个月,很多东西都是一边面试一边准备:面试->发现盲点->修复盲点。

此外列出一些面试笔试题的资源,此外感谢基友@CodeWarrior之前的推荐:

1、Crack over the code interview
很靠谱的笔试面试指导手册

2、CareerCup
集齐了大量的真实笔试面试题,去外企的一定得看

3、TopCoder
如果不是ACM,练这个就够,其实面试也不会问太难的算法,哪怕是google

4、编程之美
尽管题目有些过时,但依然很实用,三星题目适合一个人仔细想
此外也说下一些不靠谱的资源:

1、IT公司面试100题
这个恐怕是国内传的最多的IT面试题
题目本身还可以,但那个出题人本身代码功底一般,给出的答案包含大量错误和缺陷,导致参考价值骤降
2、程序员面试宝典
翔一样的书,各种错误概念的堆积,如果一个错误给我一块钱,我能从这本书搞成万元户。如果去正规公司拿这本书准备,包你被黑出翔。
4、简历
在MS时,老大曾让我帮忙招几个靠谱的实习生,因此我收到了几百封简历,过了一把HR的瘾。这里说说自己在看简历时发现的几点:
1、可读性。不要用Word或压缩包,用PDF。此外在邮件里面用纯文本加上自己的简介,简化对方阅读的操作。要记住HR一天看的简历海的去了,压缩包是HR最痛恨的格式,因为解压了就不知道扔哪去了,有时干脆就不看;Word有版本问题,10的docx到了07往往被黑出翔。还有就是对方有可能不在PC上读邮件,因此纯文本的简介非常有必要。
2、群发。不要给人群发的嫌疑,看清楚目标职位和目标公司,我发的工程院招聘贴,收到的几百封简历里面有十余封是投到微软亚洲研究院,有几个干脆写“敬爱的某领导”,尼玛这不找抽么。

3,设计。特别提一下设计,很多电工的简历就是翔,丑的一逼,对齐没有,字体拙计,要点不明。再放到几百份几千份简历里面,活该你被忽略。建议所有电工投简历前阅读《给大家看的设计书》,至少搞明白里面的C.R.A.P四原则。不要小看设计的威力,在简历内容接近的情况下,良好的设计会大大加分。
4、篇幅。控制在一页以内。倒不是说不能写两页,而是HR没时间看两页这么多。而且就我看过的几百封简历而言,凡是超过两页的没一个靠谱,有这么高的先验概率,HR才没工夫一个个筛,反正中国有的是人。
5、重点。一定要有重点,做到让HR通过简历在20秒内确定你靠不靠谱。可以用加黑字体进行视觉引导。
6、措辞。甭搞“渴望得到这份工作”、“期待在xxx的工作机会”这样的句式,除了显得你低端,其它毛用没有。
7、别字。千万不要出现错别字,别字简历一般直接干掉。一页的简历都能出问题,一般不会靠谱。

因为看了很多不靠谱的简历,我对简历重要性的理解要比其他人深刻很多。首先花了一周把原来两页半的纸缩到一页内,然后找UI朋友帮忙调整了版式、缩进和字体,并找UX朋友帮忙进行重点调整以进行视觉引导,然后在PC和手机上进行了简历可读性测试。从而获得了100%的简历通过率。
此外,优先走内部推荐,这样最有效率,所以结识各个公司的朋友是非常有必要的。
海投简历既没必要也没效率,有这个时间不如改改简历来的实在。
相关书目:
1、给大家看的设计书,让你的简历看起来不像一坨翔。
2、Google Resume,如何写出靠谱的简历,进行靠谱的求职。
5、笔试
如之前所说,IT公司的笔试相对单纯(程序设计、算法和操作系统),而且范围较窄,有不少题目被出了一遍又一遍。因此市面上存在大量面试/笔试宝典之类的书籍和题集。
准备国内的小公司,这些面试/笔试题集还靠的住,因为小公司往往不会在招人环节上下太大的成本,因此他们的试卷一般就是东拼西凑的网上题目;对于大型公司来说,这些题库或是宝典就显的不够用了,尤其是外企。

所以不要把希望放在运气或是临阵磨枪上。就我自己而言,笔试准备了一个多月,尽管这个时间并不算多,但由于自己平时一直在阅读CS的基础书籍,并做了大量的纸上代码练习,因此笔试通过率也达到了100%(实际上是由于我笔试的公司题目都略简单,据说EMC和网易游戏的笔试难度很高,但当时由于时间冲突没有去成,因此搞出了这个数据)。

@LiShuMing
Copy link
Author

(3)注册TopCoder

https://www.topcoder.com/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment