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分钟内解决。我十分不解,他说这题在《编程之美》有。而且这样的经历不止一次。
当然,这里只能说说自己看过的书,对于没看过的实在不好发表言论。