为了升级到架构师,程序员无需过度关注哪些技能?哪些技能不可缺?_学一个操作系统对架构师有没有帮助

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

那么这方面的技能对程序员有什么帮助呢?

第一固然是面试时帮助加分,第二能让你在解决问题时有更多的方案,比如实现通知回调类需求可以用观察者模式,第三能帮助你的代码看上去不难看。

比如一些文学名著,对我们的帮助更多的是陶冶情操多涨知识,设计模式和软件重构类的著作能帮我们提升在软件开发方面的素养,在升级到架构师之前,这方面该掌握到什么程度呢?

1 了解必要的设计模式,而不是23种都面面俱到,需要结合项目问题了解,同时面试时,能结合你解决过的问题说明某些设计模式的细节。

2  了解软件重构方面的结论,比如哪类代码不好,该如何重构?

要达到这个程度,所需花费的精力并不多,但如果用大量时间看这方面纯理论的书,而不结合项目实际有选择性地调个别点来看,那么到了架构师以后,你会发现当初学的很多点对你的帮助并不大。

5 面试时如何考察架构师?架构师平时干哪些活?

在前文里,给出了一些无需着重看的技能点,无需着重看,并不是怂恿大家不学习,而是把看这些技能的时间用在能立竿见影出效果的技能上。

在讲架构师哪些技能不可缺之前,我们先来看下面试架构师的问题。

第一层问理论和实践细节,比如Netty的序列化方式,以及Dubbo针对不同级别设置超时时间的方式。

第二层问分布式调优和解决实际问题的技巧,比如如何配置MySQL主从模式,如何配置MyCAT读写分离外带高可用,如何压测,如何根据压测结果调优代码。

第三层问底层细节,比如dubbo协议,Netty读写索引的细节,kafka持久化,Redis超时失效机制等方面。

第四层是针对资深架构,问如何根据业务设计高并发框架,比如秒杀系统如何实现。

为什么要问这些呢?因为招进来的架构师需要在平时工作中干这些活,哪方面的活呢?

第一固然是高级开发所需的,分析和解决代码层面的问题。

第二是出了分布式组件方面的问题,首先知道该看哪些底层代码,即了解组件的重要组件和工作流程。而且这方面要有经验,比如出了Netty OOM问题,得知道该从堆外内存等方面排查,而且得优先检查通讯结束时release部分的代码,如果没问题再debug。这才是架构师比高级开发值钱的点。

第三得给出面向高并发高可用的方案,比如搭建负载均衡和限流组件等,而且不光是理论层面的,还得负责部署上线。

其实在我之前相关博文里,已经给出了类似内容, 上文只是总结。在下文里,将面向这个目标,给出升级到架构师不可或缺的技能,以及如何高效掌握这些技能。

6 要熟悉解决异常问题方面的组件技能

理论方面的技能应该很多,网上有很多xx大厂的面试题,而且大家只要稍微上心点,应该也能看到理论方面的相关技能,比如Netty重要组件,Netty协议等,但如果光知道这些用处不大,还得继续看解决异常方面的技能。

比如为了Dubbo超时会有什么危害,如何防治?或者Netty线程池满了以后该如何优雅降级。如何掌握这方面的技能呢?

第一到网上搜,比如用 Netty OOM异常,Netty 线上问题排查 等关键字查,这样好歹能知道该看哪些方面。我在CSDN上就看到不少结合问题分析分布式组件的文章。

第二结合平时遇到的线上问题看底层代码,分析为什么会出错,也就是说结合实践看。如果没机会实践怎么办?大厂里一般可以找其它组, 小公司一般比较全栈,估计在部门里多观察即可。

比如遇到一个MyCAT问题,大家可以先按照大神分析问题的步骤,再调试一遍代码,复盘下大神排查问题的思路,然后再扩大看下这个流程的细节,以及MyCAT的组件,这样哪怕一周遇到一次问题,一个月也有四次实践学习的机会,积累个半年,你的能力就大涨了。比起单纯看资料,这样的升级效率就高多了。

7 更要掌握全栈流程的分布式组件部署技能

这方面,要多向运维学习,小到linux命令和shell脚本,中到系统上线,大到扩容,你未必动手敲代码,但可以参与值班。架构师所需的高可能高并发技能是虚的,下面给出这方面的具体技能。

1 能通过jenkins或shell脚本部署组件的能力,系统上线时,需要了解灰度发布切流量的实践技巧。

2 未必需要了解底层,但需要配置高可用的集群,比如redis集群,一台机器出故障,第一会报警,第二能自动切换。

3 需要掌握优雅停机和迁移扩容的实践技巧,比如迁移服务时,如何设置优雅停机,扩容时,第一如何起新服务,第二如何把流量切到新服务上,第三如何设置回退预案。

4 如何组织压测,如何在压测时监控关键指标,如何根据压测结果优化性能。

还是这句话,如果当前没机会参与,就先在边上看,等给出结论后,再自己复盘看下相关技能的实践要点。这些技能就比较难得了,网上类似资料有,但很少,而且需要自己组织,所以更需要在平时工作中主动积累。我见过很多高级开发,平时也就注重在windows上开发业务,由于工作中用不到,他们为图省事,不去参与部署压测和扩容方面的工作,结果会在高级开发的阶段停滞不前,最后年龄上来了,导致无法升级。

8 随后才是看些面试题应对面试

我也知道,如果当前处于初级和高级开发阶段,平时被分配的工作任务很少涉及到上述架构师所需要的技能,但并不意味着你身边就没有架构师,工作中就看不到这方面的技能,当你通过观察复盘,结合案例掌握了架构师相关技能后,如果在大厂,那么自然有机会升级到架构师,但如果在小公司,那么你就需要多刷相关面试题了。

这方面的题太多了,比如redis面试50题,xx大厂 dubbo面试xx题。如果光看这些题,面试官一旦结合案例问dubbo细节,一定能问出你没相关经验。如果被问出没相关实践经验,那么甚至你面不上大厂的高级开发岗,更别提架构师了。

但现在你已经积累了案例经验,那通过刷题积累更广泛的技能,那么面试架构师,甚至面试大厂架构师,都不是问题了。或者退而求其次,你或者可以先进大厂做高级开发,这个职位也能积累架构师的经验,这总比在小公司前途要光明。

9 总结:不为炫耀学,学的时候更得注意优先级和方法

我们看书,不是为了向朋友炫耀自己了解多少,而是要提升自己解决实际问题的能力,看底层代码同样也如此。

在明确目标的前提下,我们也要明确学习的优先级和方法,比如一些对现阶段帮助不大的技能,可以延后学,而对升级到架构师有帮助的技能得结合实际问题学。

总之目标得明确,所谓在正确的阶段做正确的事。如果要走技术发展路线,要升级到架构师,所有的学习都得是为这个目标。如果当前的技能无法满足大厂的面试需求,应方向正确,优先结合项目实践看分布式组件技能,而不是继续挖掘单机版这类对架构师帮助不大的技能,而且总是先深入技能,再看能帮助提升知识面的各种著作。

本人在之前也写过不少关于升级到架构师技巧的文章,比如以互联网公司的经验告诉大家,架构师究竟比高级开发厉害在哪?而在这篇文章里,是针对了一些升级方法上的误区,先讲述哪些技能无需过度学,再讲述哪些技能得优先结合项目学,自认为能在前文的基础上,进一步帮助大家在升级到架构师的路上少走弯路,希望大家能喜欢。

最后感谢大家能读完本文,祝大家新春愉快,身体健康,万事如意。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

tps://bbs.csdn.net/topics/618658159)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值