一个朋友刚毕业那年,以外包的身份进入了某度,那个时候几乎每一天都很焦虑,大家技术能力没差太多,为什么自己是外包?
后来辞职,去了一家 20
人左右的创业公司,担任技术主管。由于团队不大,他毕竟有大厂的落地经验,也很年轻比较有想法,带了2、3个人把自己的想法基本都落地了。某一些时刻还是很满足当时的状态,毕竟压力不大,薪资也不错。
有一次和大学同学聚会,和几个一线互联网大厂的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,一直在纯输出,创业公司的业务发展很慢,不管是管理还是技术都很受限制,甚至还不如外包时候的技术成长。
然后他就开始刻意让自己输入一些东西。因为学习能力还不错,通过一位前同事的引荐,就进入了现在的公司,并且一路成长为架构师,薪资也碾压了同龄人。
回顾自己的这 10 年,总结一句话就是:
走出舒适圈,保持刻意学习,才有成为架构师的可能。
如今技术发展的速度非常快,接下来你该从哪些地方开始自己的刻意练习呢?给你 5 点建议:
1、读懂框架源码
框架它本身就是一个工具,但是作为高级工程师与架构师这个是你必须要学会和掌握的。让你读源码并不是真的让你读懂它,而是要理解它底层实现的原理,培养起框架思维和自定义框架的能力。
spring源码笔记
2、掌握分布式架构设计
面对互联网项目高并发、高可用、高性能的特点,分布式系统的架构能力是你必须要掌握的。面对亿级的数据系统架构如何迎接高并发流量的挑战,这是作为架构师,必须要考虑的问题。
《分布式服务架构原理、设计与实战》
《可伸缩服务架构:框架与中间件》
3、深刻搞懂算法和计算机底层原理
项目性能瓶颈一部分是要通过底层调优实现的,而一些高级的内核和引擎开发往往是需要一些精良算法和对底层原理的理解才能完成的,
只有掌握这些,才能多一些角度进行项目优化。
并且,去一些大厂面试,也是 100% 都会面到的。就算你现在的工作还用不到算法和底层原理,但如何以后想要进BAT这样的的大厂,还是要尽快学习起来。
算法
4、掌握数据库调优和选型
架构最难的部分就是存储,如何用 MySQL 支撑起海量的数据,并保持高响应性,如何让数据库持续的稳定运行,都是必须掌握的技能。不管是现在主流的
MySQL,MongoDB、还是大数据 Hadoop 生态圈中的 HBase 等等。
掌握这些数据技术让你不管是面试还是技术方案选型,都可以锦上添花,并且能够应对向大数据延展的业务需求。
高性能MySQL
MySQL性能优化的21个最佳实践
5、性能调优与解决方案
对 Tomcat、Nginx
等主流应用服务器能够进行深入使用,通过性能调优能够支撑业务的并发。一些经典场景化问题给出解决方案,如SSO、即时通讯、订单系统、日志系统等等,并能够在面对众多方案时知道如何进行选择。
Nginx完全开发指南
Tomcat架构解析
有想获取以上对应学习文档的朋友,看下图: