轻识Logo
目录

    专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?

    写在开篇的思路

    2020年是多灾难的一年,对于我们每个人来说,健康地活着比什么都重要。受到疫情的影响,很多公司都过得比较艰难,裁员更是普遍,所以对大部分来说保住饭碗就很不错了,更别说什么跳槽晋升了。

    但今年的我,似乎要比很多人幸运,专科出身,起点很低了,在看重学历的一众大厂中杀出一条血路。工作两年我就跳槽进入了苏宁,在苏宁待了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趋势,程序员加班情况更为明显,所以利用碎片时间来学习,才是提升自己最合适的方式。

    先算算我个人的学习时间账(可参考,可借鉴):

    1. 每天早上起床后,大概30min(上厕所,吃早餐,通勤等)

    2. 每天上班时,利用别人划水的时间搜一些技术资料,逛逛技术博客,约30min。

    3. 晚上通勤、吃饭(这个阶段我一般会休息+娱乐来调整自己状态,刷刷微博、朋友圈)

    4. 晚上到家后,不管再累都会抽出1~2个小时来学习,看书+看视频。

    *这样计算下来,一天大概平均在2~3小时,一周5天至少10个小时,不包括周末。

    (2)解决Bug积累经验(提升自己优化能力)

    论坛上流行一种说法:大部分的程序员都是通过BUG来积累经验的,你解决的每一个BUG都是你的经验。

    实际上,这观点并不在强调BUG的重要性,而是意味着程序员可以通过改Bug来提升自己的优化能力,但这个“改”就非常关键了。

    如何“改”?

    1. 我在开发过程中,总会遇到大大小小的问题,在遇到问题时,我首先考虑的是凭自己个人的能力去解决,会看一下相关的源码,或者Google一下相关的资料或技术博客。如果问题太大,实在解决不了,就会去请教大佬,不会纠结来纠结去,浪费时间还没效果,耽误自己的项目进度。请教大佬也有讲究,不是让他直接帮你解决好问题,而在是建议或思路的基础上自己去思考。

    2. 另一层意思则是需要我们主动地去提升自己的优化能力了。我在写代码的过程中,会主动地引入面向对象思想和设计模式;会考虑性能优化(如何让sql语句更快,如何让虚拟机内存性能更好);在“单机版”程序的基础上问自己,如何搭建集群?如何利用现有的面向集群的组件?(比如可以用Eureka搭建服务治理的集群,在集群中用Ribbon做负载均衡)

    3. 最后,技多不压身,还要学一些redis,消息中间件,JVM调优,MySQL优化以及Spring Cloud方面的内容。

    (3)参与开源项目

    其实,在很多面试攻略和分享中,我们都能get到一个信息:参与过开源项目的面试者往往更吃香,更容易获得offer。

    那么,为什么参与过开源项目的程序员会更吃香更抢手呢?

    1. 大型的开源项目几乎都是大型团队构建的,且非常复杂,由此可以推断出你个人的能力和素质都是过关的;

    2. 开发开源项目,说明个人的综合能力得到极大提高,这些能力包括“书面沟通能力”、“了解如何挑选和协商要处理的事情”、“完善Git流程/GitLab流程”、“理解语言语法”等等;

    3. 其他:建立线上声誉、保持个人的进步的动力等等。

    (4)提升自己的软实力,让自己更专业

    按照我个人的理解来说,初级程序员更像学生,而高级程序员则需要拥有“独当一面”的能力,而这个过渡是需要时间的,也是我前两年来努力的方向之一。

    提升自己的软实力,成为更专业的程序员:

    1. 要学会积极主动沟通;

    2. 提升自己解决问题(bug)的能力,积累解决问题(bug)的经验;

    3. 协调(扯皮)的能力:工作方面积极主动协调部门;

    4. 学会合作,一起完成一个任务或目标。


    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岁上的程序员也有不少,要不想被市场淘汰,首先你的有价值,你没有了价值,无论是什么职业都被社会淘汰的。

    学习,永远不会辜负你,靠学习得到的,永远是你最宝贵的财富。

    以上文章中,提及到的所有的思维图、笔记内容、面试题等资料,均可以免费分享,只需要你:【点赞转发】+【评论】文章,点【关注】后【私信】关键词【晋升】即可。


    本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。


    浏览 24
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    我是怎么进阿里实习的
    编程如画
    0
    从食品质检员到代码工程师,我是怎么跳槽进入阿里巴巴的?
    全栈架构社区
    0
    我是怎么面试的
    数据管道
    0
    我是如何进入腾讯的?
    点击蓝色“程序员cxuan ”关注我哟加个“星标”,及时接收最新文章这是程序员cxuan的第89篇原创文章Hey guys, 这里是程序员cxuan,欢迎你收看我最新一期的文章,今天这篇文章源自于我一个忠实读者的亲身经历,这篇文章写...
    Java建设者
    0
    当初我是如何进入阿里的?附整理的最新面试题
    互联网架构师
    0
    我是怎么画架构图的?
    DevOps技术栈
    0
    我是怎么学习编程的?
    JavaGuide
    0
    我是怎么画架构图的?
    安排,Java全栈就业实战课程 终于来了... 文章来源:阿里技术技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也体现在优秀工程师在工作效率提升、产品性能优...
    java1234
    0
    我是怎么调试代码的?
    C语言题库
    0
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报

    代做工资流水公司金华办工资流水单济宁办银行流水太原个人银行流水打印威海贷款工资流水 价格昆明银行流水修改代做盐城房贷工资流水 打印对公流水代开蚌埠办理车贷工资流水西安打印车贷银行流水上海银行流水电子版公司鞍山打印企业对公流水滁州工作收入证明价格廊坊银行流水PS价格南通消费贷流水多少钱南宁做企业对私流水宜昌代做房贷收入证明绵阳工资银行流水开具烟台贷款工资流水 模板沈阳打转账流水海口工资流水模板临沂贷款流水图片绍兴银行流水PS开具徐州代办工资流水app截图菏泽办背调银行流水蚌埠工资流水单查询遵义代办入职工资流水上海工资证明办理咸阳代办流水单菏泽代开房贷银行流水重庆开房贷银行流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

    代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化