带专身世,两年冲苏宁,五年跳阿里!论我是怎么快速晋升的? ...

打印 上一主题 下一主题

主题 1057|帖子 1057|积分 3171

本年的我,好像要比许多人幸运,专科身世,起点很低了,在看重学历的一众大厂中杀出一条血路。工作两年我就跳槽进入了苏宁,在苏宁待了3年,现在竟到了阿里。身边许多人都好奇,我毕竟是怎么做到的?下面就来分享一下我这些年是怎么快速晋升的,盼望能够给你带来一些启发和资助吧。
本文主要分享4个点,可按需来阅读:


  • Share1:阿里Java岗口试题
  • Share2:苏宁开发三年,我如何积累经验?
  • Share3:5年开发经验,如何跳槽阿里?
  • Share4:如何提升阿里社招口试通过率?

Share1:阿里Java岗口试题

(1)Zookeeper 部分


  • CAP定理
  • ZAB协议
  • leader推举算法和流程
(2)Redis 部分


  • Redis的应用场景
  • Redis支持的数据类型(必考)
  • zset跳表的数据结构(必考)
  • Redis的数据过期计谋(必考)
  • Redis的LRU过期计谋的具体实现
  • 如何解决Redis缓存雪崩,缓存穿透问题
  • Redis的持久化机制(必考)
  • Redis的管道pipeline
(3)Mysql 部分


  • 事务的根本要素
  • 事务隔离级别
  • 如何解决事务的并发问题(脏读,幻读)?
  • MVCC多版本并发控制?
  • binlog,redolog,undolog都是什么,起什么作用?
  • InnoDB的行锁/表锁?
  • myisam和innodb的区别,什么时候选择myisam?
  • 为什么选择B+树作为索引结构?
  • 索引B+树的叶子节点都可以存哪些东西?
  • 查询在什么时候不走(预期中的)索引?
  • sql如何优化?
  • explain是如何剖析sql的?
  • order by原理
(4)JVM 部分


  • 运行时数据区域(内存模型)
  • 垃圾回收机制
  • 垃圾回收算法
  • Minor GC和Full GC触发条件
  • GC中Stop the world
  • 各垃圾回收器的特点及区别
  • 双亲委派模型
  • JDBC和双亲委派模型关系
(5)Java 基础部分


  • HashMap和ConcurrentHashMap区别
  • ConcurrentHashMap的数据结构
  • 高并发HashMap的环是如何产生的?
  • volatile作用
  • Atomic类如何保证原子性(CAS操作)
  • synchronized和Lock的区别
  • 为什么要利用线程池?
  • 核心线程池ThreadPoolExecutor的参数
  • ThreadPoolExecutor的工作流程
  • 如何控制线程池线程的优先级
  • 线程之间如何通讯
  • Boolean占几个字节
  • jdk1.8/jdk1.7都分别新增了哪些特性?
  • Exception和Error
(6)Spring 部分


  • Spring的IOC/AOP的实现
  • 动态署理的实现方式
  • Spring如何解决循环依赖(三级缓存)
  • Spring的后置处理惩罚器
  • Spring的@Transactional如何实现的?
  • Spring的事务传播级别
  • BeanFactory和ApplicationContext的接洽和区别
(7)其他部分


  • 高并发系统的限流如何实现?
  • 高并发秒杀系统的计划
  • 负载平衡如何计划?

Share2:苏宁开发三年,我如何积累经验?

(1)善于利用碎片时间,学习提升自我
从初级步伐员升到资深开发,没有别的捷径可走,从始至终我都奉信:进步得靠学习,学习得靠时间堆砌。现在互联网行业根本上都是996趋势,步伐员加班情况更为显着,所以利用碎片时间来学习,才是提升自己最符合的方式。
先算算我个人的学习时间账(可参考,可借鉴):

  • 每天早上起床后,大概30min(上厕所,吃早餐,通勤等)
  • 每天上班时,利用别人划水的时间搜一些技术资料,逛逛技术博客,约30min。
  • 晚上通勤、吃饭(这个阶段我一样平常会休息+娱乐来调整自己状态,刷刷微博、朋友圈)
  • 晚上抵家后,不管再累都会抽出1~2个小时来学习,看书+看视频。
这样计算下来,一天大概平均在2~3小时,一周5天至少10个小时,不包括周末。

(2)解决Bug积累经验(提升自己优化能力)
论坛上流行一种说法:大部分的步伐员都是通过BUG来积累经验的,你解决的每一个BUG都是你的经验。
实际上,这观点并不在强调BUG的重要性,而是意味着步伐员可以通过改Bug来提升自己的优化能力,但这个“改”就非常关键了。
如何“改”?

  • 我在开发过程中,总会碰到大大小小的问题,在碰到问题时,我首先思量的是凭自己个人的能力去解决,会看一下干系的源码,大概Google一下干系的资料或技术博客。如果问题太大,着实解决不了,就会去请教大佬,不会纠结来纠结去,浪费时间还没效果,延长自己的项目进度。请教大佬也有讲求,不是让他直接帮你解决好问题,而在是建议或思路的基础上自己去思考。
  • 另一层意思则是需要我们主动地去提升自己的优化能力了。我在写代码的过程中,会主动地引入面向对象思想和计划模式;会思量性能优化(如何让sql语句更快,如何让虚拟机内存性能更好);在“单机版”步伐的基础上问自己,如何搭建集群?如何利用现有的面向集群的组件?(比如可以用Eureka搭建服务治理的集群,在集群中用Ribbon做负载平衡)
  • 末了,技多不压身,还要学一些redis,消息中心件,JVM调优,MySQL优化以及Spring Cloud方面的内容。
(3)参与开源项目
其实,在许多口试攻略和分享中,我们都能get到一个信息:参与过开源项目的口试者往往更吃香,更容易得到offer。
那么,为什么参与过开源项目的步伐员会更吃香更抢手呢?

  • 大型的开源项目险些都是大型团队构建的,且非常复杂,由此可以推断出你个人的能力和素质都是过关的;
  • 开发开源项目,说明个人的综合能力得到极大提高,这些能力包括“书面沟通能力”、“了解如何挑选和协商要处理惩罚的事情”、“完善Git流程/GitLab流程”、“明白语言语法”等等;
  • 其他:建立线上声誉、保持个人的进步的动力等等。
(4)提升自己的软气力,让自己更专业
按照我个人的明白来说,初级步伐员更像门生,而高级步伐员则需要拥有“独当一面”的能力,而这个过渡是需要时间的,也是我前两年来努力的方向之一。
提升自己的软气力,成为更专业的步伐员:

  • 要学会积极主动沟通;
  • 提升自己解决问题(bug)的能力,积累解决问题(bug)的经验;
  • 调和(扯皮)的能力:工作方面积极主动调和部分;
  • 学会合作,一起完成一个任务或目标。

Share3:5年经验如何跳槽阿里?

Step1:知己知彼(了解岗位职责,规划职业发展路径)
①岗位职责
求职时,我们往往更注重简历,却忽略了“岗位职责”这个关键词,实际这往往也会影响到我们的口试结果。
俗话说“知己知彼,百战不殆”,岗位职责非常清晰明确地标注了应该干什么,怎么干,干到什么标准,对于步伐员来说,技术把握程度以及之后的开发内容都要了解清晰。

任意找的公司为例,就更不消说BAT一线大厂了
②发展路径
在第一次正式工作后,我就非常认真细致的思考过自己日后的发展方向,实际上步伐员的发展轨迹(晋升路径)越早确定越好。步伐员的方向大致分为技术岗和管理岗,而这两个方向所看重的能力还是有很大本质区别的。
发展路径如下:


  • 管理岗:初做者→技术司理→技术总监→副总裁→总裁
  • 技术岗:初做者→高级工程师→技术专家→领域专家→领域权势巨子

Step2:订定目标(订定明确的、可衡量的、可达到的、偶然间限制的目标)
在职场中,一定要订定自己的的目标,这样才不免被沦为“咸鱼”,想要快速晋升,就得从目标动手,目标需要满足SMART原则:


  • 具体的(Specific)
  • 可以衡量的(Measurable)
  • 可以达到的(Attainable)
  • 具有干系联性的(Relevant)
  • 有明确的时间截止的(Time-based)
简单来说,我的操作就是将自己的目标举行阶段性的拆分,比如我1-3年需要达到一个什么阶段,3-5年要达到什么阶段,然后在这个阶段里继承举行拆分,树立一个一个小目标,然后构成一个大目标,总目标,这样就会容易达到得多了。
Step3:善于思考(培养逆向头脑、优化头脑)
不想机器式的码代码,快速晋升之道首先就要转变自己的头脑,要开始逐步调整,善于思考一些问题,培养逆向头脑和优化头脑。
所谓的逆向头脑,就是要多问自己为什么?如:


  • 为什么需要这些数据?
  • 为什么要做这些事?
  • 为什么要做总结?
  • 为什么要做规划?
  • 为什么要做代码考核?
而优化头脑,则是把事情做得更好,即使是繁琐杂事,也有优化的空间,包括效率和效果,任何事都是有优化空间的,缺少的是发现的眼睛。

Share4:如何提升阿里社招口试通过率?

(1)准备简历
口试是会根据简历来举行对你提问的,尤其是对于开发人员来说,看到你的项目经历后,或多或少都会问干系的问题,乃至一线互联网公司会针对项目举行提问,所以准备简历这一环节就尤为重要。
准备简历时,一定要真实,简历作假是职场大忌,牢记牢记。其次,要分清晰“了解、认识、醒目”三词的区别,对技术栈的把握程度跟口试题难度密切干系。

当然,为了资助各位能够顺利过了简历,我也准备了一些模板大礼包,包括我自己的个人简历也在里面,欢迎大家参考:

(2)只管找内推
校招容易,社招难。这是一线互联网的普遍征象,对于应届生的要求相对来说还是比较宽松的,但对于有一定工作年限的人来说,技术要求就比较高了,因此许多中途想要进一线大厂的人都说社招着实太难了,简历都过不了。
那其实也是有一些“捷径”可走的,可以找一些内推机会,相对直接社招来说,几率大大提升了。
(3)对技术要把握一定的广度和深度
既然是技术岗,那么企业对于技术把握的广度和深度是有自己相应的要求的,学历在技术面前都显得没那么重要了,因此努力提升自己的技术程度是步伐员的首要目标。
那么,技术要把握到什么程度呢?特梳理了一下技术门路,如下图谱:

对于现在流行的一些技术框架,我又把握得如何了呢?实际上,我是有一个记录学习心得,做学习条记的风俗,所以我对一些技术也有自己的总结和经验。


  • Java核心发展条记:



  • SpringBoot核心技术条记:



  • SpringMVC开发核心条记:



  • Spring源码深度剖析:



  • Redis学习总结

(4)面的是什么部分?口试的时候喜好问什么?
在口试前,事先要清晰自己口试的是什么部分,要做好功课。比如,支付宝、蚂蚁金服这类的奇迹部,项目多与金融干系,淘宝、拼多多则是电商,这些区别也会影响口试的侧重点。
至于口试官喜好问什么,则需要依靠平常的刷题来积累了,刷刷题,做到闻一知十,对口试还是有很大的资助的。


写在文末的箴言

读万卷书,行万里路。作为步伐员,都说职业生活到35岁就结束了,实际上大可不必相信这种年龄焦虑,35岁上的步伐员也有不少,要不想被市场镌汰,首先你的有代价,你没有了代价,无论是什么职业都被社会镌汰的。
学习,永久不会辜负你,靠学习得到的,永久是你最宝贵的财富。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表