你们都在说去大厂,我说说怎么去小厂面试吧?

https://www.matools.com/blog/190299983
原文连接html

01 前言 & 吐槽

为何要起这个标题?
通常不都是说怎么去大厂吗?
小厂有啥好说的?
钱少、事多,技术落后,学不到东西,还加班。
谁他么不能进?前端

一找工做,发现还真有点难。
由于竞争的人,好像有点多。vue

我靠,原来这么多人都只能去小厂???java

而咱们在网上看到的面试文章画风都是这样的:mysql

《大厂程序员面试逻辑题面面观》
《阿里P7必定难吗?》
《我是怎样拿到阿里、腾讯、滴滴、京东offer的?》
《字节跳动三面事后,HR说让我回去等通知》
《一文告诉你,掌握XXX才能进大厂》程序员

好吧,由于大厂你们都想进,我也想进。因此这样的文章标题仍是颇有吸引力的面试

阿里腾讯的高工资谁不想去呢?

可是一方面是你们也不全都是在北上深杭。
二三线城市又没什么知名互联网公司。
并且对于工做三五年之内的同窗来讲,残酷的真相是,这些文章没有说一个你们心知肚明的前提:
不是98五、211,你连面试的资格都没有!ajax

难道小厂同窗就不是人吗?

我想大部分程序员也都不是98五、211毕业的吧?
我见过不少程序员,也带过很多团队,其中有98五、211的本科生、研究生,也有大专毕业的,还有中途干了几年别的中间转程序员的。
不能否认98五、211的毕业生学习力确实比较强,可是比例差距并无那么大。
至少在我带过的团队里,大专、双非本科毕业的同窗跟他们的差距也就是4:6这样。redis

在工做中,其实咱们又回到了同一块儿跑线!
可是在境赶上,咱们必须很现实地看到,在薪资获取、职位提高、职业发展的路程中,差距确实很大,甚至愈来愈大。spring

为何会这样?

我想不少人内心都有本身的想法,本身的看法。

是否是很不甘?

为何咱们付出同样多的努力,获得的却比别人少呢?
别人在大厂一年、两年就能达到的成绩、薪资、职位,可能你须要付出4、五年才能达到。

我不能安慰你。

我只能说是应该的。这是过去的你偿的债。
读书时的缺失只能用工做中的时间去弥补。

而在工做后,你有了从新再来一次的机会。

怎么去把握呢?

咱们能够以大厂为目标,可是得认可先天性上确实有差距。

因此能够先去小公司去历练下。

小公司由于人少,流程也比较少。招人就是来干活的。
对学历的并不是很看重。
我本身发出的标准就是大专就好了。
可是小厂招人也特别块,基本没有所谓二面。
因此第一印象很重要。

怎么在一次面试中就get到面试官的点?
怎么将本身的优点发挥出来?
在面试前应该准备什么?
在面试时遇到不会的怎么办?

好吧,看看接下来我怎么装逼,错了,是从面试官的角度,说一些掏心窝子的话,写写这个《程序员的小厂面试宝典》吧。

02 做为面试官,我会问一些什么问题呢?

过年后到了一家小公司,开始创业之路。
这两天开始招人组建技术团队。
陆陆续续面试了近二十我的。

小公司来面试的大部分都是双非毕业生。

看到他们就想起了曾经的本身。十年前的那个我。
我中学是上的职高,大专上的业余,毕业后还作了一年电脑维修。
能够提及点是差得不能再差了,低过90%程序员的学历和起步。

而后自学C,边工做边学了两个月,自学学不下去,进入一家培训班学了java。
学完后,进入一家小公司实习,第一个月工资是1200。
好了,苦情背景话都说完了。说说正题吧。

面试的这些人大部分都是双非背景,工做两三年内的。

拿上简历一看,熟悉XXX技术,一问XXX:
不知道,
没学过,
只了解一点。

**三连暴击,暴得我肝疼。
【你逗我呢?不会你也写?卧槽,你自找麻烦吗?】

可是我后来想了想,这好像也正常,由于你不写这些东西,HR都不会给你面试的机会。

因此面试一看简历,基本的套路一看就能看出来:
写了精通,就是工做中经常用到;
写了熟练,就是用过一点;
写了解,就是偶尔吹牛的时候听过。

我在面试的时候,生怕漏了明珠,因此总会问来面试的同窗:
你擅长什么?
Java、数据库、前端你哪方面掌握的比较好?
你经常使用的技术栈是什么?
说一件让你印象深入的事,能够展示你解决问题的能力,或者学习的能力。

好了,以上就是个人面试套路。你掌握了这个套路,是否是就能套路我了?

因此,你到底有没有某一方面能够打动面试官的点呢?

在面试时,我会在上面那些套路的问题时,追着去问你所掌握的技术栈能力。

譬如你说你擅长后端,我就会问些Java、中间件;
你说擅长数据库,我会临时出个题,让你写个SQL;
你说擅长前端,我会问下JavaScript、vue。

对于不通工做经验年限的人,我问的问题层次也不太同样。

一年工做经验

后端:
Java有哪些集合类?ArrayList跟LinkedList有啥区别?
springboot用过吗? 是怎么使用的?
redis用过吗?它是用来作什么的?为何比较块呢?

数据库:
一个学生成绩表,有学生、班级、成绩、课程,怎么一条语句分组展现班级的学生总分数?

前端:
怎么获取一个id是ss的div,去改变它的内容?
jQuery的Ajax怎么用的?它封装了原生js的一个什么组件?

两年工做经验

后端:
ArrayList跟LinkedList有啥区别?有什么优缺点呢?它们是线程安全的吗?
springboot用过吗? 是怎么作到简化配置的?为何能自动装配呢?听过factories文件吗?
redis用过吗?听过缓存穿透、缓存雪崩的问题呢?怎么解决呢?
mybatis是一个什么框架?它跟JDBC有什么区别?它是怎么链接数据库执行SQL的?

数据库:
一个学生成绩表,有学生、班级、成绩、课程,怎么一条语句分组展现A、B、C班级的学生总分数?
基于上题,怎么筛选总分数1万分以上的班级呢?
基于上题,怎么再筛选60分以上的同窗,60分以上的成绩参与统计,如下不统计呢?
作过查询优化吗?知道执行计划吗?

前端:
怎么获取一个id是ss的div,去改变它的内容?
JavaScript中的function a(){this.s =1};this是属于哪一个对象?
jQuery的ajax是封装了原生js的一个什么组件?
知道盒模型吗?
知道闭包吗?
小程序跟vue用过吗?跟html有什么区别?

三年及以上工做经验

后端:
spring boot用过吗? 是怎么作到简化配置的?为何能自动装配呢?听过factories文件吗?
redis用过吗?听过缓存穿透、缓存雪崩的问题呢?怎么解决呢?
怎么作一个分布式锁呢?
应用怎么作集群?集群、负载、分布式有什么区别?
用过多线程吗?怎么建立一个链接池?

若是前端有个出具报表的请求,须要请求三十张表的数据,我如今在后端用多线程来解决,每一个线程查询一张表,怎么将这三十个线程的数据汇总返回给前端呢?用同步仍是异步?同步怎么作?异步怎么作呢?

数据库:
作过查询优化吗?知道执行计划吗?
知道怎么挑选索引字段吗?有索引必定快吗?索引失效怎么办?
用过mysql?mysql怎么作到主从复制的?怎么解决脑裂问题?
知道分区吗?用过度库分表中间件吗?
用过Oracle?Oracle是怎么作集群的?

前端:
jQuery的ajax是封装了原生js的一个什么组件?
知道盒模型吗?
知道闭包吗?
vue用过吗?是怎么作到双向数据绑定的?
知道prototype原型链吗?怎么用prototype开发一个jQuery库?

03 结语 & 祝福

做为一个面试官,我想招一个什么样的人呢?

首先,确定是有“钱”这个前提的。
就是招聘这个岗位,这个岗位能给多少钱,可能会有必定的浮动,可是都会限制在必定范围内。
因此在这个范围内,咱们确定是想招到合本身心意的人选。

那么,我做为一个面试官,我会想招一个什么样的人选呢?我会考察他哪方面的能力呢?
我是一个面试者,我又怎么表现出本身的能力?表现哪方面的能力呢?

做为一个面试官,在拿到面试者的简历后,问上一两个问题,有没有实际工做的经验,有什么技术能力,很容易便能分辨出来。

可是有两种能力,却很难分辨出来。一个是解决问题的能力,一个是工做中学习的能力。
而这两种能力,倒是我在挑选同层级候选者们时最看重的能力。

因此我喜欢问的问题是:

你擅长什么?
Java、数据库、前端你哪方面掌握的比较好?
你经常使用的技术栈是什么?
说一件让你印象深入的事,能够展示你解决问题的能力,或者学习的能力。
你喜欢分享吗?有记笔记、写博客的习惯吗?有参与过开源社区的项目吗?
若是让你对本身的学习能力打个分,你会打多少分?

在多数候选者的心中,本身的学习能力都是毋庸置疑的,特别是我问"若是让你对本身的学习能力打个分,你会打多少分?"

通常人的回答都是80分。

我想若是不是中国人的谦虚本能抑制住了他们的骄傲,一百二十分也是没问题的。

可是咱们每每都会高估了本身的学习能力。

我低头看看我本身就明白了,买书如山倒,看书如抽丝。

而我最看重的是这个问题:

说一件让你印象深入的事,能够展示你解决问题的能力,或者学习的能力。

我但愿在面试官对你说这句话的时候,你能够尽情地把你本身的学习方法、遇到过的项目难题、解决问题的步骤很清晰地展示出来。

能展现你的【自我评价】上所描述的【热爱编程,有钻研精神,能独立解决难题】等等这些比较”虚“的内容。

若是面试官没有对你说这句话,我也但愿你能在面试官对你提问的时候,尽可能去展示你的风采。

在面试前,想好本身的优缺点;面试时,突出本身的优势

你到底擅长什么?
你是怎么学习新技术的?
你对什么有比较深的研究呢?
你是怎么解决问题的?

错,没有关系,要有本身的思考。 可是请不要胡说八道

仅以此篇,献给正在忙忙碌碌找工做的同窗们吧。

找一份工做简单。找一份满意的工做却很难,谁都羡慕去大厂。

不过对于普通人的咱们,仍是先在小厂摸爬滚打一下吧。

小厂也不能忘却努力

多coding:这个很少说了,码农天天花10几个小时写代码不是啥难事吧?最大的难事多是琢磨琢磨怎么保护腰和颈椎。固然,多coding包括了多实践,最好是实BAT的践。至于leetcode、topcoder、各类OJ什么的,若是只瞄着BAT,那大可没必要浪费时间,可是若是打算拿硅谷的offer或者北京那一票海龟回来办的公司,leetcode全刷一遍仍是必须的。

多思考:只写代码是不够的,至于该怎么思考、该思考什么,这个属于多思考的一个子问题之一,每一个人心中应该都有点儿普,开发中多问本身几个为何。

多阅读:不少朋友都在纠结阅读什么?各类编程思想啊、高并发啊、多线程啊等等。固然,天天上下班在路上,或者蹲坑的时候。手机就是个很好的媒介,利用碎片化时间获取对本身有用的资讯。

面对选择,能够横向、纵向去思考,但无需纠结,自身能力是获取一切机会的基础。随着时间的推移,本身的技术停滞不前,不知道该怎么去提高,不知道目前本身处在什么水平,更没有一个完整的体系,针对这些问题,今天给你们分享面试要点,但愿能够帮到大家。

源码分析

阅读、分析源码是程序员最基本的代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及经常使用设计模式,可以帮你了解大牛是如何写代码的,从而吸取大牛的代码功力。在阿里面试中,MyBatis、Spring等框架的底层原理是常常会被问到的。想进名企大厂?阿里程序员给你三点建议

分布式架构

阿里巴巴有不少大团队,这种大团队里有不少小团队,到小团队以后,作的业务都不相同,若是想立足成为一线互联网公司中的万能选手,最主流的分布式架构中有不少知识都是必需要去了解与学习的。而且在阿里面试过程当中,面试官会问到实际应用场景的问题:好比微服务化、用户量、并发量、业务复杂度以及可扩展程度等。

image

微服务架构

微服务是如今互联网架构技术中最火热的话题之一,在阿里面试过程当中,面试官会问到不少关于微服务相关的问题,但做为一名开发者,一名有技术梦想的程序员微服务架构是如今必需要去了解的主流技术。

性能优化

性能一直是让程序员比较头疼的问题,当系统架构变得复杂和庞大以后,性能方面就会降低,特别是阿里巴巴这样的一线互联网公司最为注重。所以想进入阿里,性能优化必定是要去深刻学习与理解的一环

但愿这些对你们有所帮助,要不要进入BAT多是因人而异,一线互联网加班太严重了,虽然也学到了不少技术,这些技术基本在外面是接触不到的,可是本身的工做时间会延长,每一种选择都是一种精彩,愿你将来可期!

阅读更多

微信支付的跨平台架构详解

Flutter  + MVP +Kotlin 实战!

Tomcat 居然有 bug,这我能信?

互联网的圈子,游戏行业的现状是如何?

动画:一招学会TCP的三次握手和四次挥手

干掉PostMan!IDEA这款插件太实用了…

美团面试题:Java-线程池 ThreadPool 专题详解

在这里得到的不只仅是技术!

image