由于听闻今年的就业形势不好(淘宝限招等事件),搞得我也慌了,所以特别开始早点准备。由于之前错过了tx的校招让我后悔不已,所以现在基本给笔试和面试的,我都会去。庆幸的是51之前就已经拿到了两份offer,还算比较满意了,但是其中也暴露了很多问题,在此做一个小结。
【网新恒天】
恒天的笔试面试是连在一起的,这倒是非常方便,可以一次性在学校解决,不用这么跑来跑去。
首先说说恒天这个公司,其实我并不怎么感冒,没有自己的产品,而且基本都是依附在道富之下的,公司算是不大不小,不上不下,很尴尬的一个位置。他们的做的东西也不是我最感兴趣的,所以当时也是冲着做做题的心情去的。
笔试题都是java的,不是我所擅长的。这也是没办法的,计自的课程设置就基本忽略了java,导致我们现在找实习和找工作的面小了很多,再次也懒得吐槽了。
前端部分嘛,反正都是计算机基础题,没什么好讲的,倒是我把OSI七层模型写成五层,罪过罪过。在此也复习下,OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
上张图,更清晰点。
后面都是java的程序阅读题,程序可能是正确的,也可能编译出错或是运行出错,如果是正确的则写出运行结果,如果有无错,也要写出错误是什么。
有一题类似如下代码:
1 import java.util.ArrayList;
2 import java.util.List;
3 public class findingsea {
4 public static void main(String[] args)
5 {
6 List<Integer> ly = new ArrayList<Integer>();
7 ly.add(11);
8 ly.remove(12);
9 }
10 }
问你运行结果,其实也是由于对java并不是太熟悉,才导致犹豫那么久。其实问题是很容易看出来的,就是list里面并没有12这个元素,删除的时候必然后出错,只是这样的出错会是什么形式的,我当时也不知道,不过所幸不影响结果,回来之后自己在eclipse上跑了一下,结果如下:
还有一题让我比较纠结是自定义函数中的数组传递形式,当时貌似这道题是做错了的,唉,惭愧惭愧,直接上代码:
1 public static String printString(String [] str)
2 {
3 return str[1];
4 }
1 public static String printString(String str [])
2 {
3 return str[1];
4 }
这两种点定义方法是完全一样的。。。。
最后有一题是开放题,问你如果现在有1T的数据,要怎么排序是最佳的。
其中这个问题不难,主要是要意识到1T的数据,几乎是无法在内存中实现排序的,我为了确保这一点,还特别问了面试官我们的内存共有多大,面试官就说当512M来算好了。那就必然不能放在内存中,我当时回答的方法是,先分块,按照512M一块,分别存放放到文件中,然后先在文件中进行排序,使得每个文件中的数据都变成有序的,最后比较所有文件的第一个数据,弹出最小的,以此类推。其实就是类似于多路归并的排序方法。
恒天的笔试基本没问什么技术题,就问了一下我对上面这道开发题的想法,我就像上面一样简单解释了下我的思路,貌似面试官也是比较满意的。面试的其他部分,更像是自然的聊天,面试官看我大二就过了六级,就要我先用英文介绍下我们学校,由于没有准备过,所以介绍得很挫,然后对着我简历上的项目问了很多,基本也都是问自己觉得有些收获,或者是问问项目中团队协作是怎么处理的。总的来说还是比较轻松的。
大概过了一个星期,就收到了恒天的offer,不过不知道为什么,恒天方面的hr反复问我能不能check这个offer,貌似很急的样子,由于当时还很早,很多大公司我都很没试过,所以也和她实话实说,给回绝了。
【杭州电法网科技有限公司】
这是一家电子商务公司,理念是把法律服务搬到电商上,面向的对象是中小型企业,需要法律服务又不太请得起高端法律事务所的企业。这是一加初创型的公司,所以规模还很小,我去面的是前端开发。由于我当时觉得他们就是小公司,可能一般性地问问就算了,不会太有技术难度,所以基本没有准备就去了,结果证明我的想法是完全错误的,这次面试+笔试的技术环节真的让我有点受挫,不过也获益良多,最重要的一个教训是你要时刻把你最好的一面展现给别人。好吧,下面来看题目。
举例CSS hacker的几种用法。
CSS hack由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。详细请见百度百科。
CSS的导入方式有哪几种?link和@import有何不同?
导入方式请见这个地址,还是比较简单的。
使用link方式,浏览器会先装载完CSS文件再装载HTML的主体部分,所以显示出来的页面从开始就是带样式效果的。而采用@import方式,浏览器则会先装载完整个HTML文件后再装载CSS文件。详细请见这个地址。
然后笔试中还考了cookie和session的用法,以及让我手写一个登录验证表单,要求用户名和密码不能为空。详细可以看cookie百度百科和session百度百科,其中一个比较重要的区别需要知道的是,cookie是储存在客户端,而session是储存在服务端的。
面试的技术部分被问到了如何在label标签中改变input标签的属性,我当时说的方法是利用js实现的,貌似面试官的愿意是想让我直接在标签里修改某一个属性值就行了,回来之后查了查,label标签中的确有一个for属性,可以用来绑定其他元素。详细请见这个地址。
最后,让我比较意外的是,和boss谈薪金待遇的时候,竟然是让我先开价的,由于笔试和面试的技术环节表现的不是太好,所以我也不好意思开太高。现在想起来也是后悔,没有好好准备,导致到了能自己掌握主动的时候掌握不了。
【亚信联创】
亚信的笔试基本没什么压力,唯一比较让我头痛的是next数组,也是因为当初学KMP的时候没好好的学的惩罚吧。
下面贴个地址,KMP算法中关于next数组的探究,其实概念清楚之后做起来也并不是很难,这次算是吸取教训了。
————————————————————————————————————————————————————————————————————
第一期的【找实习】就到此结束了,我现在还在等亚信的offer,这几天投了网易和阿里,希望网申能先过吧,各种烧香呀。
等下一轮的笔试面试开始之后,再写第二期吧。