一同分享编程是种快乐  

    2009早已过去,但那清晰可见的足印,在背后的弯曲小路仿如昨天才走过。技术人员的找工之路并不平坦,看过各样的风景,受过各种打击,也收到过意外的惊喜。找工之路,我肯定不是成功的那个,但我应该是经历非常丰富的那个。笔试,面试这些不在话下,霸笔,霸面也是经常的事情。“赢在中国”里有一条衷告:“要想进步,就只有吸取教训,成功的经验都是歪曲的,成功了,想怎么说都可以,失败者没有发言权,可是,你可以通过他的事例反思,总结。教训,不仅要从自己身上吸取,还要从别人身上吸取。”在2010的开始,写下这篇博文,希望对即将毕业准备找工作的同学有一点帮助。

一、技术人员的定位

    对于这个方面,我并没有多少发言权。因为自己的兴趣,从找实习开始就不曾想过要走非技术之路。不过从周围的同学身上却发现这个其实是找工的起点,定位对于自己做准备很重要。其实定位一般来说也就是技术方向(研发,测试,技术支持等)和非技术方向(产品,销售等)。对于非技术方向我就不发表意见了。下面说下各个技术方向。

    研发:这是最多技术人员想要去从事的方向。技术含量稍微高点,做的事情比较有意思是大家的共同意见。不过这也给研发树了一个牌子“非技术牛人勿近”,换句话说就是这个方向是竞争比较激烈的。

    测试:想必大家都对这个方向多少有点听说了。技术含量低,做事是机械劳动,收获少的印象早已在毕业生心中烙下。但你千万不要以为这个方向是随便都能去的,测试也有测试的领域,如果你没准备过的话,那你去应聘测试就只能当个路人了。

    技术支持:介乎技术与非技术的方向。一方面,你得了解技术,知道是什么回事,该怎么解决问题;另一方面,你又得知道如何处理人际关系,因为跟你打交道的不仅仅是机器。

二、赢在起点

    想必大家心中都有自己的选择,咸鱼白菜,各有所爱,没有什么方向是最好的,只有最适合自己的。如果你选择了研发,那请往下看。没有的话看看当娱乐也行:P。

    在武侠世界里,高人往往是无招胜有招,这并不是因为运气好。《蜗居》里头有一段说令狐冲与岳不群的,令狐冲的剑是强,但那只是花招,岳不群的气功虽然开始效果不明显,但那都是深藏的功力,若不是岳不群误入岐途,假以时日令狐冲定不是他的对手。对于技术人员而言也一样,你不能只会几招花招,内功才是你笔试面试的制胜法宝。

    何为内功?李开复在华工演讲的时候直言不讳——算法是也。当然这个并不完全正确,操作系统,网络,编程语言等等都可以归入武功秘笈之列。本人武功虽不甚高明,但摸爬滾打半年多,对各门各派的武功也算是内中有数了。

    算法与数据结构:算法与数据结构永远是不可分开的两个概念。如何把算法比作船,那么数据结构便是承载它的海。先说说算法,在大部分的笔试中,一道算法题是必不可少的,一般是最后一道。而到了技术面,算法也是证明你能力的最好途径,当然也是大部分人最头痛的。算法难,十分难,很多人这么认为,我现在也还这么认为。但算法并不神秘,也不是不可攻克,特别是对笔试面试这类型的算法题目。这些题目考的无非就是排序,搜索,最值。解题方法或通过迭代,或通过回溯,道路各种各样。虽然这么说,但还是很难,排序包括快速排序,堆排序,桶排序,基数排序等等。企业要求的并不是你能说出这个排序是什么,而是你能轻松地在纸上把问题通过这些排序方法实现解法。如果你现在就能把各种排序在纸上写出完整的代码,那么这关你是没问题了。再说说数据结构,树是考得最多的,还有就是各种图。一般是和算法一起考,但有时候也会单独问,比如问红白树,面试官想要的答案很简单,就是它的好处是什么,有什么不足,并不要求你能把这个结构实现,仅仅能说出来就行。

    操作系统:要问什么与程序结合的最紧密,那就是操作系统。程序就像是扎根于操作系统的一棵树,没操作系统的观念就像是雾里看花,很多时候会被表象蒙骗。在操作系统的知识当中,最重要的考得最多的概念莫过于线程进程,包括线程与进程的区别,线程同步等。还有就是操作系统的基本原理。

    网络:这个概念很广泛,这里仅仅说下它的分支计算机网络。OSI 7层协议,socket,TCP/IP,IPV4的各种分类都是很重要的考点。

    编程语言:毫无疑问,这是C++与JAVA之争。曾经不止一次被问到C++和JAVA该选哪一方。我个人认为这得看你选择的就业方向,总的来说我还是比较偏向C++。毕竟大部分的公司,即使是使用JAVA的也都会提供一份C++的卷子。一般而言,JAVA注重应用,可以有很多框架。而C++更注重微观方面,比如指针,内存等。

三、武功秘笈逐本数

    在程序的世界里,门派武功各种各样。菜鸟往往一进来就矇了,实在是乱花渐入迷人眼。仰天长叹,敢问路在何方...其实,天下武功出少林,要是实在没想出要练哪门武功,那找本《易筋经》来苦练苦练准没错。下面逐本来数下C++派系的各本秘笈。

    《C++ Primer》:公认的C++入门书。但在我看来,拿这本东西入门并不好,想看到C++长什么样子估计已经白发沧桑了。厚厚的一块砖头,内容从最基础的概念开始,然后逐渐说到容器,模板,异常等。每章后面都有练习题,如果结合答案,边做边看收获会有不少。虽然题目看起来有点简单,当作巩固还是可以的。整本书要全部看完有点难度,基础的特别是汲及到原理方面的东西得仔细看,笔试往往就是考这些。

    《Effective C++》:外国人的作品,候捷的翻译。怎么说呢?你完全可以把它当作小说来看。这并不是指书的内容,而是书的风格语言。整本书大概分了50条条例,书也不厚,所以看起来会相对轻松。不过这本书你不能看完就放一边,得经常翻翻,看第一遍的时候很多东西其实是还没想清楚的。

    《深入浅出MFC》:这玩意初学MFC的千万不要看,越看越晕。不是说写得不好,而是你还没到那个level。在你还不知道怎么生成个MFC程序的时候,它已经在模拟MFC整个框架的运作了,看了肯定不知所云,刚刚还在燃烧的小宇宙瞬间就灭了。假如你不是初学者,而且想窥视一下被微软封装得面目全非的框架长什么样子,那就得好好看下这本书。书的内容大部分是用最简单的方式来模拟MFC的框架,代码有点多,如果看起来累大概看一下就可以了。理解MFC的消息机制是看这本书的重点,而且这也是MFC的难点所在,经常会在面试的时候被问到(假如你简历上说熟悉MFC)。

    《Windows核心编程》:这本书主要针对Windows操作系统,并且所有代码都是通过C++来编写。代码写得很规范,可以从网上下载了代码自己编译运行。不过你最好使用Vista或Win7系统,我使用XP环境来编译程序会出现某些函数不存在。当然这个是小数,无伤大雅。整本书的语言通俗易懂,就是厚度方面有点吓人...可以集中看内核对象与线程方面的介绍,其他的没空就略过。

    上面说的都是练底子的秘笈,对于急功近利的机会主义者来说自然有点只能远望的感觉。如果你既想马儿跑得快,又不想给马儿吃很多草,那就喂它一罐红牛吧。临阵磨枪,不快也光,下面这两本书很适合你。

    《程序员面试宝典》:不用介绍都听过它的大名了吧,凡找软件开发的人手一本,可以说是找工大军的Bible。书上记载了各类型的笔试题与面试题,题目并不难,只要有一定基础的就可以看得懂。把它当作找工的入门书很不错。

    《编程之美》:如果你想找百度,网易,腾讯等一些智商要求比较高的公司,那么严重推荐这本书。这本书是由微软亚洲研究院(MSRA)出的,对于MSRA的面试相信大家都知道有多难,而这本书就是面试的缩影。所谓熟读唐诗三百首,不会吟时也会偷。读完这本书,你的面试会有把握很多。而且说不定笔试的时候也会给你惊喜。说到这里又钩起我的伤心回忆。自己做了半个小时才勉强做出来的题目,别人10分钟内解决。我十分不解,他说这题在《编程之美》有。而且这样的经历不止一次。

    当然,这里只能说说自己看过的书,对于没看过的实在不好发表言论。

四、国企VS私企VS外企VS公务员

    说到这个话题我不打算论证哪类型的企业待遇好,哪类型的工作辛苦,哪类的又可以不用做事却能日进万斗。我不会去评论,也没能力去评论。我只想说说应该如何去争取机会,也许这更实在一点。

    私企&外企:这类型的公司都有一个共通点,对人才不拘一格,对能力要求苛刻。只要你是人才,能充分表现你的能力,那你的简历内容基本可以忽略(除了一些项目方面)。简单一句,实力决定一切。   

    国企:俗语说“人靠衣装,佛靠衣装”,用在国企是最适合不过。而简历就是国企卡人的第一道关,如果想进国企,就尽量把你的简历装饰得金璧辉煌。进门就让人看到你是名牌大学的,往墙上一看又能看到挂了无数个奖项,再放个足球篮球什么的显示你的文体特长(拿过运动的奖项),最好就是屋子看起来有当官的气派(学生组织的小头目比较加分)。过了简历关就要看造化了,笔试面试国企也有各种类型,下面再详说。

    公务员:此方是竞争激烈的技术世界,彼岸是无数人向往的伊甸园。公务员也许并不适合你,但总会有一些因素让你动过念头。要考公务员,个人认为复习好行政测试是关键,申论很难有突破(把问题有条理,有证有据地论述好就行)。行测的题目很多,要认真地做是不可能做得完的,必须学会快速做题,特别是数字题,如果没找到规律,马上跳过。

五、笔试连连看

    每当联想到笔试这个词,各个笔试时的场面就会跳出来,就好像在一块大画板上放着很多的图案,显得有点凌乱。嗯...玩下连连看如何。

    移动实习-中国电信:这类的笔试与公务员的行测无异,稍有不同的时移动实习还要考英语阅读并且多了一些智力题。笔试前想要复习好有点难度,因为比较难以确定复习范围。平常心去考就行了,能不能去看RP吧。

    优视动景-3G门户-中望CAD:笔试的共通点是考察软件基础知识,题目都不难,但做题要小心,容易有小错误。值得一提的是UC前部门有智力题,有些难度,中望CAD的智力题则与中学的应用题(相信你在看到计算两辆车什么时候相遇就知道了)无异。另外,中望CAD还有考察处理人际关系的问答题。

    网易游戏-阿里巴巴研究院:所有笔试当中,算这两个笔试最单纯,只考算法与智力。网易游戏共五道题,有一道是图形学相关的,另外四道智力与算法各一半。值得一提的是至少有三道题可以在《编程之美》与《程序员面试宝典》找到原题。阿里研究院相对来说题目就多很多,也有些题目是在书上出现过,或者有原型。其实智力算法这些题,你看过并不出奇,要想出一道这样的题目并不容易,而且每年都要笔试面试,还不如直接在书上找找看,或者改一改。所以题海战术还是挺湊效的。

    腾讯-工行研发:两家公司的行业虽然相差很远,但笔试都用了软件设计师的题目。其中,要数腾讯用得最彻底。腾讯的卷子有4张A4纸的长度,双面印刷。题目很多,而且基本是软考的题目,甚至是原题(考完回去翻了翻软考的书就后悔了,为啥当初只是应付下,弄得现在考的时候全忘了)。工行研发的题目就更多类型,软件知识自然还是软考的,其他的包括行测,英语。意想不到的是行测是用英语来写...而且量不少,当时差点没做完。

    平安科技:笔试通过上机来完成,基础知识+性格测试+普通的行测题+普通的智力题。

    百度:现在已经没什么印象了,大概是三道题吧,其中有一道是系统设计的。另外两道好像是针对大型数据处理方面的。

    京信-华为:两家公司的题目都是基础题目,而且比较底层,不太难。

六、各种面试

    面试是通向offer的最后一扇门了,但也是刷人最多的一关。如果你在笔试关做得很好,那你就已经成功了一半。否则,面试这关就得把心态放好,你是来拼的,是来把面试官对你笔试的不好印象扭转的。把心态放好之后,就让我们看看都有哪些类型的面试。

    电话面试:对于技术方面的职位来说,一般会面半个小时,内容与实际面试的不会差得很远。首先是让你介绍自己的情况,然后HR会问你项目(每次都很类似,最好准备一下怎么说比较好),接着再问基础知识以及和职位相关的知识,最后会了解一下你对这个行业的看法。电面因为HR不会知道你在什么地方,在做些什么,所以你可以坐在电脑前面戴个耳机,遇到哪些知识点不记得的马上搜一下,同时用各种方法拖着HR。如果HR第一个电话过来就说面试,你可以说正在忙,然后约个时间。这样对于争取多点时间准备和找个安静的地方比较好。

    群面:进不进行群面,要看公司的安排,大部分的公司对于技术职位是没有群面的。要群面的一般是注重综合素质的公司,大部分是国企。当然有例外的,比如华为,而且华为的群面比较怪,是在技术面之后。群面的过程是先给一个topic,然后给20分钟左右进行群体讨论,最后找一个人来总结陈述,HR就在旁边冷冷地看着以及打分。我有一次坐在了HR的旁边,看到HR并不会给全部人打分,只有对那些表现比较特出的,吸引到他眼球的人才会打分。这也说明了一个问题,千万不要以为沉默是金,有机会就要发表自己的意见,述之以理,让HR打心底觉得你是有主见的,是能做事情的。群面其实就是一场游戏,你首先要认清自己的位置,有些人适合当引导整场讨论的,有些有适合控制时间的,而有些则适合当辅助的角色。所以不要强求,如果你自己口才不行,还死活要当陈述的,会死得很惨。认清自己的才能,做合适的事情,表现你的能力,我想通过群面应该是不成问题。

    技术面:对于技术职位而言,没有哪部分比技术面更重要了。但同时技术面也是不定因素最多,我的认识是如果你在技术面答错了两道基础知识问题,那基本就可以回家了。而知识点这么多,漏了一些没记住也是很正常的,所以过不了不一定是你不行。技术面包含了很多个小环节:(1)智力题。考智力题的公司不会很多,也很难准备,遇到了就看造化吧。曾经有一次霸面,一进去HR二话不说,给了一道推理题,让我写出推理过程。那道题应该很多人听过,是有N个人住在一起,条件是喝茶的人周围 没有喝咖啡的,做律师的住在做医生的旁边之类的,然后推出所有人的位置。看到智力题,不用着急,慢慢来,从最简单的入手,一步一步地说出来,有时候还可以向HR要提示。(2)项目。与电面的一样,你可以把你准备好的版本说出来。往往在这个环节,HR会不断提问题,直接他把东西都弄懂了。所以如果项目不是自己的就得小心点,高手很容易找出错误。(3)程序题编写。在你能在纸上完全写出代码之前,请不要以为自己就会那道题目。用纸写代码与在电脑上敲是两回事,首先是不能随便修改,不然会很代码会很难看,其次是纸上没有提示,关键字什么的都要写清楚,指鹿为马的话别人会怀疑你的水平。另外,程序编写考的是细节,题目大部分人都会说出怎么做,但很多人会忽略细节,比如异常,类型安全,取值范围等等。细节决定成败。(4)算法题。算法也是面试常考的,一般是会从浅入深,HR会引导你去思考。算法题目可以参考前面说的那些。

七、随便说说

    人生就是一个选择的过程。从小我们就开始选择,选择交什么朋友,选择玩什么游戏。不过在以前我们选择的范围很窄,因为太多的东西被加在了我们身上,有些事情是不容选择的,比如学习。不过选择少有一个好处,可以不用为前路而烦恼。而找工是人生的一个重要选择,要选择什么样的工作,很大程度上决定了以后的发展方向,所以这很让人迷茫。金钱,理想,现实,压力,很多很多的东西纠结在一起,原本以乎明确的目标一下子就模糊了。没有最好的选择,只有最优的选择,只有上帝才会知道什么是最好的。

 

posted on 2010-02-08 20:33  sober  阅读(2381)  评论(6编辑  收藏  举报