前言
李笑来常说:“7 年就是一辈子。”
寓意人自身的“操作系统”可用 7 年时间完成一次“升级”,形成翻天覆地般的变化。
但对于众多初级软件工程师来说,7 年太长,往往 3 年就是一个坎儿。
打开 BOSS 直聘、猎聘等众多求职软件,你会发现 1-3 年经验的程序员是一个特殊的群体。乍一看,他们起薪尚可,能力要求也以基础为主,挑战并不严峻,甚至有点悠闲。
但进入 3-5 年、5-10 年经验程序员的招聘帖子,压力会骤然增大:与岗位职责相关的动词由“参与”变作“承载”,由“提升”变成“保证”;在能力要求上,“熟练掌握”则统统变成了“深刻理解”。
许多年轻程序员的危机,都来自于 3 年左右经验时的一次跳槽 —— 基础知识轻松搞定,深入提问则啥也不懂。3 年时间,做了很多业务逻辑实现,性能问题却从未关注过,归根结底,还是成长速度太慢,迷失在“温水煮青蛙”般的研发日常中。
技术人生的最大危机不是 35 岁,而是你的个人成长速度,首次低于群体平均速度之时。
那么对于 1 - 3 年经验的程序员来说,如何保持最快的成长速度,找到最短的成长路径,超越 80% 的同龄人?
职业规划的思考
确定方向
做职业规划的目的是避免迷茫,而避免迷茫最有效的方式就是确定明确的方向和目标。
对于任何一个技术岗位,都有固定的两个方向:技术专家(架构师)和 开发经理。前者偏重技术,需要你在当前领域钻研得很深;后者偏向管理,需要你在对技术有很深掌握的同时,可以带领团队完成项目的开发。当然,两者并不是鱼与熊掌的关系,你可以同时成为技术专家和开发经理。
当你选择好一个方向后,你就要朝着这个方向一步一步进发。丹尼尔在《一万小时天才理论》提出一万小时定律,即要成为某个领域的专家,需要积累一万小时。当然这只是个概数,不过每天花更多的时间去学习和实践,肯定是最有效的。这里,成为技术专家和开发经理过程中,关注的点略有差别。成长为技术专家,要更多关注技术本身的实现,包括逻辑、架构、设计模式、方法论等;而成长为技术经理,则要更多关注技术开发的过程,考虑如何提高开发效率、降低开发成本、优化开发质量等等。不同的人,精力是有限的,选择性关注一些必要的方面,对自身快速的成长是很有必要的。
做业务还是做架构
做业务,时间要求比较紧,代码质量要求高,可参考的代码比较多,业务知识需要学习。做架构,时间稍微自由,对经验要求比较高,无可参考代码,专业基础知识需要深刻理解;最主要的,做架构的你既是开发,又是用户,还是 PM ,只有 80% - 90% 的明确目标,并在开发过程中不断微调最终的目标。
对于1-3年的来说,做业务才是好的选择,而且做 技术含量高、使用流行技术 的业务才是最好的。原因很简单,架构的最终的目的是解决业务当中的问题,你没做过业务,哪能知道业务的问题在哪,你都不知道要解决什么问题,如何做好架构。而选择有技术含量、使用流行技术的业务的原因更多在于成长,这样你的成长可能会更快、成长道路可能会更直。当然,这只是『可能』,不同的人适合不同的业务,所以不要强求一定『技术含量高、使用流行技术』的业务,更多的而是改变自己,去适应团队、适应业务,这样才能 更快地成长。
技术的学习
学技术先把当前使用的技术学透用熟,才是最重要的;千万不要在还没把当前使用的技术吃透之前,去学新的东西,不管新的东西有多火。就像上文所说,不同的框架,有不同的核心,有不同的思想。两个框架代码相似之处的思想不一定相似,例如 Angular 和 Vue 都有双向绑定,虽然效果相似,但是实现思想和内部实现方式是截然不同的。还在入门阶段的你,会被各种思想充斥头脑,反而会更不清楚。
一定的时间后,当你理解透一个架构体系后,你可以 类比地去看 更多的架构体系。这时候,你会发现不同架构很多东西都是殊途同归,理解得很快。
正确打开面试姿势
知识与技能考察
面试官通过面试题看个人能力,有很多面试官也会现场要求面试者写出尽可能多的测试用例,以考察面试者是否具备全面思考的能力。
那么在找工作或跳槽刷面试题是必不可少一环节,小编为小伙伴们准备了三份面试题文档,分别是前端面试题解析文资料、React面试题总结资料、大厂面试题知识点资料,每份资料里的面试题有着详细的答案,有的题目会附上代码,这样看会对题目有个更清晰了解,综合代码看对题目记忆更深刻。
前端面试题解析文档
这份资料共有140道题目,285页,除了出示答案外,还有说到相关知识点,基础不好或背题较慢的小伙伴可以看看这份资料,帮助你理解性去看题。
React面试题总结
这份资料是React的专栏,面试题分为基础知识、React组件、React Redux、React 路由这四部分,喜欢这种专栏资料的小伙伴可以评论区告诉小编噢!
大厂面试题知识点
这份资料是把大厂的面试题在做了个整合,后面有最新加上的算法面试题,算法这不就是大厂爱考的点,咱们准备起来!
篇幅原因,就没有列举题目了,需要其中一份或三份的完整版面试题PDF资料的小伙伴,请点击下方卡片直接共享发你噢。
快速学习与解决问题的能力
该类型能力,是在上一级能力考察之上的递进:会写代码,不代表你善于解决问题。
面对一个复杂的问题,有没有思路?能否找到正确的解法?这样的能力有时比单纯编写代码更为关键,他将直接决定工程师能创造多少业务价值,彰显出多大的个人能力。
技术进步的速度非常之快,技术人必须拥有快速学习能力,才能保证跟上技术进步的速度。
心态
所谓心态,其实可以理解为事业心、进取心,尤其在厮杀惨烈的互联网行业,如果进取心不足,就有跟不上业务发展的可能。
梅花创投创始合伙人吴世春曾提出了一个形容所谓“小镇青年”的概念:PSD:P(Poor 贫穷)、S(Smart 聪明)、D(Desire 欲望),并称:“我投的很多创业者都是小镇青年。”
如今在职场上,很多面试官也开始青睐“小镇青年们”,他们有野心、有欲望,敢于用聪明才智挑战种种不可能的任务,因而成为这个时代的中坚力量。
结尾
对于做技术的人来说,一定要树立终身学习的理念,技术更新很快,不多学习些新东西,很快会被淘汰。 另外做技术的人一般是能坐得住的人,如果你不太喜欢学习新东西,建议趁着年轻改行,总好过老了身不由己。
注:文章中前端面试题解析文资料、React面试题总结资料、大厂面试题知识点资料都请直接点击下方卡片与小编共享。
点击这里
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。