按关键词阅读:

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

写在开篇的思路2020年是多灾难的一年 , 对于我们每个人来说 , 健康地活着比什么都重要 。 受到疫情的影响 , 很多公司都过得比较艰难 , 裁员更是普遍 , 所以对大部分来说保住饭碗就很不错了 , 更别说什么跳槽晋升了 。
但今年的我 , 似乎要比很多人幸运 , 专科出身 , 起点很低了 , 在看重学历的一众大厂中杀出一条血路 。 工作两年我就跳槽进入了苏宁 , 在苏宁待了3年 , 现在竟到了阿里 。 身边很多人都好奇 , 我究竟是怎么做到的?下面就来分享一下我这些年是怎么快速晋升的 , 希望能够给你带来一些启发和帮助吧 。
本文主要分享4个点 , 可按需来阅读:
- Share1:阿里Java岗面试题
- Share2:苏宁开发三年 , 我如何积累经验?
- Share3:5年开发经验 , 如何跳槽阿里?
- Share4:如何提升阿里社招面试通过率?
Share1:阿里Java岗面试题(1)Zookeeper 部分
- CAP定理
- ZAB协议
- leader选举算法和流程
- Redis的应用场景
- Redis支持的数据类型(必考)
- zset跳表的数据结构(必考)
- Redis的数据过期策略(必考)
- Redis的LRU过期策略的具体实现
- 如何解决Redis缓存雪崩 , 缓存穿透问题
- Redis的持久化机制(必考)
- Redis的管道pipeline
- 事务的基本要素
- 事务隔离级别
- 如何解决事务的并发问题(脏读 , 幻读)?
- MVCC多版本并发控制?
- binlogredologundolog都是什么 , 起什么作用?
- InnoDB的行锁/表锁?
- myisam和innodb的区别 , 什么时候选择myisam?
- 为什么选择B+树作为索引结构?
- 索引B+树的叶子节点都可以存哪些东西?
- 查询在什么时候不走(预期中的)索引?
- sql如何优化?
- explain是如何解析sql的?
- order by原理
- 运行时数据区域(内存模型)
- 垃圾回收机制
- 垃圾回收算法
- Minor GC和Full GC触发条件
- GC中Stop the world
- 各垃圾回收器的特点及区别
- 双亲委派模型
- JDBC和双亲委派模型关系
- HashMap和ConcurrentHashMap区别
- ConcurrentHashMap的数据结构
- 高并发HashMap的环是如何产生的?
- volatile作用
- Atomic类如何保证原子性(CAS操作)
- synchronized和Lock的区别
- 为什么要使用线程池?
- 核心线程池ThreadPoolExecutor的参数
- ThreadPoolExecutor的工作流程
- 如何控制线程池线程的优先级
- 线程之间如何通信
- Boolean占几个字节
- jdk1.8/jdk1.7都分别新增了哪些特性?
- Exception和Error
- Spring的IOC/AOP的实现
- 动态代理的实现方式分页标题#e#
- Spring如何解决循环依赖(三级缓存)
- Spring的后置处理器
- Spring的@Transactional如何实现的?
- Spring的事务传播级别
- BeanFactory和ApplicationContext的联系和区别
- 高并发系统的限流如何实现?
- 高并发秒杀系统的设计
- 负载均衡如何设计?
Share2:苏宁开发三年 , 我如何积累经验?(1)善于利用碎片时间 , 学习提升自我
从初级程序员升到资深开发 , 没有别的捷径可走 , 从始至终我都奉信:进步得靠学习 , 学习得靠时间堆砌 。 现在互联网行业基本上都是996趋势 , 程序员加班情况更为明显 , 所以利用碎片时间来学习 , 才是提升自己最合适的方式 。
先算算我个人的学习时间账(可参考 , 可借鉴):
- 每天早上起床后 , 大概30min(上厕所 , 吃早餐 , 通勤等)
- 每天上班时 , 利用别人划水的时间搜一些技术资料 , 逛逛技术博客 , 约30min 。
- 晚上通勤、吃饭(这个阶段我一般会休息+娱乐来调整自己状态 , 刷刷微博、朋友圈)
- 晚上到家后 , 不管再累都会抽出1~2个小时来学习 , 看书+看视频 。
(2)解决Bug积累经验(提升自己优化能力)
论坛上流行一种说法:大部分的程序员都是通过BUG来积累经验的 , 你解决的每一个BUG都是你的经验 。
实际上 , 这观点并不在强调BUG的重要性 , 而是意味着程序员可以通过改Bug来提升自己的优化能力 , 但这个“改”就非常关键了 。
如何“改”?
- 我在开发过程中 , 总会遇到大大小小的问题 , 在遇到问题时 , 我首先考虑的是凭自己个人的能力去解决 , 会看一下相关的源码 , 或者Google一下相关的资料或技术博客 。 如果问题太大 , 实在解决不了 , 就会去请教大佬 , 不会纠结来纠结去 , 浪费时间还没效果 , 耽误自己的项目进度 。 请教大佬也有讲究 , 不是让他直接帮你解决好问题 , 而在是建议或思路的基础上自己去思考 。
- 另一层意思则是需要我们主动地去提升自己的优化能力了 。 我在写代码的过程中 , 会主动地引入面向对象思想和设计模式;会考虑性能优化(如何让sql语句更快 , 如何让虚拟机内存性能更好);在“单机版”程序的基础上问自己 , 如何搭建集群?如何利用现有的面向集群的组件?(比如可以用Eureka搭建服务治理的集群 , 在集群中用Ribbon做负载均衡)
- 最后 , 技多不压身 , 还要学一些redis , 消息中间件 , JVM调优 , MySQL优化以及Spring Cloud方面的内容 。
其实 , 在很多面试攻略和分享中 , 我们都能get到一个信息:参与过开源项目的面试者往往更吃香 , 更容易获得offer 。
那么 , 为什么参与过开源项目的程序员会更吃香更抢手呢?
- 大型的开源项目几乎都是大型团队构建的 , 且非常复杂 , 由此可以推断出你个人的能力和素质都是过关的;
- 开发开源项目 , 说明个人的综合能力得到极大提高 , 这些能力包括“书面沟通能力”、“了解如何挑选和协商要处理的事情”、“完善Git流程/GitLab流程”、“理解语言语法”等等;
- 其他:建立线上声誉、保持个人的进步的动力等等 。
按照我个人的理解来说 , 初级程序员更像学生 , 而高级程序员则需要拥有“独当一面”的能力 , 而这个过渡是需要时间的 , 也是我前两年来努力的方向之一 。
提升自己的软实力 , 成为更专业的程序员:
- 要学会积极主动沟通;
- 提升自己解决问题(bug)的能力 , 积累解决问题(bug)的经验;
- 协调(扯皮)的能力:工作方面积极主动协调部门;
- 学会合作 , 一起完成一个任务或目标 。
Share3:5年经验如何跳槽阿里?Step1:知己知彼(了解岗位职责 , 规划职业成长路径)
①岗位职责
求职时 , 我们往往更注重简历 , 却忽略了“岗位职责”这个关键词 , 实际这往往也会影响到我们的面试结果 。分页标题#e#
俗话说“知己知彼 , 百战不殆” , 岗位职责非常清晰明确地标注了应该干什么 , 怎么干 , 干到什么标准 , 对于程序员来说 , 技术掌握程度以及之后的开发内容都要了解清楚 。
随便找的公司为例 , 就更不用说BAT一线大厂了
②成长路径
在第一次正式工作后 , 我就非常认真仔细的思考过自己日后的发展方向 , 实际上程序员的成长轨迹(晋升路径)越早确定越好 。 程序员的方向大致分为技术岗和管理岗 , 而这两个方向所看重的能力还是有很大本质区别的 。
成长路径如下:
- 管理岗:初做者→技术经理→技术总监→副总裁→总裁
- 技术岗:初做者→高级工程师→技术专家→领域专家→领域权威
Step2:制定目标(制定明确的、可衡量的、可达到的、有时间限制的目标)
在职场中 , 一定要制定自己的的目标 , 这样才不免被沦为“咸鱼” , 想要快速晋升 , 就得从目标下手 , 目标需要满足SMART原则:
- 具体的(Specific)
- 可以衡量的(Measurable)
- 可以达到的(Attainable)
- 具有相关联性的(Relevant)
- 有明确的时间截止的(Time-based)
Step3:善于思考(培养逆向思维、优化思维)
不想机械式的码代码 , 快速晋升之道首先就要转变自己的思维 , 要开始慢慢调整 , 善于思考一些问题 , 培养逆向思维和优化思维 。
所谓的逆向思维 , 就是要多问自己为什么?如:
- 为什么需要这些数据?
- 为什么要做这些事?
- 为什么要做总结?
- 为什么要做规划?
- 为什么要做代码审核?
Share4:如何提升阿里社招面试通过率?(1)准备简历
面试是会根据简历来进行对你提问的 , 尤其是对于开发人员来说 , 看到你的项目经历后 , 或多或少都会问相关的问题 , 甚至一线互联网公司会针对项目进行提问 , 所以准备简历这一环节就尤为重要 。
准备简历时 , 一定要真实 , 简历作假是职场大忌 , 切记切记 。 其次 , 要分清楚“了解、熟悉、精通”三词的区别 , 对技术栈的掌握程度跟面试题难度密切相关 。
当然 , 为了帮助各位能够顺利过了简历 , 我也准备了一些模板大礼包 , 包括我自己的个人简历也在里面 , 欢迎大家参考:
(2)尽量找内推
校招容易 , 社招难 。 这是一线互联网的普遍现象 , 对于应届生的要求相对来说还是比较宽松的 , 但对于有一定工作年限的人来说 , 技术要求就比较高了 , 因此很多中途想要进一线大厂的人都说社招实在太难了 , 简历都过不了 。
那其实也是有一些“捷径”可走的 , 可以找一些内推机会 , 相对直接社招来说 , 几率大大提升了 。
(3)对技术要掌握一定的广度和深度
既然是技术岗 , 那么企业对于技术掌握的广度和深度是有自己相应的要求的 , 学历在技术面前都显得没那么重要了 , 因此努力提升自己的技术水平是程序员的首要目标 。
那么 , 技术要掌握到什么程度呢?特梳理了一下技术路线 , 如下图谱:
对于现在流行的一些技术框架 , 我又掌握得如何了呢?实际上 , 我是有一个记录学习心得 , 做学习笔记的习惯 , 所以我对一些技术也有自己的总结和经验 。
- Java核心成长笔记:
- SpringBoot核心技术笔记:
- SpringMVC开发核心笔记:
- Spring源码深度解析:
- Redis学习总结
(4)面的是什么部门?面试的时候喜欢问什么?
在面试前 , 事先要清楚自己面试的是什么部门 , 要做好功课 。 比如 , 支付宝、蚂蚁金服这类的事业部 , 项目多与金融相关 , 淘宝、拼多多则是电商 , 这些区别也会影响面试的侧重点 。分页标题#e#
至于面试官喜欢问什么 , 则需要依靠平时的刷题来积累了 , 刷刷题 , 做到举一反三 , 对面试还是有很大的帮助的 。
写在文末的箴言读万卷书 , 行万里路 。 作为程序员 , 都说职业生涯到35岁就结束了 , 实际上大可不必相信这种年龄焦虑 , 35岁上的程序员也有不少 , 要不想被市场淘汰 , 首先你的有价值 , 你没有了价值 , 无论是什么职业都被社会淘汰的 。
学习 , 永远不会辜负你 , 靠学习得到的 , 永远是你最宝贵的财富 。
以上文章中 , 提及到的所有的思维图、笔记内容、面试题等资料 , 均可以免费分享 , 只需要你:【点赞转发】+【评论】文章 , 点【关注】后【私信】关键词【笔记】即可 。
来源:(前程有光)
【】网址:/a/2021/0202/kd672310.html
标题:dev|专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?