初级程序员如何蜕变成首席架构师?高薪是你的目的学习是你的途径java
我今天演讲的主题是我的成长与选择。git
在我讲我我的成长经历前,我先推荐一本书「联盟」,LinkedIn 领英创始人里德•霍夫曼的做品。在「联盟」中,提供了一种使雇主与员工之间从商业交易转变为互惠关系的框架,建立了一种鼓励公司和我的相互投资的工做模式。它提出打造任期制,将非终身雇用的员工变为公司的长期人脉,并吸取员工的高效人脉情报。程序员
只有雇主与雇员结为强大的联盟,共同拥有持续的创新与丰富的智慧宝库,员工、团队、企业,乃至整个经济才能繁荣发展。面试
每一个人对于价值观有不一样的理解,我我的对于人生幸福理解很简单:年轻时有人生阅历丰富的人(下面我姑且称之为长者)指导,跟随有理想的长者去学习及改变世界;到本身成为长者时,也一样能将相同的价值观及作事方法影响一批人,聚拢一批有志青年来一块儿作有意义的事情。我说的长者不是指年龄,仍是指在人生阅历及行业领域有深刻看法的人。在这个时代,单枪匹马很难成功,我更看重团体的力量及跟优秀的人一块儿作事情。算法
长者能经过集市模式聚到一批与一样兴趣与尿点的人,这些人天天共同生活作事:吃饭、作事;吃饭、讨论;吃饭、学习打豆豆、睡觉, 找谁是豆豆。这个尿点这重要,有一样尿点也意味着有更多一块儿接触的机会。有些码农喜欢白天写代码,有些码农喜欢晚上写代码,这个尿点不一致,可能就少了不少交流的机会。一块儿生活只是一个比喻,重点是经过长者你们一块儿找到共同作事的节奏。Linux 操做系统就是在长者号召的背景下,产生于这种貌似混乱、无序的集市模式。编程
个人观察国内缺乏这种长者,大部分团队都以商业为重。在国外,硅谷科技在几十年前经过创新走在世界前列,很大程度依赖这种土壤;几百年前,欧洲的文艺复兴也依附于这份土壤。有机会我要去佛罗伦萨圣母百花大教堂与硅谷湾区看看,去感觉那些当时能影响一个时代的人物。设计模式
价值观就到这, 下面简单说下我的成长的经历。跨域
刚毕业时,放弃了父母在家乡的安排及强烈反对来到了北京,以码农的身份及 3,000 元月薪加入到某公司的企业方案部门作 ERP,盈科是一家香港电信公司,能够理解成香港的中国移动。第二份工做是在神州泰岳作信息安全方面开发,在神州泰岳的经历若是说收获较多的,多是信息安全的项目对代码质量要求严格,本身打好了较好的编程习惯与基础。缓存
转眼就毕业三年过去,到了 2010 年时候开始有些郁郁寡欢,以为本身往上进一步成长很是慢,也看不到将来的出路,感受企业信息安全领域开发不是我长期想要的技术生活。但在另一方面,我也观察到国内的互联网行业及技术都发展很是蓬勃,以为它应该是技术人员将来的方向。所以也憧憬着去尝试海量用户规模互联网平台的技术挑战,但愿能作一些更大的、能影响整个互联网用户的事情。安全
在迷茫的路口,我开始关注互联网技术,也阅读了不少互联网技术大牛的技术书籍及文章,包括有幸全盘拜读 Tim 的博客。一次偶然的机会,花了 100 元(谁说技术人员爱财如命)报名了 CSDN TUP 技术沙龙,并聆听了 Tim 当时在会议上的演讲。会议结束后我在电梯口联系 Tim 表达了求职意向,Tim 当时给了一份考试题让我回去试试。
跟不少作毕业后一直从事企业开发的同行同样,当打算转入互联网行业时候,广泛碰到经验不足及资历不够的问题。我幸亏有以前几年打好的扎实编程基础,所以提交的考题代码还不错,得到了微博面试的机会。在本身资历还比较普通的状况下,果断对本身身价清仓出血甩卖,也一样出于对团队的向往,面试时说只要能加入给多少钱都行(但码农一般也都很现实,面试完回家后就对本身提出的工资后悔了)。就在这不计较我的工资多少的状况下(也是我的为数很少的一次跳槽不大幅度涨薪),果断加入了刚处在风口不久的微博技术团队。总的来讲,此次转换于我我的这是一次全新的开始,我能够开始作本身喜欢且擅长的事:网络服务器与高并发系统。
加入微博平台团队后,开始适应互联网团队在我看来全新的开发模式。一上岗发现已俨然进入摆好台的手术室,Tim 是教授院长,提出了技术前进的总体方向。田大师就是专家主刀医生,主控一个大的模块的架构设计,剩下就等着我这个护士递手术刀(写代码)。一开始我参与了 firehose-stream 项目的开发,这是一个管理微博全部内部数据的实时数据流服务,每秒实时推送数万条数据,包括微博、评论、私信等消息及事件。当时也是紧张而又刺激,在业务飞速发展及访问量剧增的背景下解决了上线后不少问题。
通过这个项目适应后,我开始接触千万级用户访问的平台,如每秒几万、甚至十万以上的全站提醒、通知、导航、邀请等系统。每一个系统除了本身摸索,以及工做有田大师指教外,团队也提供了很是好的交流氛围。每周都有固定的时间,你们在一块儿讨论及交流技术。Tim 也每周拿出一些在架构领域有表明性的场景跟团队小伙伴一块儿探讨解决方案。除了平台有这么大的数据规模及用户访问量的环境给你们历练以外,我以为平台的技术学习氛围这也是我当时成长较快的缘由。
在微博期间作了不少项目,包括也有幸参与到核心 feed 系统的开发。几年的历练下来。慢慢从一个积极能动性型码农,成长为在高性能高并发领域略有心得的技术专家。
快乐时光老是过得快,转眼到微博又快 3 年。有一天忽然发现本身又出现了原先郁郁寡欢的心慌,隐约感受本身是但愿下一步有机会再次作一些不一样的事情。过后回想也许是本身在必定程度想从跟随者到召集者角色的转变。在微博平台的团队中,跑在前面的都是从技术到思想都很是优秀的人,在短期内我不太可能有机会超越这些前辈转变到召集者的角色。
当时的心慌也能够用一句古话来描述,人无远虑必有近忧,这是否是说明我仍是远虑者(现场鼓掌)。考虑到本身将来指望的转变,决定离开微博去创业,去主导及影响一个小范围领域的事情。走的时候心情也很是纠结,当时国内有氛围且有挑战,能收容有技术情节码农的技术团队很少,有些东西一旦失去可能再也回不去了。
不舍不仅是微博平台自己,更可能是有幸结识了一帮趣味相投资深码农,离开之后很难再有这么一个团队来成长了。包括有钢琴艺术气息的田大师、有时间洗千亿级数据(小编注:因为架构升级进行的迁移数据)而没时间洗澡的小军、算法、棋艺、运动与于一身的小麦、长胡子艺术家气息的老王、帅气的一乐、少年班福林、低调的朱总、呵护多年新同窗成长的校长、国际范 James Wei、德州赌神刀刀、托马斯海涛、兵乓球及架构高手姚老板、烤鸭老板方圆等,这些好朋友今天大多数也来到了现场。包括还在微博战斗以及散落在各大互联网公司担任要职的好朋友,我就不一一点名了。想一想都是幸运,整天跟一群这么优秀的人在一块儿,想变差都不容易。
但本身也须要跳出这个温馨区,走的时候回望奋斗过三年的理想国际大厦时,决定本身未来也要打造出一支有技术范与战斗力,同时能服务于社会并带来商业价值的工程团队,同时实现财务自由。
但创业的现实很骨感。创业失败看来是必然,里面有些隐私的因素就不在这里细说。创业公司虽然失败,但这过程当中我经历了角色转换拐点,由成熟大公司的技术专家变为创业小公司的产品技术负责人,再也不只执着技术细节点,同时还须要更多关注技术带来的商业价值。在创业阶段也经历了快速搭建一个技术团队并最后散伙的心情。
创业失败后,若是继续回到技术专家的岗位,我能够很快找到新的工做。但我心里仍然但愿继续担当技术组织者的角色,这时候可能选择大平台里面成长快的业务、以及对技术带头人有强烈需求的团队更为合适,这也许意味本身须要更长的时间去寻找及物色。
2013 年,我加入奇虎 360 PC 网游团队,负责技术架构工做,由一个更专一基础技术架构专家逐渐接触更多商业化项目,更多思考技术的商业价值。也逐渐在引进技术人才与管理技术资源方面变得娴熟。
到 2015 年,外界的条件对我感触很大,“大众创业,万众创新”,O2O 与共享经济等方向带来的互联网创业热潮,瞬间感受技术人员的春天来了,鸭子也可卖上好价钱。因为不少团队都出现“只差一个技术负责人”的场面,开始发现本身常常能跟这个行业里面大佬对上话,里面不乏有一堆跑车的上市公司 VP,或一出生坐拥数亿资产的创业新秀。当时想若是跟这些大佬们接触,即便暂时不肯加入,也能够帮他们出谋划策或物色技术高手,至少能够在必定层面发挥价值。
这是个最坏的时代, 也是个最好时代。最坏时代是到了 2015 下半年,转眼资本寒冬已来到,不少在创业的小伙伴感觉到阵阵凉意。最好的时代是说互联网依旧是国内经济发展巨大的引擎,互联网的发展离不开技术,所以技术人有比过去多得多的机会。尤为是那些有实力与口碑的技术人,一般会被各路行业大佬直接抢夺。
为了让职业生涯更好,除了技术硬实力外,还须要有高度的软实力。俗话说两手抓两手都要硬。 提高自身价值与商业价值的匹配度,让本身作得事情知足老板同时贴切商业价值,也就是这个时代技术人员的风口,这是我对当前这个互联网时代技术人成长的思考。
这也是为何我在 2015 年中选择加入了熊猫 TV,并承担了公司最重要的基础架构的职责。
回到此次新年聚会及架构开源研讨会,开源是让不少资源 free 的一个手段,但这个 free 不单指免费,更可能是指提供廉价、自由、方便、开放、平等的资源, 能够供平民来使用,这些资源再也不那么昂贵,尤为技术资源。让屌丝创业公司,也可以站在相同的起跑线与巨头比武。技术基础建设者七牛云、青云等是我敬佩的公司,我所在的公司也大量使用了这些业界提供的基础服务。
感谢这个时代经过技术人的努力,让咱们闻到 free 的味道,并让其开始生根发芽,好戏开始了,让咱们见证万物复苏的开端,由技术驱动互联网创新的大戏才刚开始。
接下来我总结一下我认为一名架构师应该掌握的专业知识点:
高性能及分布式架构
(跟上技术节奏,扩宽技术视野,程序员要往上提高,要有本身的技术工具箱和技术认知。)
迎接高并发大数据的挑战,从深度到广度完善知识体系,成为下一个互联网高薪人才。
理论结合实战,透彻理解分布式架构及其解决方案。
面向人群
一、工做1-5年须要突破瓶颈;
二、传统行业转型进入互联网行业的人群
分布式架构原理
一、分布式架构演进过程
二、如何把应用从单机扩展到分布式
三、CDN加速静态文件访问
四、系统监控、容灾、存储动态扩容
五、架构设计及业务驱动划分
六、CAP、Base理论以及其应用
分布式架构策略
一、分布式架构网络通讯原理剖析
二、通讯协议中的序列化和反序列化
三、基于框架的RPC技术Webservice/RMI/Hessian
四、深刻分析Zookeeper在disconf配置中心的应用
五、基于Zookeeper实现分布式服务器动态上下线感知
六、深刻分析Zookeeper Zab协议及选举机制源码解读
七、Dubbo管理中心及监控平台安装部署
八、基于Dubbo的分布式系统架构实战
九、Dubbo容错机制及高扩展性分析
分布式架构中间件
一、分布式消息通讯ActiveMQ/Kafka/RabbitMQ
二、Redis主从复制原理及无磁盘复制分析
三、图解Redis中AOF和RDB持久化策略的原理
四、MongoDB企业级集群解决方案
五、MongoDB数据分片、转存及恢复策略
六、基于OpenResty部署应用层Nginx以及Nginx+lua实践
七、Nginx反向代理服务器及负载均衡服务配置实战
八、基于Netty实现高性能IM聊天
九、基于Netty实现Dubbo多协议通讯支持
十、Netty无锁化串行设计及高并发处理机制
分布式架构实战
一、分布式全局ID生成方案
二、Session跨域共享及企业级单点登陆解决方案实战
三、分布式事务解决方案实战
四、高并发下的服务降级、限流实战
五、基于分布式架构下分布式锁的解决方案实战
六、分布式架构下实现分布式定时调度
微服务架构
围绕微服务的通用模式,讲解Spring Cloud的常见用法及原理。让微服务的开发更加方便、快捷,让微服务应用更加稳定、可用。
理论结合实战,透彻理解分布式架构及其解决方案。
面向人群
一、工做1-5年须要突破瓶颈
二、传统行业转型进入互联网行业的人群
在技术深度和技术广度上获得飞跃的提高。成为互联网行业所须要的IT型人才
微框架
一、与微服务之间的关系
二、 热部署实战
三、核心组件Starter、Actuator、AutoConfiguration、Cli
四、集成Mybatis实现多数据源路由实战
五、集成Dubbo 实战
六、集成Redis缓存实战
七、集成Swagger2构建API管理及测试体系
八、实现多环境配置动态解析
Spring Cloud
一、Eureka注册中心
二、Ribbon集成REST实现负载均衡
三、Fegion声明式服务调用
四、Hystrix服务熔断降级方式
五、Zuul实现微服务网关
六、Config分布式统一配置中心
七、Sleuth调用链路跟踪
八、BUS消息总线
九、基于Hystrix实现接口降级实战
十、集成Spring Cloud实现统一整合方案
Docker虚拟化
一、Docker的镜像、仓库、容器
二、Docker File构建LNMP环境部署我的博客Wordpress
三、Docker Compose构建LNMP环境部署我的博客Wordpress
四、Docker网络组成、路由互联、Openvswitch
五、基于Swarn构建Docker集群实战
六、Kubernetes 简介
漫谈微服务架构
一、SOA架构和微服务架构之间的区别和联系
二、如何设计微服务及其设计原则
三、解惑Spring Boot流行因素及可以解决什么问题
四、什么是Spring Cloud,为什么要选择Spring Cloud
五、基于全局分析Spring Cloud各个组件所解决的问题
源码分析
(好的程序员,一行代码一个设计就能看出来,源码分析带你品味代码,感觉架构)
详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提高技术审美、提升核心竞争力。
1-10年工做经验的人群
帮助你们寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其因此然。把知识变成本身的
经常使用设计模式
一、Proxy 代理模式
二、Factory 工厂模式
三、Singleton 单例模式
四、Delegate 委派模式
五、Strategy 策略模式
六、Prototype 原型模式
七、Template 模板模式
Spring5
一、IOC容器设计原理及高级特性
二、AOP设计原理
三、FactoryBean与BeanFactory
四、Spring事务处理机制
五、基于SpringJDBC手写ORM框架
六、SpringMVC九大组件
七、手写实现SpringMVC框架
八、SpringMVC与Struts2对比分析
九、Spring5新特性
MyBatis
一、代码自动生成器
二、MyBatis关联查询、嵌套查询
三、缓存使用场景及选择策略
四、Spring集成下的SqlSession与Mapper
五、MyBatis的事务
六、分析MyBatis的动态代理的真正实现
七、手写实现Mini版的MyBatis
团队协做
(团队大于3我的以后,你须要去考虑团队合做,科学管理)
工欲善其事必先利其器,无论是小白,仍是资深开发,都须要先选择好的工具。提高开发效率和团队协做效率,让本身有更多时间来思考
面向人群:具备1-5年工做经验的人群
Maven
生成可执行jar、理解Scope生成最精确的jar
类冲突、包依赖 NoClassDefFoundError问题定位及解决
架构师必备之Maven生成Archetype
Maven流行插件实战、手写本身的插件
Nexus使用、上传、配置
对比Gradle
Jenkins
搭建Jenkins自动部署环境
Jenkins集成maven、git实现自动部署
testpreproduction 多环境发布
Jenkins多环境配置、权限管理及插件使用
Sonar
使用Sonar进行代码质量管理
关于代码检查工具FindBugs/PMD的运用
SonarQube代码质量管理平台安装及使用
使用Jenkins与Sonar集成对代码进行持续检测
Idea与Sonar集合的使用
Git
什么是Git以及Git的工做原理
Git经常使用命令Best practise(避坑教学)
Git冲突怎么引发的,如何解决
架构师职责:Git flow规范团队git使用规程
团队案例分享(买不到才是最贵的)
性能优化
(追求高效、科学调优,不靠碰运气)
理解性能优化
性能基准
性能优化究竟是什么
衡量维度
JVM调优
知其然,知其因此然
详解什么是JVM运行时数据区
详解什么是JVM内存模型JMM
详解GC可达
详解各垃圾回收器使用场景
实战MAT分析dump文件
Tomcat调优
How if works探查Tomcat的运行机制及框架
分析Tomcat线程模型
Tomcat系统参数认识及调优
基准测试
MySQL调优
理解MySPL底层B+Tree机制
SQL执行计划详解
索引优化详解
SQL语句优化
成功的人不是天降恩赐,机会都是留给有准备的人,做为一名程序员须要不断学习,让本身拥有足够强大的能力才能去想高薪。让你作个什么事情你都作不了,还看不到你好好学习,若是你是老板,你愿意将高薪给这样一个无关紧要的人么?他凭什么给你高薪,你有什么能力让人给你高薪?
电商项目实战
大型电商分布式系统应用实践,利用云服务器搭建真实的开发和部署环境,千人在线参与开发。
由浅入深的,带你从零到项目发布上线与运维,让你体验真实的企业级项目开发过程,掌握大牛的编码思惟、经验与技巧。
一、具备1-5年工做经验的人群。
二、具有独立开发和搭建分布架构系统的能力。
三、学习完后至关于具有2年以上互联网开发经验。
用户认证
用户注册
SSO单点登陆
第三方登陆
UI页面拦截
业务拦截
店铺、商品
聚合检索
动静分离
店铺管理
商品管理
订单、支付
订单号统一辈子成规则
下单流程管理
库存管理
购物车
优惠券支付
积分支付
第三方支付
数据统计分析
用户行为分析
行业分析
区域分析
通知推送
融云推送
消息中间件
用户群聊
点对点聊天
文件断点续传
想要学习以上课程加Q3064833410咨询
java架构\多线程\高性能群:454377428