面试经历和面试题0

呵呵呵,说出来丢人,我特么到现在还在面试。不过,真正的猛士敢于面对惨淡的人生,找不到工作就是找不到,不敢面对也是怂货,正视问题才能更好地解决。嗯,从今天起我要记录每次面试的经历,从失败中也能学到点东西么不是?

今天面试了两家公司,中油瑞飞和乐视,坐车一个半小时才到石景山区的中油瑞飞,这是中石油下面的一个国企,其实挺坑爹的,这家公司招人其实是走外包。面试我的是一个iOS工程师,呵呵了,从中可以看出这家公司的风格了。这个面试官看我简历,问了句时间复杂度和空间复杂度是什么,我愣了一下,然后问圆形的TextView怎么做,背景图怎么改变,.9图上面画的点是什么,等等。

从中油瑞飞出来,我接到MTime时光网给我发来的拒信,这我特么都已经麻木了,习惯了被拒绝的滋味,反而不觉得有多伤心。周五花了一天的时间面MTime,然而还是挂了。我很清楚自己败在哪,我项目经验少,虽然工作之余花了很多时间在学,但是都不如实际工作中学来的有效。这是多少人总结出的经验,所以看到这篇文章的朋友们,学了东西一定要实践出来。

坐地铁赶往下一个面试,乐视。好吧,既然我决定写出来了,那我就把自己狼狈的事情写出来也无防了。我先后3次面试乐视了,这次算是第4次了,你们感受一下。去到石佛营乐视的办公地点,时间还比较早,我出去吃了顿饭,我特么都不敢花钱了,15块钱我已经开始心疼了。失业的男人啊,就是这么落魄。

去到他们公司,感觉会考快排之类的算法,我掏出来手机看了几个人写的博客,记了个大概。然后面试的时候,看着简历问了些设计模式,他看我说得这么流利,估计开始怀疑我是专门背熟了的,我是把《Android源码中的设计模式》这本书翻了不下3遍了。然后,又是Activity启动模式之类的常规题,我在《Android开发艺术探索》中也已经看熟了。我不知道为什么都喜欢问打渠道包这种问题,好吧我有点坑自己了,我其实没有自己打过包,可是我在简历上写了,已经好多次被问这个问题了,我也一直没有重视过它,每次都会减分。

然后,果然问到快排了,要求口述算法,我坑坑巴巴地说了一通,这时候面试官可能觉得是背的吧,于是考我实际写代码的能力。出了一个,“扑克牌洗牌”的程序,我写了一会,思路不是很流畅,就没写完,还有个地方出个大错误,主要逻辑也没有体现出来。面试官不爽了,没让我继续写下去,给我出了一个小智力题,这个题我恰巧上周五面试MTime的时候遇到了,所以也正确回答出来了。这时候,面试官优点犹豫,不过他还是不太想让我顺利通过,于是乎补了一刀。问,如何定位线上的bug,我想这不难啊 ,《艺术探索》那本书就有写,我就那么回答了,然而并不是面试官期望的答案。他补充说,混淆了代码的线上bug怎么定位,我懵逼了,我不知道。OK,面试官的目的达到,可以收工了。

所以,不出什么意外的话,还是挂了。呵呵,这酸爽。

回到我住的小窝之后,我试着写了下洗扑克牌的程序。

public class PokerCard {    
    private Shape shape;    
    private String value;    
    public PokerCard(Shape shape, String value) {        
          this.shape = shape;        
          this.value = value;    
    }    
    @Override    
    public String toString() {
          return shape + " " + value;    
    }
}
public enum Shape {    
    HONGTAO,    MEIHUA,    FUANGKUAI,    HEITAO,    BIG,    LITTLE
}
public class Poker {    
    private Set cardSet = new HashSet<>();
    public void resetPoker() {
        String[] values = new String[]{"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
        for (Shape shape : Shape.values()) {
            if (shape != Shape.BIG && shape != Shape.LITTLE) { 
               for (String s : values) {
                    PokerCard card = new PokerCard(shape, s);                                                                     cardSet.add(card);               
               }            
            }
        }        
        cardSet.add(new PokerCard(Shape.BIG, "Joker"));
        cardSet.add(new PokerCard(Shape.LITTLE, "Joker"));        
        for (PokerCard card : cardSet) {
            Print.print(card);
        }
    } 
   public static void main(String[] args) {
        Poker poker = new Poker();
        poker.resetPoker();
    }
}

感觉自己代码能力还是挺弱的,找不到工作也是活该。希望朋友们多多批评。

你可能感兴趣的:(面试经历和面试题0)