在职场上有一个时间标准:3 年。 3 年时间,一定要在工作内容和职级上有一个质的变化,这个变化可以通过升职得到,也可以通过跳槽达成目标。
初入职场的 3 年,主要的工作内容就是夯实基础,此时基本处于「完成上级交付的任务」这样的阶段。但在这个过程中,员工不能仅仅完成任务了事,而是要不断思考为什么上级要布置这个任务,这个需求是怎么来的,用于解决什么问题,有没有更好的解决方案等等。
之后的 3 年,也就是职业生涯的 3-5 年,作为程序员,需要达到一个小 leader 的层级,即带领一个小团队(可以仅仅有几个人)负责某一个某块或是功能的研发,此时在上个阶段积累的经验和关于解决方案的各种想法的作用便凸显出来。而此时作为小团队负责人的角色,程序员更多地需要关注上下游的逻辑,能够形成完整的逻辑链条。
工作经验的 5-8 年,此时程序员已经进阶成了技术负责人,可以独立负责某一个产品的研发,可以成功地推动产品从 0-1 的阶段,此时更多需要关注的便是跨部门之间的合作与沟通,确保研发行程的按时交付。与此同时,更多地关注一些产品设计方面的内容,会对进一步的晋升很有帮助。
最后一个阶段,即工作 10 年以上,此时达到研发总监或是更高的职位会是一个比较理想的状态,而对于这个层次的要求,是对于整个行业能有比较清晰深入的判断,能够感知未来技术发展的方向并为公司提前布局。
>下面是小编整理的今日头条Java面试题,都来挑战一下,看看自己能有20k吗。题目都带超详细的解答,需要的可以加小编QQ群937053620。即可获取
**头条一面**
* 讲讲jvm运行时数据库区
* 讲讲你知道的垃圾回收算法
* jvm内存模型jmm
* 内存泄漏与内存溢出的区别
* select、epool 的区别?底层的数据结构是什么?
* mysql数据库默认存储引擎,有什么优点
* 优化数据库的方法,从sql到缓存到cpu到操作系统,知道多少说多少
* 什么情景下做分表,什么情景下做分库
* linkedList与arrayList区别 适用场景
* array list是如何扩容的
* volatile 关键字的作用?Java 内存模型?
* java lock的实现,公平锁、非公平锁
* 悲观锁和乐观锁,应用中的案例,mysql当中怎么实现,java中的实现
**头条二面**
* Java 内存分配策略?多个线程同时请求内存,如何分配?
* Redis 底层用到了哪些数据结构?使用 Redis 的 set 来做过什么?
* Redis 使用过程中遇到什么问题?搭建过 Redis 集群吗?
* 如何分析“慢查询”日志进行 SQL/索引 优化?
* MySQL 索引结构解释一下?(B+ 树)
* MySQL Hash 索引适用情况?举下例子?
**头条三面**
* 如何保证数据库与redis缓存一致的
* Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?
* 如何保证 Redis 高并发、高可用?
* Redis 的主从复制原理,以及Redis 的哨兵原理?
* 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。
* MySQL数据库主从同步怎么实现?
* 秒杀模块怎么设计的,如何压测,抗压手段
最后,给大家推荐一个**Java进阶内推交流群937053620**,不管你在地球哪个方位,不管你参加工作几年都欢迎你的入驻!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)
![](https://upload-images.jianshu.io/upload_images/11633898-502930daca368223.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
有疑问加站长微信联系(非本文作者)