ucweb 面试记

心惊惊,追随雷军的脚步。毕业干了 4 年多技术工作和技术管理工作,我突然有一天觉得自己应该找一个像样的团队,特别要有一个像样的老板。于是给  ucweb 投了一份简历。对,其实我是冲着移动平台和雷军去的。应聘“资深软件工程师(软件服务器部分)”,要求如下(注释里是我的想法):

职责描述:

在Linux系统中,进行应用系统软件服务器相关软件的设计、开发和测试。

基本要求:

(1)本科以上学历,计算机相关专业;// 本人是如假包换的科班出身

(2)有5年以上软件开发经验;// 如果计算上大学的时候做兼职的开发经验,5年还是有的。

(3)有3年以上Linux或UNIX使用经验;// 试过一大圈,debian 比较适合我,完了几年,然后 ubuntu 出来了,好像更适合我。windows 已经从我笔记本上删除 1 年多了。3 年是小 case。

(4)熟练掌握以下一种以上开发语言:C/C++/JAVA/PHP/PYTHON;// C 不敢说,只是用来写 PHP 的 ext;C++ 也只是用了一年的 C++ Builder;JAVA 本科学了一遍,研究生又学一遍,做作业,写辅助工具都靠它;PHP 不说了吧,我很自信,这是唯一一个除了 Delphi外可以用精通形容而不心虚的;PYTHON 不熟,只是随便玩玩,改改别人的程序而已。

(5)熟练使用以下一种以上的数据库Oracle/Mysql数据库;// Oracle 仅仅算是用过,PL/SQL 带着手册勉强能用;Mysql 虽然了解不深,但是一般写写触发器,弄弄存储过程是没问题了。

(6)了解HTTP协议,掌握HTML语法;// 这个我有自信,好歹 TELNET 模拟 HTTP 协议也弄过不少。

(7)对新技术感兴趣,有钻研和开拓精神;// 如果不是为了这个,我何苦巴巴的要去应聘 UCWEB 呢?

(8)良好的英文阅读能力,学习能力强,思维敏捷;// 好歹做了那么多英文文档翻译,写不出来,读还是能读懂的。

(9)为人正直,工作勤奋主动,有责任心,具有团队协作精神。// 这个……就算没有也要说有吧?

昨天接到 ucweb 的 MM 打电话过来说今天下午 3 点面试,开心。1 点多出了门,到电脑城顺便买了东西,晃到他们楼下 2 点 45 分。时间拿捏的还是可以的。上到去,好像不少人在面试。前台的 MM 说坐下等等,顺便做份笔试(这份笔试我做得应该鄙视自己)。C++和JAVA两种,我还是选 JAVA 保险(怎么没有 php?)。前面是所谓性格测试题,后面有一些基础概念和编程题目。做得不好,在纸上写代码,对于我这种喜欢先写关键逻辑,再填充细节代码的人来说简直是噩梦。随便写写吧,反正一会面试,可以简单解释一下思路(衰就衰在这里)。答完卷子,3点40分,写得有点慢……等,空调好像有问题,应该是密封带松了,前台MM找了大楼管理处……桌子上有两袋香蕉,两袋橘子……看来待遇不错……喝水……前台MM送了本书,随便翻翻吧……喝水……一个哥们跑过来拿香蕉,顺手给了我一个,开聊,挺好打交道的……他们说还不放音乐,4 点,看来下午茶时间了……大家很热情,又给我了橘子和香蕉……一个哥们过来拿,我就顺水人情,把手里的橘子和香蕉递给了他(后悔啊,没仔细看他是谁)……大家继续上班,我继续看书……4点半,前台MM跟我说经理开会,今天没空了,回去等通知吧……我哭死,那我不是白跑一趟?更哭死的是,据可靠消息,经理就是我递给橘子和香蕉的那位,早知道,我就先让他面了我,再递橘子和香蕉了。

打道回府,这个面试,这个衰啊。看来“雷军”也不是那么容易追随的……

回来路上没闲着,仔细想了想刚才那个大整数相加的问题。自己做得还是很有问题的,回来以后整理思路,重新写了一个。还有优化空间,不过随意了,没心情了……

shear 一下给大家,娱乐一下吧,其实改改应该就可以实现大浮点数相加了:

public static String addBigInt(String a, String b) {
  // 令 a 总是长于 b
  if (a.length() < b.length()) {
    String tmp = a;
    a = b;
    b = tmp;
  }
  StringBuilder result = new StringBuilder();
  // 初始进位为 0
  int added = 0;
  for(int i = 0; i < b.length(); i ++) {
    if (i == b.length() - 1 && i == a.length() - 1) {
      // 如果两个字符串等长,并且执行到结束
      int x = Integer.parseInt(a.substring(a.length() - i - 1, a.length() - i))
        + Integer.parseInt(b.substring(b.length() - i - 1, b.length() - i))
        + added;
      result.insert(0, x);
      break;
    } else if (i == b.length() - 1) {
      // 连接长串剩余部分
      result.insert(0, Integer.parseInt(a.substring(a.length() - i - 1, a.length() - i)) + added);
      result.insert(0, a.substring(0, a.length() - i - 1));
      break;
    }
    int x = Integer.parseInt(a.substring(a.length() - i - 1, a.length() - i))
      + Integer.parseInt(b.substring(b.length() - i - 1, b.length() - i))
      + added;
    // 计算当前位
    result.insert(0, x % 10);
    // 计算进位
    added = x / 10;
  }
  return result.toString();
}

今天的面试经验是:笔试能写多简单就写多简单,然后注明详细解释需要一定时间,面谈;随时打探面试进度,不要埋头看书;不要吃陌生人的香蕉;不要随便把手上的橘子和香蕉给不认识的人,特别是那些可能是经理的人;任何工作,放到下午茶之前完成,后面的是会议时间。

20 thoughts on “ucweb 面试记”

  1. 你好,我是珠海这边一家企业,看到你写的这些东西,诚意想和你谈谈工作上的事情。请看到留言后,速与林小姐联系,QQ:821734675,电话:0756-2313660

  2. @神仙
    虽然招聘内容上有别的语言,不过我估计工作重点是 C++ 和 JAVA 吧。

    @林小姐
    我同您联系。

    @阿肆
    你是不是在 twitter 上 follow 了我?因为前台MM是那种很 Q 的类型,不是我喜欢的,所以没要电话。不过我似乎应该要上电话,为后人造福吧~~哈哈~~

  3. @mikespook 呵呵,是的,是在twitter上看到你的连接才来到这里的。因为最近比较关注UCWEB,所以有兴趣来看看

  4. 下文呢?
    I’m from ucweb and be insterested in reading stories about our company.I wish you got this job.

  5. @ray
    人们总是说“No news is a good news.”。但是对于应聘来说“No news is a bad news.”。我想我们暂时是无缘做同事了~~

  6. 有点意思,雷军投资了很多公司了据说,而且他本人也应该专注于投资方面的事情了,想追随他恐怕不那么容易吧,哈哈~

  7. 哥哥,做完那些题后,UC会去改分数,第一面不是部门经理,是HR,第二面才是部门经理,第三面是部门总监,我都面了,结果还是没进,郁闷ing,

  8. 哥们,其实是有PHP试题的,看来你运气不太好.当天没有见到经理的话机会就很低了.

  9. 笔试完以后就没有消息了吗?难道让你等消息就是被BS掉了?

  10. 哈,明天我也要面UCWeb,刚看到LZ的面经,有用啊!!
    贴一段我写的大数相加代码出来,用递归实现的

    /**
    * use the recursion to add the big integer.
    *
    * @param num1
    * @param num2
    * @param isCarry
    * @param result
    */
    public static void addBigInt(StringBuffer num1, StringBuffer num2, int pos,
    boolean isCarry, StringBuffer result) {
    if (pos < num1.length() || pos < num2.length()) {
    int value = 0;
    if (isCarry) {
    value++;
    }
    char temp1 = pos < num1.length() ? num1.charAt(pos) : '0';
    char temp2 = pos = 10) {
    isCarry = true;
    value -= 10;
    } else {
    isCarry = false;
    }
    result.append(value);
    addBigInt(num1, num2, ++pos, isCarry, result);
    } else {
    if (isCarry) {
    result.append(‘1’);
    addBigInt(num1, num2, ++pos, false, result);
    }
    }

    }

    /**
    * add method for big number.
    *
    * @param num1
    * @param num2
    */
    public static String addBigInt(StringBuffer num1, StringBuffer num2) {
    StringBuffer result = new StringBuffer();

    num1.reverse();
    num2.reverse();

    addBigInt(num1, num2, 0, false, result);

    result.reverse();

    return result.toString();
    }
    一起share一下~~

  11. 谢楼上这哥们的好意,加你Q了~~
    不过北京不适合我,另外,现在在 IDG 投资的一个小公司里谋了份打杂的差事,干着还行。

  12. 这是我见过的写uc最好的面经了,呵呵。作为一个uc员工,有空互相交流,大家都在广州。。

Leave a Reply

Your email address will not be published. Required fields are marked *