不是技术牛人,如何拿到国内IT巨头的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万行代码。Google关键字xxx可搜到该项目的演示视频”,就足够了。
程序员的所有技术能力都能在一个完整的项目中得到淋漓尽致的体现,因此胜过千言万语的自我推销。所谓的完整项目应该满足以下条件:
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级越高的公司,越偏向于考察架构层级的知识。比如百度笔试的最后一题经常是要求设计一个分布式服务器系统。


锦上添花——无限潜力

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

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

但是,一定要如实回答。面试官会针对你的回答进行紧逼追问。如果正好是他熟知的范畴,而你只是接触过而没有认真学习,就会陷入很尴尬的境地。

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

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

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

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

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

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

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

3、态度和情商。

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

如果感觉不好,最后一面你需要更努力表达你的优势。最后一面打动面试官的可能往往是你的真诚和热情。

当面试官问你有多少Offer,不要惧怕回答。Offer是企业对你能力的证明。有Offer的学生更容易被青睐。通常如果你有了该公司最大竞争对手的Offer,你可以尝试追求更好的岗位和待遇。但切忌用这个来漫天要价,除非你牛到了他们非要你不可的程度。

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

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


写在最后


只要你资质不差,有针对性的进行努力,拿下国内IT巨头的Offer并不难。
最后,请记住,拿下Offer,你的技术生涯仅仅是进入了下一轮新的迭代。
技术之路最公平也最残酷的原因是:没有捷径,需要日积月累的积累,以及对技术持久的热情。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

layui列表筛选列_Shopify搜索产品并筛选产品列表功能介绍

搜索产品并筛选产品列表 您的所有产品都列在 Shopify 的产品区域中。每个页面列出 50 种产品。要整理产品列表,并在跨多个页面的列表中查找产品,您可以对列表进行排序、搜索和筛选。默认情况下,产品列表按产品名称的字母顺序(从 A 到 Z)进行排…

远程调用 quartz_如何远程管理Quartz

远程调用 quartz选项1:JMX 许多人问他们是否可以通过JMX管理Quartz,但我不确定为什么Quartz doc甚至不会提及它。 是的,您可以使用quartz.properties的以下命令启用石英中的JMX org.quartz.scheduler.jmx.export true之后,您可以…

DOM解析器

1.DOM标准 DOM(Document Object Model,文档对象模型)是W3C制定的一套规范标准,即规定了解析文件的接口。各种语言可以按照DOM规范去实现这些接口,给出解析文件的解析器。 各种基于DOM规范解析器必须按照DOM规范在内…

批量打印pdf并合并_批量打印CAD图(无删减版)

前面两期小编出的PDF教程想必用了的人都觉得还不错吧?(此处应有掌声)上一期提到的CAD批量打印今天放出来了,擦亮眼睛往下看很多时候大批量的一堆图纸要输出,比如下面这个当然这批图纸并不多,也只是局部的,通常一个项目…

expect详解及自动登录脚本的实现

expect可以让一些交互的任务自动完成,我们可以将一些交互过程写入脚本,ssh登录就是一个简单的实现,下面将介绍expect的用法。 1 安装 yum install -y expect 2 语法介绍 expect - send 这两个指令会配合使用,当expect接收到一个和…

极端懒惰:使用Spring Boot开发JAX-RS服务

我认为可以公平地说,作为软件开发人员,我们一直在寻找编写较少代码的方法,这些方法可以自动完成或不能自动完成更多工作。 考虑到这一点,作为Spring产品组合的骄傲成员的Spring Boot项目破坏了传统方法,极大地加快了并…

透明怎么弄_最新版微信如何设置透明背景?这样设置,效果令人惊喜

微信叒更新了,你的微信有更新吗?听说这次更新是安卓端的先更新,苹果端的还不能更新。今天小编要跟大家分享的是新版微信应该如何设置透明背景,不清楚微信透明背景长什么样子的?没关系,给你看看设置透明背景…

QueryRunner使用

在相继学习了JDBC和数据库操作之后,我们明显感到编写JDBC代码并非一件轻松的事儿。为了帮助我们更高效的学习工作,从JDBC的繁重代码中解脱出来,老佟给我们详尽介绍了一个简化JDBC操作的组件——DBUtils。我们今天主要学习了它所提供的两个类和…

基于vue的UI框架集锦(移动端+pc端)

1. vonic 一个基于 vue.js 和 ionic 样式的 UI 框架,用于快速构建移动端单页应用,很简约,是我喜欢的风格 star 2.3k 中文文档 在线预览 2.vux 基于WeUI和Vue(2.x)开发的移动端UI组件库 star 10k 基于webpackvue-loadervux可以快速开发移动端页…

com技术内幕 代码_CFan科学院:零门槛极速抠图技术探秘

将照片中的人或物从背景中分离出来,俗称抠图。要实现完美的抠图,没有一定的PS(Photoshop)基础是根本无法实现的,不过现在有个名为Remove.bg的网站,号称5秒钟就可以完成复杂的抠图,彻底将抠图难度降到了零门槛&#xff…

关于级联删除和级联修改

曾经因为级联删除的问题浪费了N多时间,顾此在这里写下小小心得,供大家借鉴。在数据库分别建立表t_food(菜单)和表t_book(订单),如下所示:t_food:————————————————————————————…

python:数据库连接操作入门

模块 1 import pymssql,pyodbc 模块说明 pymssql和pyodbc模块都是常用的用于SQL Server、MySQL等数据库的连接及操作的模块,当然一些其他的模块也可以进行相应的操作,类似adodbapi、mssql、mxODBC等,我们在实际用的时候选择其中一个模块就好&…

java面试题:集合_Java:选择正确的集合

java面试题:集合这是在您的应用程序中选择Set , List或Map的正确实现的快速指南。 最好的通用或“主要”实现可能是ArrayList,LinkedHashMap和LinkedHashSet。 它们的整体性能更好,除非您需要其他实现提供的特殊功能,否则应使用它…

c:forEach

简介 <c:forEach>为循环控制&#xff0c;它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时&#xff0c;就会持续重复执行<c:forEach>的本体内容。 语法 语法1&#xff1a;迭代一集合对象之所有成员 <c:forEach [var"varName"] …

b500k带开关电位器内部构造_R138带开关大功率大电流电位器 B10K B500K

全阻值 :500Ω-1MΩ全阻值公差:20%阻抗特性型式:A,B,C,D杂音:Less than 100mV at 20 mmc.绝缘阻抗:More than 10MΩat DC 250V耐电压:1 minute at AC 250V残留阻值:Term.1~2:Less than 10Ω Term.2~3:Less than 10Ω同步误差(双联):-40dB~0dB3dB额定电压B线性:10mm,15mm:AC 100…

Java 8:将匿名类转换为Lambda表达式

将匿名类&#xff08;实现一种方法&#xff09;重构为lambda表达式&#xff0c;可使您的代码更简洁明了。 例如&#xff0c;这是Runnable及其lambda等效项的匿名类&#xff1a; // using an anonymous class Runnable r new Runnable() {Overridepublic void run() {System.o…

如何去掉a标签的下划线

首先来了解下<a>标签的一些样式&#xff1a; <a>标签的伪类样式 一组专门的预定义的类称为伪类&#xff0c;主要用来处理超链接的状态。超链接文字的状态可以通过伪类选择符&#xff0b;样式规则来控制。伪类选择符包括&#xff1a; 总: a 表示所有状态下的连接 …

Android.os.SystemClock

https://www.linuxidc.com/Linux/2011-11/48325p2.htm 文档中对System.currentTimeMillis()进行了相应的描述&#xff0c;就是说它不适合用在需要时间间隔的地方&#xff0c;如Thread.sleep, Object.wait等&#xff0c;因为可以通过System.setCurrentTimeMillis来改变它的值。要…

批量修改数据_#泰Q头条#065期 四步搞定Excel表中的批量数据修改

『闻道有先后 术业有专攻』又到每周五我们Offcie小课堂时间&#xff0c;每周学一点儿&#xff0c;知识从未如此简单&#xff0c;也真诚的希望各位能在留言板写下你们宝贵的建议&#xff0c;给您带来更具价值的分享。这期跟大家带来的Excel表数据整理功能——统一数值变动的实用…

列表与for循环

列表(list)&#xff1a; python基础数据类型之一&#xff1a;其他语言中也有列表的概念。可索引&#xff0c;可切片&#xff0c;可加长。 列表可以储存大量数据。 #作用&#xff1a;多个装备&#xff0c;多个爱好&#xff0c;多门课程&#xff0c;多个女朋友等#定义&#xff1a…