zoukankan      html  css  js  c++  java
  • 屌丝、小白怎么拿国内巨头offer

    不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕仰慕。看看这些牛人,NOI金牌。开源社区名人,三年级開始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技术屌丝的同学们,是否真的与国内IT巨头遥不可及呢?

    当你打开这个帖子的时候,我已经默认你是此文的目标读者。也就是想进入国内一流互联网企业的非牛人应届生。

    你不须要拿NOI的奖,无需是开源社区名人。也用不着发过牛逼的SCI论文。(没错,笔者就是这种技术屌丝)

    请记住。校园招聘,应聘的绝大部分人都仅仅是才出象牙塔的毛头小子。

    企业须要的是你们的潜力与激情。

    牛人总是凤毛麟角的。
    程序猿笔试面试的经验贴、经验书不计其数。本文不会教你怎样详细的解题,可是会告诉你,你距离你的梦想到底有多远,以及怎样去缩短这个距离。

    笔者只以自己的亲身经验为根据。将国内IT巨头按Offer到手难度降序排列,大致分为例如以下3个梯队:
    T1:百度,阿里,腾讯,...
    T2:网易。迅雷,完美时空,360,金山,...
    T3:华为,中兴,联发科。...
    Tx:垄断类IT国企。如中国移动,...

    T1主要是BAT三巨头。

    他们对学生的技术能力与综合素养都要求较高。他们尤其喜欢寻找牛人。因此你必须有扎实的基础的同一时候还要有自己的技术个性和特点,让他们赞赏你。

    这些公司不管是实力还是待遇都是一流的。

    但要注意这类公司太大,项目组太多,竞争也非常激烈,因此要注意认真考虑你想去,并且对你而言有优势的项目组。


    T2都是其所在领域的领军企业。待遇会比T1稍低。他们须要基础扎实的学生,假设你的项目或者技术方向符合他们所在的领域会非常有优势。(如游戏领域偏爱图形学,安全领域偏向安全方向)
    T3对学生的出生、资质最为看重(双211,四六级),甚至对性格有较为挑剔的考察(华为的性格測试反而刷掉非常多技术较牛可是性格较怪癖的学生)。专业考察的非常基础,但考察面较广。

    Tx之所以给了个x,是由于他们和其它的企业无法比較。由于这类企业笔试考行測+专业基础。

    面试考察综合素养、表达能力,尤其看重你的非技术方面的能力。因此不做本文的重点讨论。


    无坚不摧——完整项目

    “当他说他是OpenCC的作者的那一刻,哪个面试官不被秒杀。”
    当然你不须要NB到这个程度。假设你能对面试官说:“我读书期间做的项目有x万行代码。Googlekeywordxxx可搜到该项目的演示视频”。就足够了。
    程序猿的全部技术能力都能在一个完整的项目中得到淋漓尽致的体现,因此胜过千言万语的自我推销。所谓的完整项目应该满足下面条件:
    1、完整性。具有一定的功能。或者攻克了某个问题,具有一定意义。
    2、难度。  使用或者研究了一些较新技术。或者有一定价值的技术含量或研究内容。
    3、工作量。是一个须要浇筑一定心血的产出品。

    因此。当你决心把一个项目写入你的简历中,你就一定要能回答出面试官的例如以下问题:

    1、你负责了哪一块?
    这个问题是想知道这个项目里到底有哪些代码是你写的,尤其是多人合作的项目。你必须强调你所做的工作。
    问题就出来了。非常多时候我们參与的项目,他的架构、核心技术你并不熟悉,而不过写了部分逻辑代码,那怎么办呢?
    解决的方法是。花时间去了解项目的核心,对项目的总体有清晰的认识。至少要达到可以表述的非常清晰的程度(简单的说就是能吹的非常有说服力。回忆你答辩的情形)。
    假设你做的那一块确实微不足道,并且你也无法表述项目全局。那就放弃提及这个项目吧,否则仅仅能让面试官越看你越认为锉。
    2、你用到了哪些技术?
    这是最好发挥的一个问题。

    你能够介绍项目用到的每一个开源库,也能够介绍你用到的源码管理工具(如SVN、GitHub),调试工具(如WinDbg)甚至项目管理工具(UML工具、VS Project等)。总之,这是一个非常好表达你的项目综合能力的机会。
    假设上面的都不出彩,那尝试从你的项目架构、设计模式、接口设计等方面入手。总之要站在一个较高的角度,空谈项目的业务需求和逻辑意义不大(当然,充满创意的项目除外)
    3、你遇到的最大问题是什么?怎样解决的?
    这个问题是最重要的,也是最具有回答技巧的问题。你必须说出一个听起来确实非常难解决,但你确实又解决(或者避开)的问题。
    假设你实在没有头绪,或者你认为项目确实太简单,没发现困难问题。最好还是从这些方面思考:
    有网络功能的项目,考虑网络传输效率和网络同步等问题;
    有多线程、多进程的项目,考虑他们之间的同步/相互排斥、负载、调度问题;
    须要处理大数据的项目,考虑数据预处理、数据调度等问题;

    假设这个项目出了论文。那么尝试描写叙述论文解决的问题;

    你解决这个问题的渠道,如MSDN、CSDN、开源社区的论坛、国外技术论坛、文档手冊等。

    面试官想要听到的。是你发现问题、分析问题、寻找解决方式、终于解决这个问题的思路与方法。细节并不重要,由于他也未必能全然弄懂每一个技术细节。

    总之。一个完整的项目能让你充分的表达你的技术能力。在项目这一块上,你须要下足功夫。

    假设非常不幸你没有,那么请往下看。


    深厚内功——坚实基础

    一般第一轮技术面都是来考察你最主要的技术功底。

    招聘季节,随处可见抱着厚厚的《程序猿面试宝典》啃的学生。偶尔也能看见《编程之美》《剑指Offer》的神书。

    这些经验书确实实用。

    可是要想全面的掌握笔试面试的基础考点,还是须要完整的复习。

    事实上,笔试面试对计算机基础的考察是万变不离其宗的。

    其考点无非分为:

    语言语法(以C/C++为例)。
    指针(数组),函数指针。操作符运算顺序。const(常指针与指向常量指针),static四大使用方法,字符串(字符数组),字节对齐(sizeof)。位运算。秒杀书籍:《C++ Primer》
    面向对象


    构造与析构顺序、多态、重载、覆盖、C++对象模型等。

    秒杀书籍:《深入理解C++对象模型》。
    数据结构
    栈,队列,链表(双向、循环),树,堆,哈希表。
    基本算法
    排序(最重要的是高速排序)、查找、图算法、贪心算法、动态规划。秒杀书籍:《算法导论》。


    设计模式


    考察最多的就是单例模式。仅仅由于他实在是太常见又太简单了。秒杀书籍:《设计模式》,《重构》。


    数据库


    主要是SQL语句与存储过程。


    操作系统

    进程与线程、相互排斥与同步、死锁、进程间通信。页表,虚存等。

    秒杀书籍:《Windows核心编程》,《Unix核心编程》。

    计算机网络

    ISO七层架构,TCP,UDP,IP地址等。

    英语

    有些公司喜欢出一些用英文描写叙述的问题,或者英文翻译题。看懂IT领域内的英文并不难,假设你平时使用MSDN、Google、StackOverFlow的话根本不是问题。


    假设你还有充分的时间,建议认真看上面推荐的秒杀书籍。假设时间不够,就有针对性的去掌握这些考点。
    不得不吐槽的是,非常多技术不错的朋友,有着非常好的项目。反而挂在了笔试的基础知识考察上面。因此不要小看这些考点。该背的还是要死背的。

    笔试或者面试假设让你在纸上敲代码。会有2种情况:

    1、写一个函数或算法。

    不要由于题目简单就想在最短的时间写出来。

    请一定要注意,对全部參数做边界检測和有效检測。这才是考察的重点!

    假设一个算法详细实现你记不清了,就写伪代码。在每行代码后加上详细凝视。假设是面试。写完以后跟面试官解释说详细的代码你忘了,可是你记得算法思想,因此用了伪代码。

    假设详细思想也忘了,就尝试用自己的思路解答问题。总之,尽量别交白卷。

    2、设计一个软件或系统。

    这样的情况不要求你写具体代码。

    你须要在程序结构、框架、设计模式或者系统架构等方面进行设计。

    这样的框架性的东西最好先打草稿。想好了再又一次画一遍。把每一个模块的功能。模块之间的关系、各个模块的功能接口画出来,假设是面试,写完以后给面试官详解。

    这里强调一点,是否懂得架构设计,是鉴别代码菜鸟和熟手的重要指标。

    T级越高的公司。越偏向于考察架构层级的知识。比方百度笔试的最后一题常常是要求设计一个分布式server系统。


    锦上添花——无限潜力

    通常技术一面是面基础。二面很多其它的是两方的进一步了解。

    如技术方向。技术潜力等。
    假设二面面试官不问你技术问题,那么你一定要积极主动的与他沟通。并表达你的意愿。尝试下面几个方向:
    1、表达你的技术潜力与热情。
    面试官可能会问你一些和技术看上去没有不论什么关系的问题,比方问你近期在看什么书,学习之余喜欢做什么。常去哪些站点之类的。
    假设你说近期在看《诛仙》,平时喜欢玩LOL。你就是在把自己往悬崖上推。实际上面试官希望听到的回答例如以下:
    “我近期在看《C++ Primer第5版》。由于我在项目中用的C++11的特性越来越多了...” 
    “我业余时间喜欢看看TED。上面总有非常多让我激动的新技术出现...”
    “前段时间比較闲的时候,和朋友參加了xxx组织的开发人员大会...”
    “虎嗅和猎云是我获取IT信息的常去地方...”

    回答如此平庸的问题却能体现你的闪光点。你是技术人员,请记住,告诉面试官你时刻对技术保持着激情,时刻关心的IT动态,比你告诉他你是学生会某干部实用的多。(当然非技术人员,或者国企的面试除外!

    可是,一定要如实回答。面试官会针对你的回答进行紧逼追问。假设正好是他熟知的范畴。而你仅仅是接触过而没有认真学习,就会陷入非常尴尬的境界。

    所以在回答这些问题的时候不用过于急着回答,最好还是先想一想,要有能预測到面试官针对你的回答会问什么样的问题的能力。

    就像上面的样例,面试官问你近期看的书,你未必要选择近期看的一本书,而是应该选择一本你吃的比較透的。不妨面试官也会感兴趣的书,这样接下来的交流就能得心应手。

    总之,平时的积累才是王道。

    2、表达你的技术爱好。
    进入正确公司的错误岗位。相当于考上了正确学校的错误专业。
    所以请一定要记住。你的终于目的不是要进入该公司,而是要进入该公司你最想去的部门乃至项目组。

    所以,试探得知面试官来自哪个项目组也非常关键。由于面试官可能跟你想去的项目组毫无关系。技术方向的不正确口的面试官面试你。对你是不利的。

    这个时候你要清楚的表达出你的技术方向,并注意考虑你想去的项目组收你的可能性。假设发现该组招的人少,或者增加难度大,你须要考虑是否表现出来你有相同的热情增加其它项目组。

    不服从分配可能导致你一无所获。你之前面试的表现越优秀,在这一步可以选择的余地就越大。

    3、态度和情商。

    假设你面试次数多了,拿的Offer多了。通常到了最后一面,有多大的希望能拿到Offer,你心里应该有所感觉。

    假设感觉不好。最后一面你须要更努力表达你的优势。

    最后一面打动面试官的可能往往是你的真诚和热情。

    当面试官问你有多少Offer。不要惧怕回答。

    Offer是企业对你能力的证明。有Offer的学生更easy被青睐。通常假设你有了该公司最大竞争对手的Offer。你能够尝试追求更好的岗位和待遇。但切忌用这个来漫天要价。除非你牛到了他们非要你不可的程度。

    T3,Tx类的企业可能会问你一些非常奇葩的问题。比方A公司问你他的竞争对手B公司怎么样。

    非常多计算机专业的学生思维过于死板。说了大实话。比方”B公司是最大的xxx企业“,于是死的非常彻底。
    你能够说”A公司的优势在与xxx。而B公司的优势在于xxx。只是在我看来,我更赞赏A公司的xxx,由于xxx“
    这类企业就是这样。他们的面试和T1。T2企业的面试区别非常大,你要学会避重就轻,这不是谎言,而是策略。


    写在最后


    仅仅要你资质不差。有针对性的进行努力,拿下国内IT巨头的Offer并不难。
    最后,请记住,拿下Offer,你的技术生涯不过进入了下一轮新的迭代。

    技术之路最公平也最残酷的原因是:没有捷径。须要日积月累的积累。以及对技术持久的热情。


    本文转载自http://blog.csdn.net/lsldd/article/details/13506263

  • 相关阅读:
    基数排序
    希尔排序
    归并排序
    选择排序
    冒泡排序
    堆排序
    快速排序
    Python selenium 4种常用定位 id,class_name,text,xpath
    python selenium 用索引值定位
    python pycharm 建立新项目时使用上个项目所下载的第三方库方法
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6994281.html
Copyright © 2011-2022 走看看