作者:郭昊天886688 | 来源:互联网 | 2023-01-26 17:12
一.学历对程序员重要吗?
总结: 学历不光是对程序员这个职业,对很多职业来说,他都是敲门砖,尤其是刚出社会的那几年。在2014年以前,那时候程序员找工作是非常简单的,会点js+html
一.学历对程序员重要吗?
总结: 学历不光是对程序员这个职业,对很多职业来说,他都是敲门砖,尤其是刚出社会的那几年。在2014年以前,那时候程序员找工作是非常简单的,会点js+html+java都能找到工作,对学历更是没啥要求,但是现在对学历的要求越来越高了,尤其是一些BAT的大厂,都慢慢把门槛提高到研究生了,所以说学历对程序员还是很重要的!
二、我的BATJ面试经历
一、字节跳动
- 讲讲面向过程、面向对象、面向切面。
- 指针和数组的关系和区别。
- 讲讲Android handler。
- 队列和栈的区别和用途。
- 两个栈实现队列。
- 输入Url到浏览器显示过程。
- http请求方法。
- get和post区别。
- surficeView和view的区别。
- app从点击图标开始的启动全过程。
- 什么是线程安全。
- 线程安全有哪些机制。
- 如何保证 int加加(加号打不出来)线程安全。
- Android线程间通信有哪些机制。
- cpu调度方式有哪些。
- 空间局部性和时间局部性。
- 数据库乐观锁和悲观锁。
- 数据库索引作用,优缺点。
- TCP拥塞控制。
-
https加密传输过程。
二、百度
- 二分查找的时间复杂度,对数据有什么要求?
- 你对数据结构这门课是怎么理解的?
- HTTPS,CA
- FTP协议
- 浏览器输入网址到页面显示的过程
- TCP的包装结构
- 7层网络模型
- 信息储存的方式,应用场景
- 进程间通信的方式,aidl
- Bundler原理
- Handler机制
- HandlerThread,IntentService,AsyncTask
- 点击事件分发机制
- 滑动冲突解决
- 广播注册方式,区别
- 有序无序广播,本地广播
- 服务的启动方式,区别,用途
- 数据提供者怎么用?原理?
- 布局是怎样加载的?有哪些方式
三、阿里
-
数据库的三范式设计原则 , 索引怎么设计有什么影响
-
计算机系统内核态和用户态
-
Java基础:final,finally和finalize有什么区别
-
抽象类和接口的区别以及使用场景
-
java内存模型
-
String,StringBuilder,和StringBuffer的区别
-
HashMap实现源码,以及线程安全的Map
-
线程状态以及线程通信,线程锁
-
怎么保证线程安全
-
synchronized的监视器应该怎么设置
-
volatile关键字会做什么
android相关:
四、字节跳动
- JVM GC:标记算法、回收算法、垃圾收集器 走一套
- ThreadLocal实现原理,map中的key value是什么
- static块中能否调用实例方法
- concurrenthashmap中是如何实现线程安全的,concurrenthashmap读的时候不加锁,那如何保证读的一致性 (Node数组用volatile修饰)
- HashMap外部加锁 与 使用concurrenthashmap时两者效率相比如何 (全表加锁 vs bucket加锁)
- NIO中buffer中在传输文件时如何工作
- P父类有两个子类A B,A先加载了D.class,B再加载D.class,加载完成后的class D是同一个class吗(可能是这个意思,问题我都没听明白)
- 如何创建一个注解
- Executors中四个生成线程的实现类有什么特点,适用于什么场景
- 一个方法中有A a = new A();这么一条语句,方法执行完后A的实例化对象在GC时能否被回收掉
- finalize相关,调用finalize一定会将对象销毁吗?finalize一定会仅执行一次吗?
- synchronized中锁的几种状态
- 泛型的实现原理
手写代码(运气好,问的不难,几个都快速写出来了):
- 几种单例模式,区别
- 生产者消费者模型
-
二叉树中序遍历
经验总结
个人经验,这个要看你的就业目标是什么,一些企业,如果没有人不要好高骛远。
1 、中小型私企。 这类企业对于学历基本不看重,更多的是看你自己一个人能同时做多少人的事情,即你知识面的广度,因此,你不仅要会后端,还有会前端、界面设计、数据库、部署、硬件等一系列的技术,不需要每种技术学的很深,但是一定要一个人就能撑起一个项目的所有工作。面试时会更关注你都做过什么,是不是自己做的,因为当你进入企业后才发现,整个开发部门只有你一个人。。。
2 、互联网企业。 这类企业对学历的考量只占一小部分,更多的是看中个人能力,尤其是在某一个领域的深度,恰好和上一个相反。在面试时,着重考察你的算法能力、思考能力和配合能力,往往会出一些具体的事例让你给出解决方案。一旦你进入这类企业后,你会就某一个点进行深入。当然,如果你的学校足够好,你会发现面试你的是你的师兄,你的领导是你的师兄,你的领导的领导也是你的师兄。
3 、传统大型软件企业。 这类企业对于应届毕业生的学历是非常重要的评估环节,如果你的学历不够或者学校不好,非常大的可能是简历筛选这关就不能过,即便你的项目经验和个人能力超强。当然,如果你在其它企业已经有过多年的经验,你还是有很大可能通过简历筛选的。
44 、涉及部分软件开发的其它行业大型企业。 学历是这类企业衡量能力的唯一标准,因为他们的 HR 不知道除了学历还怎么能衡量你。
说了很多,对于学校不好的学生而言,这些年其实互联网行业已经宽容了很多,最起码会给一个机会,想起 10 年前的我,刚从本科学校毕业的时候,没有经验什么企业都不会要的悲惨。。。
但是,个人的奋斗和机遇是你成功的重要条件。
源码精编解析(部分展示)
自行领取直达链接:【点击获取】
需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。