经常有以前的同事或者群友问我如何成为架构师,如何保持学习,如何写简历等等问题。前段时间我也在公司部门内部做了一次非正式分享(只列提纲没写内容,即兴发挥)主要介绍作为技术人如何学习,如何成长。最近从广州离职回到长沙也是职业生涯的一次大抉择,于是把之前分享内容写下来一方面作为自我总结,另外一方面也希望对其他后辈技术人有借鉴意义。因为是自我总结不一定完全对,欢迎交流。话不多说,直奔主题。
学习篇
学习路线
相比10年前现在的技术分门别类越来越多,各种端、各种开发语言、各种框架、各种领域。于是在学习路线制定上很多技术小伙伴就显得很盲目。针对这个问题我总结如下两点:
- 选定领域深耕:譬如微服务架构大数据、AI等大方向,或者从数据库优化、IM、搜索分词等更细的领域进行深入学习与实践。任何技术要先深入一定需要大量的实践场景,所以就要贴合你都工作场景。一般你根据你都工作内容或者未来职业规划同步进行规划。
- 适当建立知识广度:如果你以后希望朝技术架构、技术规划方面发展知识广度尤其重要。但是在这个过程一定要把握度。以我都经验首先根据场景选择固定技术框架形成最佳实践、其次就是按场景、落地方案等维度建立自己的知识图谱。譬如:消息队列有那些可选的产品,各种适用场景及优缺点等。
学习方法
相比10年前,现在学习途径也越来越多,各种从入门到精通的书籍、直播课、开源项目以及线下技术交流层不不穷。根据我面试过的很多人发现现在越来越多的人倾向于开直播课或者购买入门的书籍进行一门新技术的学习,这一点我是觉得非常不可取的。为什么呢?首先直播课或者入门书籍大部分只会告诉你HOW而忽略了WHY,大部分人在被动式灌输的学习氛围下往往就放弃了自我思考,下一步要怎么做接下来的内容就会呈现我何必要思考呢,这也是在舒适区呆久了的自然反应。那么我们应该怎么学习呢?我有以下几点总结:
- 多看理论性、方法论介绍方面的书籍。慢慢读反复读,多做笔记。潜移默化的培养对技术的认知体系。
- 多动手,实践出真章。从官方文档及quick start开始,然后到github搜索相关的example(搜索技巧也要掌握),到了一定阶段就拉一个完整的开源项目本地跑起来,根据输出关键日志,进行断点调试等。
知识图谱建立
前面也提到了知识图谱,那么如何建立自己的知识图谱呢?以我的经验我总结如下:
- 工具及展示方式不重要,你看得懂即可。用脑图,在线笔记都行。我是用网易云笔记。
- 随手记,举一反三,深挖一尺。譬如项目中第一次接触某个技术如:MQ 。那么就可以搜索一下MQ有那些产品,各种优缺点然后按一定结构记录下来。再譬如用了某个linux命令,就把相关用法记录下来。
- 利用碎片时间多回顾以及完善自己的知识图谱。
自我修养篇
建立成就感
大部分而言工作只是糊口的工具。工作及兴趣是可遇不可求。那么作为技术人应该怎么人为创造这种契合点呢?就我都经历我总结了一条实施路径:
- 代码资产化:把自己写的核心代码归档起来,譬如自己维护一个工具类项目,在项目过程中不断完善修正,久而久之就形成了完善的工具包,你可以开源出来,一旦有人认可你,成就感自然而然就有了。
- 个人品牌建立:可以通过开源项目、博客、QQ群微信群等途径传播形成个人品牌。这个门槛说高不高说低不低,关键需要时间投入和长时间运营。之前认识一哥们儿在github维护了一个idea开发工具使用技巧的项目,star有近10万。这个就可以驱动他一直投入时间精心呵护这个项目,这就是成就感的体现。
- 圈子文化:有机会多混技术圈子,建立圈子人脉关系。
建立大局观
据我观察大部分程序员在工作中是缺乏大局观的。譬如参与一个项目他只关注他自己负责的一部分,长年累月做一个螺丝钉,对于产品的需求也是照单全收。这方面我反复会告诫我带的项目团队成员以下几点:
- 一个技术人的价值不仅仅是把产品需求工工整整的代码化,更重要的是在开发过着眼全局,熟悉项目全貌,形成自己对整体项目的理解,对行业知识的沉淀。
- 不做工具人。要勇于对不合理产品需求提出异议。要做到这点就必须要首先对项目有全局的理解,包括后续可能出现的延伸方向。
- 多关注和思考技术外的领域。譬如:产品、互联网趋势等。
情商修炼
无论是自嘲过度还是认知偏差,目前程序员整体对外的印象就是:内向,情商低。在工作中确实也遇到很多同事有这种特点。从我的认知来看如何提高情商,我总结了以下几点:
- 收起无知的鄙视链,我见识过很多做技术的对譬如《非诚勿扰》等综艺节目,流量明星等嗤之以鼻。而且还要把这种鄙夷表露出来显得自己高雅。我认为任何人和物存在即合理,存在下来就一定是为了满足不同圈层人的某些需求。
- 除了技术外要多接触各种知识,无论是政治军事还是娱乐八卦。之前呆的一家公司BOSS说过一句话对我影响非常大。大概意思就是:要想结交不同的人,就要认同不同圈子的文化,上到聊天文地理国家大事,下到聊育儿养猫从你都认知体系内都要能信手拈来,不一定需要多专业,关键是聊得来。
- 多接触技术圈以外的人。学会和各种人打交道。譬如本人热爱民谣就经常混迹在各种音乐节。
职业规划篇
由于近期离职找工作有一些感悟。先聊聊所谓的技术人35岁危机。我今年37岁,近期从广州回长沙发展大概面了8家长沙的公司,职位基本锁定平台架构,中台架构方向。8家公司基本都是各个领域TOP3的公司涵盖电商,金融,智能制造,银行,医疗健康等领域。历时一个月一共拿了5个offer。总结来说并没有出现35岁危机。纵观阿里华为这些35岁危机始作俑者,他们内部高级别架构,核心技术人员一定也是35岁 的居多。究其根本所谓35岁危机在于你是有35岁该有的技术沉淀还是你做同样的工作干了35年。如果你35岁还是干25岁小伙子能干的活,被淘汰是显而易见的。那么我们怎么避免35岁危机呢?我总结了以下几点:
- 有机会一定要去大厂镀金。平台背书是最有说服力的。这点我说错过之后才体会到的。
- 清晰的自我定位,即未来你想持续做的是什么。不要因为是一份开发工作或者多几百块钱就就去做。要么你选择一个行业深耕成为行业专家;要么选择一个技术方向深耕。我从2015年后换了3家公司,我找的方向都是有强烈系统全面重构和技术升级需求的公司。
- 工作中的专业技能的沉淀,内透到外显。譬如各大技术厂商认证专家,高star的开源项目,高关注的原创博客等。
如何高效找工作
这些年我也面试过不少人,让我看完简历或者小聊几句就惊艳到的比例相当少。我发现大部分搞技术的都不会包装自己。下面就我个人经验聊聊如何自我包装高效找工作。
- 打铁还需自身硬,日积月累建立完备知识体系。实在这方面之前没有太多积累,可以借助github搜索面试相关高star项目,很多别人整理的非常完善的知识体系。花一个月时间准备,把别人整理的内容转化为自己的知识体系。
- 花心思组织简历。当然首先要坚持诚实,毕竟简历造假后果很严重。那么怎么打造个人简历呢?首先要在最显著的位置突现你的核心价值如:亿级流量架构经验;其次项目经验要主次分明重点介绍参与度高的核心项目,没有人会关注项目本身,所以要突现你在这个项目参与了那些关键节点突破了那些技术难点;再次简历要突现你除了技术本身的能力,如:沟通能力,管理能力,决断能力等。
- 投简历过程要降低信息不对等。首先要坚信互联网付费用户永远是爸爸,所以建议一切准备好准备开始投简历了就开一个月会员,也就几十块一百多块钱。其次换位思考假设我是招聘方我怎么搜索匹配合适人选?根据实际情况设置关键词精准匹配企业主动搜索,这种情况企业基本都是有真实招聘需求的。
- 面试过程多引争取话语权。譬如在自我介绍或者项目介绍中埋下引子引导面试官追问,当然前提是你要能预见面试官追问的方向提前多准备。
结语
十余年一直在技术一线,句句真言,希望能有共鸣。
个人简介
热爱技术、开源拥趸、微服务践行者。
个人开源项目列表:
- https://gitee.com/vakinge/jeesuite-libs (组件库)
- https://gitee.com/vakinge/jeesuite-config (配置中心)
- https://gitee.com/vakinge/jeesuite-passport (统一认证平台)
- https://gitee.com/vakinge/oneplatform (企业级开发平台)