说说现在的情况1.对开发者的门槛越来越高了:
小厂机会少,大厂业务趋于稳定。短期内,移动端不会出现爆发式增长。随之而来的是,移动端招人越来越理性,门槛越来越高。纵观近两年系部移动校招,除了技术本身扎实,全部985/211学术硕士+竞赛成绩+各种奖项+NB实习经历,社招基本集中在国内各大互联网公司和几家公司主要手机。而现在大部分企业在移动端受限于自身业务规模和投入,技术与国内主要互联网企业的差距越来越大。换句话说,小公司将越来越难以生存。公司换工作也将变得越来越困难。
2. 对开发者的要求越来越高:
小厂生存的难度越来越大,必然对开发商提出更高的要求。与以往相比,对终端开发者的技术要求会越来越宽。最好是多面手和大前端。大厂内部的压力也很大,想要大幅度提升数据也越来越难。因此,更多的方向和更多的诉求在所难免。今天的终端开发人员处理的问题比以前越来越复杂。他们需要覆盖更广的领域,更快更深入地学习,除了技术之外,还要有足够的软实力支持。在这样的要求下,很多时候,能力上的差距已经不能靠勤奋来弥补了,大部分人都谈不上勤奋。
面试:如果你没有做好面试准备,那完全是浪费时间,你对自己不负责任!
如果你想成为优秀的人,那就看看那些优秀的人在学什么,在做什么,千方百计与他们交流;多出去看看世界,然后把自己逼死去学习。
现在是十一月,过完年就是春招和金三银四。大批应届毕业生和失业的程序员即将进入求职面试的紧张阶段。这里分享一下我在B站成功登陆面试的经验。
本攻略是我在B站的采访,也是大佬们采访的总结。其中大部分是面试大公司时经常被问到的面试问题。您可以检查差距并填补空白。当然,不可能涵盖这里列出的所有方法。希望对大家找工作有帮助!
面试准备
去一些小公司面试,练技能,摸清自己的感受,总结统计下做不到的问题,然后去相关资料学习相关知识点。近两个月面试了近10家公司,一共拿了3个Home的offer,其中很多之前没有做过,但是准备以后更好的offer
我该如何准备?
在前面,我正在一步一步地准备。在后面,当我通过B站准备第二次时,我特意告诉HR,我会在一周内准备第二次。我这周的节奏是早上起床,在地铁上找篇文章。观看系统知识点视频。
比如redis,我到公司后就正常下班了。我也下班后在地铁里看视频。回到家后,我会看面试视频,列出我不知道的知识点。我一般会看3-4遍。第二次记录了自己不知道的知识点,后来查了资料,因为视频里有些答案是没有的,也不确定受访者的答案是否准确完整。第三次主要学习清华大学。面试官的风格,他给了我自信的感觉,任何问题他都从容回答,即使他说没有问题,你也不会反感,学习他的逻辑和语速。
第四次带老婆一起听。这些问题我会用自己的答案告诉老婆,甚至做一些补充。她是前端,我举个例子。如果我教她理解,我想我掌握的应该是可以的;晚上睡觉前,也会看视频,听视频,直到入睡,加深印象;没有压力,就没有动力。如果不是在 B 站准备面试,我可能无法如此刻苦认真地学习。
平时的学习积累也很重要,千万不要懈怠。
面试流程2021.5.20 一方:(几小时后通知第二方)
1、自我介绍(工作情况、项目概况、使用哪些技术、负责什么、擅长什么、擅长什么)
答:领导您好;我叫,2016年毕业于**大学,获得学士学位;毕业后在合肥威宁医疗软件公司工作,技术上做前端、后端、数据库、项目部署。属于全栈开发。18年在上海加入京东到现在,一直在做线下商城的后台和界面开发;老项目还是mvc,新项目前后端分离,前端使用H5、小程序JQuery、EasyUI、VUE、Angular,后端使用.Net Framwork4.5,4.6,NetCore,Java,数据库使用SQLService,Mysql,MongoDB,Redis,中间件使用RabbitMQ消息队列,在公司是核心开发的角色,负责老项目的维护和二次开发。与其他开发者相比,我的优势在于我有很强的沟通能力,以及我的责任感和学习能力。如果有幸加入B站,相信可以快速融入团队,快速掌握公司相关技术;谢谢你的领导。
2、介绍你的项目和你的工作职位
A:我负责一些老项目的维护,比如商场、业务后台、内容管理、广告、推荐后台、游戏后台和界面;外部开发平台接口;新增项目包括应用插件、奖牌等项目;老项目是主要的开发角色,新项目一般是项目负责人的角色,负责项目的表结构设计、任务安排和分配、部门之间的协调。
3、离职原因
答:1、我已经工作5年了,遇到了技术瓶颈。现在的公司做的大部分事情都是反复增删改查。我希望能改变环境,拓宽技术和视野,也希望能学到更多更多,更新的技术
2、虽然我目前已经升职了,但是升职难度很大,因为公司的领导都是6、7岁的员工,我自己也希望处于管理和发展的位置。
由于以上两个原因,我想换一个平台。
4、未来有什么计划
A:1-2年,大概需要半年时间熟悉公司的技术栈和业务,然后花一年多的时间沉淀下来,深入研究使用的技术,时刻注意学习新技术; 如果未来2年有机会,希望我能做到开发管理岗位,带上自己的团队。
5、你结婚了吗,你住在哪里,你现在的公司在哪里?
A:已婚,定居上海,现在公司位于上海北外滩。
2021.5.27 两侧(技术):(一周后通知三侧)
1、表结构设计需要考虑哪些问题
答:我们目前使用的数据库是MongoDB
(1)在设计表格的时候,首先要注意表格字段的可扩展性,比如性别最新区域名请拿笔记好,可以正常使用bool类型,true为男性最新区域名请拿笔记好,false为女性,但如果未知,那么试试避免使用 bool 类型,可以用 int 类型或枚举类型代替;
(2)其次,需要考虑表格的可维护性和可读性,比如主表格有奖品信息的字段,如果有多种奖品,甚至是多个奖品,我选择独立这里出来一个表,通过字段关联存储奖品信息,而不是选择放在主表字段中
2、关系型数据库和非关系型数据库有什么区别,你现在用的是哪个数据库,为什么?
答:关系型数据库包括SqlServe、MySql、Oracle;非关系型数据库包括 MongoDB、Redis
(1)nosql的存储格式有key、value形式、文档形式、图像形式等,所以可以存储基本类型和对象或集合等多种格式,而数据库只支持基本类型
(2)nosql数据库是缓存数据,关系数据库是硬盘,自然查询速度远不及nosql数据库
(3)关系型数据库可以很方便地使用SQL语句在一张表和多张表之间进行非常复杂的数据查询
(4)关系型数据库支持事务,安全性高
我们存储的会员数据量比较大,每个月产生过亿的订单和日志数据,所以我们选择了非关系型数据库MongoDB
3、你了解数据库查询优化吗?告诉我如何优化(索引相关)
答:可以先在查询分析器中查看语句的执行时间,分析语句是否使用索引,索引是否有效
(1)尽量避免select*,查询需要哪些字段
(2)一些常用的数据可以先存入内存,然后直接使用,不用每次使用都去数据库,主要是减少数据库交互,提高性能
4、说说索引(聚集索引、非聚集索引、联合索引、最左匹配原则、非聚集索引返回表查询)
答:索引分为聚集索引和非聚集索引。用非聚集索引查询一般需要再次回表查询,因为非聚集索引存储的是主键ID,而聚集索引查询就像一本书的目录,一个索引可以快速定位到某个block 对于区域数据,如果不使用索引,则需要进行全表扫描;也有多个字段组成联合索引,一般符合最左匹配原则;
in or 关键字不使用索引,如模糊匹配,前通配符不使用索引,后通配符使用索引
5、如果使用非聚集索引,怎么可能不回表(select id from a where)
答:如果只查询id,则不需要返回非聚集索引的表,因为id是存储在非聚集索引上的
6、为什么使用索引后查询效率高?
答:这涉及到索引和数据的结构。它类似于一本书的目录页。索引通过B+树的结构存储数据。横向数据越多,纵向高度越低,与磁盘的交互越少,查询越快。早点
7、你用过redis吗,你项目中的使用场景是什么?说说你对redis的理解
答:我们项目中用到的redis场景不多。它们通常用于存储计算数据。我们有一些数据是通过BI统计计算出来的,每次计算都需要很长时间。这些数据可以存储在redis中,并设置一天的有效期;以后访问会更快
redis的类型有string类型、hsah,可用于购物车场景、List、朋友圈展示、set、共同好友、zset排名;
Redis 查询速度非常快,因为数据在内容中,但是它会通过 RDB 和 AOF 将数据持久化到磁盘
RDB是在指定时间间隔内生成的数据集的时间点快照,它保存了Redis数据集在某个时间点
AOF 文件是一个只追加的日志文件
一般在redis挂机进行数据恢复时,会结合使用。先用RDB恢复某个时间节点的数据,再用AOF数据恢复后面丢失的数据。
8、java项目做了多久了,能独立建java项目吗?
答:我刚接触java相关的项目。它已经使用了大约2个月。我参考其他项目。该框架由架构师构建。我们主要写业务代码。目前我们还不能独立搭建一个java项目,但是我相信是适合我的。经过一定时间的学习,就可以独立完成项目的搭建。
9、你有什么问题吗(询问开发语言和项目概述)
答:1、我想知道我们的项目是关于什么的(一些内部库存系统等)
2、我们使用的开发语言是什么(主要是java,也有一些和go语言相关的)
2021.6.7 三方(项目):(方先生三天后通知)
1、介绍一下你现在的研发团队(产品、运维、前端开发、后端开发、测试)
A:大约8个产品,3个运维,1个DB,10个前端,25个左右后端,10个测试
2、这家公司现在做什么?你负责哪些项目?
答:是一个网上商城系统。客户端主要是H5和小程序,会为商城提供一些功能,包括商家活动、打折、团购等;提供优惠券、问卷、部分游戏等功能;i 主要负责的项目包括后台商城的维护和二次开发、内容管理、插件集成、后台销售、游戏后台、对外开放平台接口等;
3、说说一个从0到1的项目,你在项目中扮演什么角色
答:前端时间制作的勋章项目,功能大概是会员消费一定金额完成任务后点亮相应勋章并发放奖励。客户端使用小程序,后台页面使用VUE,后台界面使用java。我承担的是项目负责人的角色
(1)根据产品要求和UE设计项目的表结构
(2)根据需要将任务细分为具体负责人,整体控制项目周期(1个半月左右)
(3)提供基础控制数据;开发核心业务逻辑,开发vue页面的demo页面和java接口
(4)跨部门协调与项目部署
4、如果你被要求重做一个你可以改进的项目,你认为哪些方面可以改进?
A:我的一个客户经理项目需要跨表查询。当时领导提供的解决方案是在MongoDB上构建视图。MongoDB4.6及以上只支持视图,查询效率慢。如果我再做一次,我认为可以做到。改成Mysql关系型数据库,因为可以查询多张表
前端框架用于本项目的前端。本项目前端使用HTML+原生js。这里的动态查询需要上百行的DOM元素操作,费时费力。
5、如果一个数组可以让你找到最大的数,你会怎么做?
答:如果减少空间,可以使用冒泡排序来查找;如果减少时间,可以用二分法或分段法,找出每块最大的一块,继续搜索。
6、如果我们要做一个库存盘点系统,你会如何设计表结构,你会设计哪些表?
答:库存表中包含的字段包括物品的类别、名称、编号、初始数量、剩余数量等信息;
分配表中包含的字段包括人员信息,包括手机号、微信ID、姓名等,项目类型、项目名称、序列号等。
还有一些分配记录表和日志表来记录分配和修改信息,方便以后库存盘点统计。
7、公司采购一批电脑,新员工拿到电脑后扫码确认收货。这个代码怎么实现(后台设置收件人信息,微信扫码确认,获取微信相关信息和后台设置的人员)对比信息,如果一致,确认我有收到了)
答:可以结合微信小程序,将员工分配到电脑,后台录入相关人员。相关人员拿到电脑后,可以扫码确认领导电脑。号、微信账号等);如果一致,修改后台确认字段参数,如果不一致,提示并通知相关人员
8、你有什么问题吗(询问团队的工作人员)
A:我们目前有多少人,我们要招聘多少人?我们的内部项目开始了吗?
2021.6.16 四方(部门主管):(一周通知HR)
1、说说你们公司的人事结构以及你的职位和角色
答:见3面1
2、项目中遇到的困难,如何解决,以后如何避免
A:去年疫情刚来上海的前两周,我在家工作。我正在从事的客户经理项目即将启动。那个时候,测试环境也差不多测完了。当我发送到在线测试时,我发现数据只能读取不能读取。写,因为测试环境数据库是单的,online是主从多的,因为是新项目,4.6以上只支持MongoDB视图,MongoDB驱动已经升级到最新,并且网上资料很少,我查了相关资料,问了同事。看了相关源码后发现需要添加一个参数写入主库。中间用了3天左右,但是另一个部门的负责人在MongoDB官网上线一周后告诉我们。我又升级了驱动,现在可以直接使用了,不用加那个参数。我可以认为我们前几天升级的最新驱动是官网发布的有问题的驱动。一周后,他们解决后发布了最新的驱动;这是我遇到的困难之一。
为了以后避免出现此类问题,我们不得不将当前的稳定驱动制作成我们自己的Nuget包,并将问题上传到公共文档(wiki)。以后其他部门的同事也需要使用MongDB驱动的时候,我们可以使用我们的内部驱动,避免不可预知的意外。同时,我们尽量让测试环境的生产环境保持一致,避免出现某些只有上线后才能发现的问题。
3、项目中如何连接(连接前端、第三方、其他后端应用)
答:(1)大部分项目已经把前端和后端分开了,作为后端开发,我们已经写完接口,为前端开发提供swagger文档,具体有接口地址、输入参数、输出参数等不清楚,单独通讯放置
(2)为了与第三方连接,我们对外提供统一的文档地址,提供接口地址、加密方式demo、客户端dll、调用示例(java.net、python等)、输入参数, 输出参数等
(3)内部调用其他后台接口。一般对方提供Nuget客户端。客户端有输入参数和返回值。如果没有客户端,需要根据提供的输入参数调用接口另一方和返回值。
4、如何与同事沟通
A:我觉得在工作中,除了责任心和工作能力之外,最重要的是沟通能力,这取决于一个人的性格,更多的是沟通能力。
(1)不要以有事找你的态度沟通,不认识你就不认识你,平时需要以正常的沟通和沟通联系,如果有人有事找你,即使不是你的责任,在不耽误其他事情的情况下,请帮我回答问题。早上上班,吃饭聊天,或者经常聊天的人问好和自己群里的人或者关系比较好的人吃饭聊天。当你是程序员的时候很轻松,作为程序员的人脉也很重要。以后不在同一个公司的时候,你们可以就技术问题互相交流,以后想换工作也可以互相推动。
(2)多分享,可以是工作经验,也可以是技术知识点,当然人际关系更多的是材料分享,作为程序员的薪水不低,别在意那几十块钱的钱,我平时买点零食,水果之类的,旁边的人发信息,俗话说人手短,不管怎么样,人家都觉得你是个好人。前段时间,我在做第一次java,需要接收消息队列,没做过,做不到,找java架构师,忙,总是敷衍,或者发个链接让我看看,我还是想不通,看到他晚上下班吃外卖,我买了一瓶饮料走过去:“春哥,喝一瓶饮料,而且我说我接的队列还有问题,你有空可以帮我查一下。”果然第二天给我写了一个demo,就到了我的电脑上。求助我之前运行过,得到它。
5、未来规划
A:我想在掌握现有业务技术的前提下,在1-2年内学习更多、更新的技术;如果以后有机会,我也想当一个开发管理职位;俗话说,不想当将军的士兵不是好士兵,如果以后有机会也会独立带队。
6、离职原因
答:(1)目前使用的技术不是新的,我在公司工作3年左右。现在大部分是业务代码,是重复的增删改查。现在想改接触不同技术和业务的环境,了解更多
(2)现在的同事在公司工作时间长,稳定性比较高,目前想在现在公司做开发管理岗位的可能性不大,也希望即新公司掌握现有业务后,如果有机会也在不断上升。
7、现在工资多少
答案:N*14
8、你有什么问题吗
A:我们的主要开发语言是java吗,因为我是做.net的,中间有没有过度学习的时期?
2021.6.25HR面试:(上午面试后送流水,下午5:00谈薪资)
1、说说你最有价值的项目,场景是什么,周期有多长
A:我做了一个奖牌项目。会员消费一定金额后,部分勋章会被点亮,在勋章墙中可以看到部分勋章的点亮进度。例如,我今天购物后要回去,我看到了我的奖牌墙。有一个勋章显示990/1000,消费10元就可以得到这个勋章,那我再买个10元的东西,可以促进会员消费;
这个项目的背景是sales做了ppt,把项目卖给了好几家公司,和公司签了合同,所以急需开发,周期大概一个半月左右,我是项目负责人
2、背后的计划是什么
答案:看四个方面 5
3、你和升得很快的人有什么区别(学习能力不同,但勤奋可以弥补)
A:我想我们大多数人的智商和学习能力都差不多,但总有一些人很厉害,学历高,学习快,能力强,升职快。我和他们肯定是有差距的,不过我觉得这些当然是你的资本,但是我们的学术能力也不错,加上我们愿意学习,我们也可以成为某个方向天花板的存在或某种技术。最近流行一个词“lay flat”,我不同意,我觉得现在的人,尤其是我们的程序员,即使不能成为某个时代某个技术的领导者,也必须成为这些的学习者最新技术,紧跟时代步伐,不断学习,提高自己的技能。价值。
4、期望工资是多少?把过去一年的工资发给我
答:期望工资28K
5、以前是远程会议。今天来这里主要是看工作环境,熟悉路线,以双方负责的态度见面,加微信
最终用了一个多月的时间在2021.6.28拿到了B站的offer;
虽然我的工资卡住了,没有达到我的预期,但也可以接受,因为我去年底升职了,据说只加了半年的工资。6个月,每天15餐,8:30后加班餐
正规化后每月多补贴1000
大厂面试题总结算法题
大部分来自LeetCode,LeetCode HOT 100,最好自己去看看,了解最优解
编程题简答题开发的项目,在微信浏览器上出现黑屏。如何检查和统计页面上哪些区域用户点击次数最多如何根据按钮级别的粒度设计用户权限,例如:A可以访问按钮,B不可以如何自动截取网页内容,如何解决登录限制 Android学习方向似乎是最枯燥的,最基础的东西往往生命力最长
数据结构、算法和一些计算机原理知识是编程和实践的基础。它们看起来乏味而基本,但寿命最长。
不要天天谈框架和库,框架每年层出不穷,但脱掉框架酷炫漂亮的外衣,依然包含着最基本的知识和原理。正是这些算法、数据结构、计算机网络、计算机原理似乎是基本的东西。如果您对这些有扎实的掌握,您将能够更深入。
大厂是我们的技术先锋,不仅有各种技术,还有很多令人大开眼界的使用方式。学习这些将帮助您提高竞争力。深入了解后,还可以提高学习效率。
仅仅学习大厂商的技术是不够的。如何知道当前安卓市场需要哪些技术?
定期的面试足以让你了解当前市场需要哪些技术,也更容易发现自己的不足在哪里。同时也可以督促自己学习提高(小伙子,你的技术有点过时了……)
如果你得到一个高薪的Offer,那不是赚更多的钱吗?
之前和一个大佬交流后,得到了他做的《Android开发核心知识点笔记》。
纯目录页非常非常长……大佬,不愧是大佬……
现在,最新版的《Android开发核心知识点笔记》可以在这个GitHub上查看。
现在不仅开源了,各种资料也很多,可以说是非常全面了。
但它仍然非常混乱。很多朋友都没有资料。大多有几十个或几百个G,但都是杂乱无章的。
建议您寻找培训机构。虽然大家对培训机构有不同的看法,但不可否认的是,一些培训机构也为大家发现并整理了很多全面系统的资料。
结尾
天道酬勤,只要想一想,大厂优惠并非遥不可及!
需要简历模板的朋友可以点击【这里】免费获取。
希望我的经验可以帮到你,如果有什么问题,请在评论区留言!