• 2015届求职经历


    (下面内容,如有疏误,敬请指正。谢谢!

    假设有什么问题,也能够相互交流。)

    先讲一下结果:腾讯和百度都给了offer。


    最后签了腾讯的offer。

    2015届毕业季求职生涯就此告一段落~(2014.9.29)

    想着之前在应届生、itmian4等站点看过不少师兄师姐的笔经、面经。如今。也是回馈的时候了。

    在这里,我不会介绍解题的详细方法、思路(这不是我的强项)。而且鉴于本人所学知识的特点,以下所讲的可能会偏向于C++和Linux。

    个人认为我的经历对如今还是大二大三的学生来说。还是比較好复制的。

    在这里。我主要想介绍的有:
    1.笔试面试的基本情况(不是为了给大家提供面试的题目(网上从来不缺题目),而是让大家知道,笔试面试考的主要都是基础的东西,笔试面试并不难。!)。

    2.简单说说怎样准备笔试面试。

    一、笔试面试的基本情况。


    这个秋招,我仅仅面了bat三个公司。

    8.25 阿里巴巴网上笔试
    阿里巴巴今年的笔试我认为有点不靠谱。。。不多说了。印象中有非常多概率论的题目。


    9.16下午 阿里巴巴一面挂了
    总共问了我三个问题:
    1.一个仅仅有一个数字的字符串。用尽可能多的方法将其转化成对于的数字。


    2.写一个vector。实现resizeopertor[]clear。
    3.高速生成4亿个随机数。


    整个过程感觉面试官非常冷漠~连我的简历都不看。简单地挂了,不多说。

    说实话。当时阿里巴巴的面试结果对我打击非常大。

    。。

    毕竟,一面就挂了…… 我差点对后面的笔试面试失去信心。


    9.20上午 腾讯笔试
    腾讯笔试的特点:25个不定项选择题。难度不高。可是范围非常广:涉及编程语言、数据结构、操作系统、设计模式、数据库、计算机网络、概率论~还涉及一些对新技术的了解。


    9.20下午 百度笔试
    百度笔试的特点:没有选择题。一般分为:简答题、编程题、系统设计题。都比較常见和基础~有认真准备过的同学基本都没问题。


    基本上每次笔试的详细题目能够上itmian4查找。大家自己动手~


    9.21上午 百度一面(技术面试)
    一面的问题都是非常基础的:
    1.class和struct的差别。


    2.写个max的宏(这个我跟面试官说我写不了)。
    3.计算两个链表的交集、并集。
    4.链表的排序——用什么排序算法?
    5.怎样找到一个链表的中点。写代码
    6.怎样求一个整数的二进制1的个数——编程之美的题目。
    ……(后面另一点。记不是非常清了。)


    百度一面的问题都很很基础。感觉不错。当时看得出面试官很惬意。


    9.23下午两点百度二面(技术面试)
    9.23下午三点腾讯一面(技术面试)

    两次面试的时间有点小冲突。当天中午十二点就出发了,先去腾讯的面试地点踩下点。再去百度面试。


    百度二面的问题偏算法,可是不会非常难。
    一上来,面试官拿了个pad叫我先把上面三道题做一做。

    我扫描了一遍,都是比較基础的编程题。
    当我做完第一题的时候,面试官就叫我開始面试了(当时真不是我写得太慢~)。


    我仅仅记得前两题:
    字符串以单词为单位进行逆转。
    合并两个已排序的链表。


    聊了一下项目。(我的都是自己写的渣渣项目。没什么好说,能够看出面试官也没多大兴趣,问了一下,便没再问了。)
    问我认为笔试怎么样?然后和我讨论最后一题(tinyurl)。

    这道题讨论了非常久。
    又问了我两个题目:
    用1*2的瓷砖铺3*N的地板有几种方法。
    求二叉树两个节点的最低公共祖先。


    二面结束,感觉不是非常好。。主要是由于我刷题太少了。整个过程。面试官老是嫌弃我是本科生,似乎是有益的。

    哈哈
    百度二面完毕已经三点多了。

    。到了腾讯那边,迟到了将近一个钟。。

    只是,腾讯还是非常快给我安排面试了~

    腾讯一面的面试官给我的感觉非常好,问的问题都是基础的
    1.自我介绍
    2.给我几道题,叫我做一做。都是C++的题。涉及指针、数组。
    3.写一个网络编程client与服务端的伪代码。
    4.write或者read返回-1怎么办?
    5.返回0代表什么?
    6.对socket可写的理解?
    7.设计文件传输协议。

    两种情况:传输图片。每张大小约50KB。

    传输热门(top10)的电影(非常大。GB级别的)。
    8.设计管理定时器的数据结构(堆)。


    由于之前在百度那边已经被“折腾”了一个多小时。在腾讯这边的时候,我感觉有点打不起精神。结果,腾讯一面的时间不是非常长。仅仅有半个小时左右,中间有一些简单的问题我答得实在不好。还好晚上十点多,收到腾讯的二面通知。


    9.24下午腾讯二面(技术面试)
    我也不知道结果会怎样。
    2014年4月份的时候。我參加了腾讯的实习生招聘,非常意外。第一次參加招聘居然一路从笔试。到一面,二面,hr面。更意外的是,最后还是被刷了


    这次,感觉笔试。一面的成绩应该都不是非常好。运气好进了二面。也不知道接下来会怎么样。——做最好的期望,做最坏的打算吧。


    我在门口等面试的时候,面试官忽然走出来——问我是不是參加他的面试的。然后让我在外面先做一道题——设计一个内存池(事实上和笔试的附加题差点儿相同)
    我在外面简单写了写。


    进去之后。面试官,简单看了看代码。叫我谈谈思路。然后就在这道题目上添加条件,让我改进。

    不知怎么聊的,聊到内核的内存管理里面去了(只是都是非常浅的知识)。然后。面试官说,好吧,这道题先这样。


    设计一个cache要考虑什么问题?怎样解决?
    用UDP实现文件传输要注意哪些问题?(主要是超时重传和乱序)
    求最长回文子串——动态规划常见题目,但是我居然不会。给了非最优的解法。
    另一些问题,记得不是非常清了。。。


    二面的最后,面试官说:咱们来聊点非技术的东西好吗?
    1.你认为你最大的优势是什么?最大的劣势是什么?
    2.你有没有遇到过什么难以相处的人?
    3.你喜欢和什么人一起工作?
    4.你对考研和工作的选择?喜欢project技术还是科研?
    然后。面试官问我有什么问题。

    開始向我说腾讯内部怎么样、怎么样。。。

    地好!!
    最后。面试官说:“接下来,我还要安排你走一次hr资格面。你到5楼……”


    9.24下午腾讯三面(hr面试)
    好吧,等了老半天。见到hr了 —— 是个人看起来不错的大叔。
    hr没问我什么问题。
    一上来,简单看了一个我的简历。
    问我知不知道我如今要去的部门详细是干嘛的?我说。不是非常清楚。然后他就简单地跟我讲了讲。


    然后,问我的职业规划。


    然后,随便聊了聊。
    最后,他跟我说,你的面试如今是比較早的。xxxxxxxxxx。。


    腾讯二面+三面,感觉不错。可是,作为一个以前被“吓破胆”的人,还是不敢有百分之中的一个百的把握(我是不是有点不自信啊??)。
    面完腾讯,回到宿舍。放下书包,手机就响了。百度通知三面。

     
    9.25下午百度三面(综合面试)
    百度三面不像腾讯是hr面,而是一次综合的面试——技术和非技术问题穿插进行。
    百度三面,我真的非常紧张。

    由于。我是到了最后才知道三面也是有技术问题的……面试官是个看起来非常高级的人,应该非常牛逼。
    技术和非技术问题穿插得非常乱。我以下仅仅能回顾一部分。不一定是按顺序的:
    基本的技术问题。
    1.read和write、fread和fwrite的差别。什么情况下,哪个效率高?
    2.写个vector,实现构造函数、push_back、pop_back。operator=。


    3.STL中的容器。
    4.一个概率题:足球比赛的时候,裁判会扔硬币,决定两方队伍的球门。有一次,裁判掏出一个硬币,结果发现硬币变弯了(即出现正反面的概率不一样了)。请你设计一种方案,让这个硬币能够继续使用。
    基本的非技术问题:
    1.对工作地点的选择。为什么?
    2.有没有人对你有什么影响?详细?(依据这个问题展开了不少其它问题。都是和详细的回答相关的,不多说)。
    3.除了技术,你平时做什么?
    4.做技术,你不认为无聊吗?

    二、笔试面试小结

    先总结一下上面这几次笔试面试:

    尽管上面的面试过程我仅仅能回顾个大概(那几天面试太多了),可是非常明显能够看出70%~80%的题目、问题都是基础知识,所以基础非常重要

    能够说,仅仅要你的基础够硬。offer就离你不远了。
    剩下的20%~30%要看:
    1)你的状态和发挥。笔试面试和我们平时在学校里的考试一样,不仅要看你会不会。还要看你发挥得好不好。
    2)你和面试官的缘分了。说究竟,和面试官的缘分。就是运气。这也是整个求职的唯一你不可控的因素。可是,仅仅要你的技术够硬,心理素养够好,这个似乎也不用操心。

    以下讲讲基础知识的学习。

    笔试面试的基础知识主要分成一下几个方面:

    1)编程语言。

    选一门自己喜欢的编程语言。只是依照眼下的情况,你仅仅有两个选择:C++ or Java。

    2)算法与数据结构。

    这个不用我多说。算法与数据结构是一种修养,可能你在实际工作中不会直接用到。可是它就是会影响你的代码。

    3)操作系统。

     

    我想把操作系统的知识分成两大部分:基本原理特定平台(如Linux、Android、Windows、IOS等,我做的是后台,所以学的是Linux)。

    4)计算机网络。

    主要是TCP/IP协议。

    互联网行业主要考的是传输层(TCP和UDP)和应用层(常见应用层协议协议,HTTP最常见)。IP基本没考。至少没考深入一点的。

    5)数据库。

    数据库一般考得比較简单。一些基础概念、范式、SQL。

    6)概率论、排列组合。

    我没有专门准备过这方面的知识,仅仅是在网上刷几个题,熟悉熟悉而已。


    以下针对上面几点。讲些详细的(主要是依据我个人的经历)。


    先上两张图。

    YP20140930164523291 YP20140930164543466

    这些是我大学期间买的书(小部分是从学校图书馆借的)。

    当然里面有的还没怎么看过的有的看过一部分可是看不懂有的看了一遍有的已经看了两遍甚至三遍。此外还有部分书已经还给图书馆(看完或者没看完)。

    大一大二浪费了两年,我是从大二的暑假才開始决定要找互联网行业的工作的(之前一直在数电模电方面的东西)。只是幸运的是,我非常快就知道自己想做服务端的开发。

    大二的暑假

    在此之前,我仅仅学过C语言和数据结构。

    整个暑假看了几本书:

    《Unix环境高级编程》——这是我学Linux编程的第一本书,那个暑假把上面的代码敲并执行了一遍。后来又陆陆续续再次看了一些重要的章节。再后来,遇到不懂就到上面查。

    只是如今认为看man page更好。当然入门还是得看这本书。

    《程序设计实践》—— 这一个老师给我推荐的,非常不错。上面的C、C++的样例我都在电脑上敲过。

    《Linux内核设计的艺术》—— 讲Linux0.11的源码。可是我还依据这本书凝视了Linux0.11的内核。可惜后来电脑出了问题,代码不见了。

    还看了一本操作系统原理的入门书,书名似乎叫《计算机心智——操作系统之哲学原理》,讲得非常通俗易懂(只是如今认为《现代操作系统》更好)。

    大三第一学期

    也看了几本书:

    《Unix网络编程 卷1》—— 这本书主要讲的是套接字(socket)编程,敲了大部分样例。

    唯一的缺点就是,书上的样例实在是太无聊了……

    《Unix网络编程 卷2》—— 主要讲的是进程间通信(IPC)和同步。这本书我仅仅挑了部分学习而已。

    開始看《深入理解Linux内核》,只是基本看不懂。。

    。。

    当时,我也開始纠结我是否应该学习C++。当时我还仅仅学过C而已。

    后来,我买来了《C++ Primer》第四版的開始学习(事实上当时第五版已经出了。

    。。只是第四版当时打折廉价几十块……)。

    C++入门的时候有点痛苦,所以我也是断断续续的学。

    寒假的时候。找个和简单的webserver的源码,看和凝视了一遍。顺便看了《浪潮之巅》。哈哈。

    大三第二学期

    C++学了一段时间。似乎没什么进展。主要是由于我总认为如今不是必需学习C++。反正C对当时的我来说已经够用了……

    这个学习我開始看《TCP/IP协议具体解释 卷一》《深入理解Linux内核》看不懂,所以我换了本《Linux内核设计与实现》。这本讲得简单一点。看点计算机原理的书——看了《深入理解计算机系统》

    四月份的时候。參加了腾讯的实习招聘。

    由于基础还不是非常扎实,整个笔试面试的过程确实让我认识到了自己的短板。也渐渐明确了笔试面试是怎么一回事。

    后来面试了几家公司,都不顺利。

    我開始反思自己,暑假,是随便找个实习,还是安心在学校打基础呢?我的决定是。在学校学好基础,再好好准备秋招。当时我也不知道自己的决定对不正确。

    在大三剩下的时间里,我把《TCP/IP协议具体解释 卷一》看完了。也把《Linux内核设计与实现》看完了。由于经历过腾讯的实习招聘,知道他们非常重视C++基础。也就有了学习C++的动力了。把《C++ Primer》扫了一遍又一遍。而且简单看了一下《Effective C++》、《深度探索C++对象模型》

    后来在Linux用C++写了个简单的FTPserver。算是对C++和网络编程的总结了。

    在这学期中间我自己还写过一个非常easy的操作系统的demo(如今看起来认为非常easy。当初写的时候认为挺难得),能够在虚拟机上面执行。

    后来又买了一本书,陈硕大牛的著作《Linux多线程服务端编程:使用muduo C++网络库》

    大三的暑假

    暑假回家一个星期,然后都待在学校看书、写程序。主要做了下面这些事:

    1、操作系统原理和Linux

    《深入理解Linux内核》、《Linux内核设计与实现》和《现代操作系统》穿插着看。

    2、Linux编程

    再次看了《Unix环境高级编程》的重要章节。

    看了《Linux多线程服务端编程:基于muduo网络库》,这本书能够学到非常多东西,特别是作者提到的非常多參考文献(我非常多还没看)。

    3、C++

    《C++Primer》后面类、面向对象、模板部分再看了一两遍。敲了几个大一点的样例。

    《Effective C++》《More Effective C++》《Effective STL》简单看了一遍。

    4、算法与数据结构

    《数据结构与算法分析:C语言描写叙述》。

    5、刷题

    遗憾的是,我刷的题目并不多。

    leetcode仅仅刷了四五十道。

    《剑指offer》和《编程之美》仅仅简单看了一半,非常多都是理解了思路,没写程序。

    大四前两个星期

    刷题 —— 去网上找整套的笔试题,最好是你想去的公司的往年试题。

    看书 —— 这个时候,缺什么就补什么了,比較零碎。

    总结一下

    暑假两个月做的事看起来比較夸张,主要是由于里面非常多书之前都看过了。所以看起来比較快。有一些也是从大三第二学期期末開始看的。当然从大二暑假到如今。中间我还看了不少其它的书、博客。可是那不是主线,也非常难一一列举出来。

    十年磨一剑。

    大学也就仅仅有四年。就算毕业了,路还非常长。

    大家加油!

    !!

    上面提到的非常多书都能够再网上找到扫描版的(尽管有点侵犯知识产权。可是作为没有经济收入的学生党。就自己看着办吧。)。后面有时间我再陆续整理一些资料出来……

  • 相关阅读:
    @@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的辨析
    Blue Jeans[poj3080]题解
    绿色通道题解
    后缀数组
    Power Strings[poj2406]题解
    KMP算法
    Life Forms[poj3294]题解
    STM32固件库文件编程结构思想的理解
    GPIO设置
    HTML_v2
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5221706.html
Copyright © 2020-2023  润新知