第一次电话面试


早上还在上课的时候实验室老师给我发QQ,他好像接了个外面公司的项目,需要人来做开发,下课到办公室去找老师的时候,刚到办公室,老师开始给我讲需求的时候,电话来了。。。。。。对方一开口说是淘宝的什么,我一开始以为是淘宝的客服打的电话,正准备挂的时候。。对面问起你是不是投了阿里巴巴的实习简历。。。。。心里第一想法卧槽。。。卧槽。。。阿里巴巴。。。我还以为我简历挂了,都放弃找实习了你来电话了,赶快快步走向实验室,面试官先让做了个自我介绍,说实话,没经验,又很紧张,边走边答,一开始都语无伦次,坐下之后就开始问我项目的东西,我主要说了一下TinyWebServer的东西,这是上学期写的一个小东西,主要是学完网络,然后想做个项目,刚好问了一下王月,王月推荐说可以写个http server练练手,然后就是在网上查资料,发现C++有很多成熟的网络框架,比如boost里的asio框架,是个跨平台的框架,但是自己不太想要用框架,想自己撸,上google搜how to write http server. 找到了几个老外写的博客,看了看博客,就开始动手了,几个博客都是用C实现的,我打算是用C++实现,写了大概半个月,写完还是很快的,博客作者提供的有源码,主要还是调bug,网络程序没有调试的经验,只能人肉调试,调试很痛苦,写完之后对http报文的一些字段比以前熟悉了一点,然后对网络程序整个通讯过程有了了解,至于阻塞这方面的东西,看了博客上的一些介绍,主要是fork()解决,这个真心不太熟悉,http server在CSAPP上有一点介绍,但是目前还没看到那里。面试官似乎对网络这块不熟悉,问了一点就点到为止了,然后就是问我github上的实现的机器学习算法的项目,这其实是大二的时候实验室老师给了一本《Machine Learning In Action》,这上面主要是讲的算法的实现,跟着敲完了一遍,收获就是觉得其实ML这方面还是要对数据敏感,然后就是经验了,还有就是自己原理不懂,然后寒假的时候在跟Stanford CS229 Machine Learning的课程,这主要是讲原理,很多数学知识,课程的讲义很多,全英文好几十页,目前还没啃完,《Machine Learning In Action》因为写的太早了,每个算法其实后面都有配套的小项目,我都实现过,然后特么的面试的时候想不起来了。。。。再后面就问了一个简单的算法问题,一个链表逆置问题,宝宝大二就撸过链表逆置了,在纸上随便画了两笔就开始讲了。。。。问我有几种方法。。。我说了两种,讲了下递推的方法,就是每次把头指针取下来向前挂,时间复杂度O(n),空间复杂度O(1),然后就是递归,简单来说原理就是开个栈,把链表跑一遍,跑的时候同时push进栈,然后跑完了,把栈里面的元素pop出来,pop一个挂一个。栈空了,链表就逆置了,这个方法当时我答空间复杂度答的有点问题,应该是O(n),因为存在栈的开销,但是这个简单的问题,当时没有给面试官解释清楚,这也是整个过程我觉得我答的最不好,最不专业的地方,然后后面就是让我测试一个简单的计算器软件,因为学长给我内推的是测试,本来想让学长帮我推个开发岗的,学长说其他部门不太好推,我也不太想过多麻烦别人,测试完全没接触过,所以这个问题答的就不行,后来一想,自己的答案答的太烂了,没主要还是没有把语言组织好,后面就问了一下自己的项目中有没有用到自己学得算法,刚好前几天在Udacity上看Web Crawl的时候对建index的时候,将数据结构从链表换成了dictionary,用哈希表实现,当时建了10000条index,lookup一个index从2.6缩减到0.02秒左右,面试三十多分钟就结束了,其他的问题就是一些说说自己的优缺点,这个答的也不是很满意,没有把自己想表达的意思表达出来,面试官理解成我学东西不深入,然后就是问问面试官一些问题,我就问了我简历写的咋样,有没有什么问题,面试官就说最好加上个人评价,我倒是觉得个人评价没有那么重要,面试就匆匆结束了。整个过程,说实话面完自己心里就有底了,没戏。。。。还是自己没准备好,问题不是难到没思路,还有就是在语言组织这块还是存在很大问题,还是得刷刷面经和leetcode,面完花了点时间把链表逆置的程序写完了,如下:

#include <iostream>
#include <vector>
/*******************
* @Author: Soyn
* @Brief: Reverse the list, the first telephone interview with Alibaba.What a pity.
* @CreatedTime: 15/3/16.
********************/
struct Node{
  int val_;
  Node *next;
  Node(int val) : val_(val) {}
};
void Print(Node *head)
{
  for(auto *p = head; p; p = p->next){
      std :: cout << p->val_ << " ";
  }
    std :: cout << std :: endl;
  }
Node *CreatedList()
{
  std :: vector<int> int_vector{1, 2, 3, 4, 5};
  Node *head, *tail;
  head = tail = nullptr;
  Node *curr;
  for(auto e : int_vector){
    curr = new Node(e);
    curr->next = nullptr;
    if(head){
      tail->next = curr;
      }else{
      head = tail = curr;
}
    tail = curr;
}
  std :: cout << "Original sequence: " << std :: endl;
  Print(head);
  return head;
}
Node* ReverseListIteration(Node *head)
{
  Node *new_head = nullptr;
  for(auto curr = head->next; head; head = curr, curr = curr->next){
  head->next = nullptr;
  if(new_head || !curr){
  head->next = new_head;
  new_head = head;
  if(!curr) break;
  }else{
   new_head = head;
  }
}
return new_head;
}

Node *new_head = nullptr;
Node* ReverseListRecursion(Node *head)
{
  if(head->next){
    auto curr = ReverseListRecursion(head->next);
    curr->next = head;
    head->next = nullptr;
    return head;
    }else{
      return new_head = head;
  }
}
void Test()
{
  Node *t = CreatedList();
  std :: cout << "I'm iteration version(time cost O(n), space cost O(1)): " 
  << std :: endl;
  Node* h = ReverseList(t); // output ===> 5, 4, 3, 2, 1
  Print(h);
  std :: cout << "I'm recursion version(Time cost:O(n) Space cost O(n)): "
  << std :: endl;
  ReverseListRecursion(h);
  Print(new_head); // output ==> 1, 2, 3, 4, 5
}
int main(int argc, char **argv)
{
  Test();
  return 0;
}

第一次面试还是没经验,后面面试的话应该会比这次要好一点,BAT也没有想象中那么难,希望后面能找到暑期实习吧,艺无止尽,自己还需努力,加油。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 最近互联网的内推阶段已到,我每天都能看见各种推送消息。前两天刚投了一个,被内推成功后,在官网完善了简历内容,今天下...
    小白ff阅读 641评论 3 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,073评论 25 707
  • 要懂得自己爱自己,只有懂得了自己爱自己,我们才能更好地爱别人……
    叶子与风阅读 297评论 0 0
  • 西塞罗说:春是一年中新生的季节,而人生新生的季节是一年只有一次的青春。 我就像大多数的高考毕业生那样,在兵荒马乱的...
    橙橙冉阅读 175评论 0 0
  • 被酒精消磨的。 夏日闭门不出,逃避温度与阳光。保住了皮肤,保住了肥肉,溜走了意志力。 遇到大小事件,伤神的,立即认...
    唐四月阅读 206评论 0 0