本科学了3年的J2EE、网页、信息系统的开发,大四的时候虽然已经决定出国留学了可还是在招聘市场是晃悠了一圈,以为可以颇有斩获,结果惨不忍睹。
先说说自身的条件吧:211学校非计算机专业,只能算是相关,但连理科都谈不上,接近4的GPA在简历上虽然没被卡过,可很多都是笔试就挂掉。英语六级一次考了580多,再加上后来又备考了托福和GRE,基本上在学计算机的大军里英语水平算还可以了。然后专业技能,就是自学过3年的J2EE,常用的框架都很熟悉,js,css也会点。
第一个笔的是个什么外包公司,第一次去笔试啥没准备就去了。第一题问XML解析方式:DOM和SAX我都不知道,挂掉。其实之前JDOM和SAX都用过,但就是不知道有这样的分类和定义。
然后就开始准备了一些Java相关面试题,于是在某两个还是做外包的公司笔的面的都很爽,毕竟实际做过很多个项目,只是不知道理论上叫这个玩意儿。可外包公司我又瞧不上,觉得做系统的话实在没什么前途。
然后也有一些大公司的笔试机会,比如MOTOROLA,淘宝,问的都是计算机很基础的东西,OS,网络,C语言,算法。数据结构。有的基本不怎么会,因为我们做系统似乎从来不需要知道这些东西就可以做。
研究生就选择念CS了,因为是by course性质的,基本都还是上课。我选的都是很基础的课程:算法设计、计算机网络、操作系统、数据库等等。现在想想看当时笔的淘宝还有moto的题,完全是非常的常规,只要你本科是学CS的,并且稍微认真的学了,都可以过掉笔试。比如当时淘宝问了一题:一个无序数组,有正有负,找出连续的和最大的子数组。当然你要是用brute force来做谁都能想出来,实际上可以做到O(n)。再比如moto最后一题写程序让反转一个链表,更是弱爆了。
慢慢的了解到,越是大的企业,面试的时候越是喜欢问你基础的东西。尤其是google,facebook,amazon这样的大公司。面试题都是很常规的数据结构和算法题:数组的排序选择、链表、二叉树、图、动态规划、递归,再加上一点点的OS,数据库,网络,OO的基础知识,就没了。
就眼睁睁看着有的印度同学,程序写的很差,一个简单的project,改死改活都写不出来,但是找工作也拿了一把offer。为什么呢?因为人家基础好,一谈到算法啥的都能说会到。想想看自己完全是反过来,问到这些就傻了,但是学习能力很强,每次学个新的框架,新的语言很快就可以上手,做project也毫无问题,却找不到工作。其实真的入职以后,那些算法又真的要用到多少呢?只是很多公司没办法筛选人才,必须用这些东西来作为门槛一样。
最后建议马上要找工作的同学,好好练好算法和数据结构,尽量去一个有自己产品的公司。至于外包公司,尤其是门头都没有的那种,你很快熟悉了业务以后就很难有提高了,而且那个活基本都是搬砖,完全就是数据库的增删改查,永远是在重复劳动,工资几年不见涨一下…
你是要做屌丝里的高帅富呢,还是要做回家撸撸就睡的屌丝?做面试题吧!研究算法和数据结构吧!不过为什么是屌丝中的高帅富?因为高帅富是不会学CS更不会当码农的。