架构师一般做到多少岁_《迷茫中的我们该如何突破瓶颈——成长为一名架构师》...

dce1cea2d908c97ad9ff1f10af406ad6.png

如何成长为一名架构师?

架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。很多程序员想成为一名架构师,但是对于其中的技能掌握程度,以及编程功底的要求?设计能力的要求有哪些?

我简要从以下6点经验来谈,从技能的角度抛砖引玉。

88b3bb33687b11a5c3a42cd565b0da8b.png

一、编程基本功:数据结构和算法

1.数据结构相关的哈希表、链表、二叉树等等

2.常见的算法有哪些?至少下图的算法我认为应该要掌握。

比如:HashMap如何扩容,重点就是考底层数据结构。

5ac9b7871b38e7ce5b3be18f5025e910.png

二、编程基本功:Java编程

这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。

7dc0a8dcfc276bfe503f7839635c2e30.png

三、Web开发

其实web开发这个领域,如果你要掌握好了,发展也非常不错的。

比如:现在的H5、小程序等,对于掌握前端技术的开发人员,竞争力也是杠杠的。

当然作为后端开发人员,多掌握点前端的技术,那也是必须的。

47c4918d8c6bcf8f647bf998e29f8823.png

四、数据库

重点就看图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。

这些都是大家熟知的,我补充点设计相关的:数据库设计范式、索引、事务、数据库相关的慢查询、长事务。

这些也算是数据库技术的编程功底。

bfeafb62c31ddb0b33e0f69cbf211fec.png

五、研发相关的框架工具

Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。

aa697ffcb04dfe8117ef5ca5f177bf2f.png

六、架构设计

谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。

除此之外,整个项目的设计,这个时候考验你的架构设计能力。

35de371095b3b0f88b9918d2c4f7ad71.png

这里的架构设计,包含的系列非常多,特别是Redis、应用程序拆分、拆分后涉及到的RPC微服务等技术,以及后端数据库的拆分技术,以及拆分后的分布式集群部署。

程序员如何突破成长瓶颈?

对工作1-3年的程序员来说,依据个人情况提前规划未来职业发展方向,这很重要。譬如,在未来3-5年甚至更久,工作要做到什么程度?往哪个方向发展?通过怎样的路径才能实现目标?如果沉浸在当下“程序员高薪”的论调中岁月静好,总归有一天会面临网上热议的“程序员中年危机”,以至于最后不得不步入转行或提前退休的尴尬局面。

作为经常跟IT人接触的我,我一直认为这个话题对程序员非常重要,今天和大家详细聊聊。

职业规划的重要性

人生和职场就像下象棋,你只有明确了目标才不会在每一步上迷茫,之所有迷茫,是因为不清楚自己最终想要什么,下一个阶段的目标在哪里?

某公司表示薪资上浮20%-30%,我应该跳槽加入吗?

我最近收到了几个offer,应该去哪一家更好?

从大公司去小公司,是否值得去尝试?

想成为架构师,但不知道自己的技术是否能胜任?

从程序员转行,但不知道未来自己的竞争力会变弱吗?

……

其实,追求短期利益(眼前)或长期利益(未来),取决于你自己的决定。

我的建议是,不要在你经历之后,再去回顾职业生涯,初期跳槽涨薪确实很快,但到了中后期,跳槽再也带不来前期的涨幅,反而在频繁的跳槽过程中,失去了很多机会,技能与业务的能力也没能积累沉淀下来,这将直接导致很多人在即将步入中年时感到异常焦虑,不知道自己未来的路何去何从。

跳槽和转行如果仅仅只是工作逃避的手段,未来你将面临更大的焦虑,未来也根本谈不上什么有什么核心竞争力。但如果跳槽和转行,是谋定而后动,围绕你的主线职业去发展,这是完全不一样的结果。

总之,在职业的选择上,绝不能有“逃避”二字,逃避将会让你无处藏身,你只有明白了这个道理,你才会去克服眼前的困难,学会承担,这样的人生才有未来。

程序员的职业发展方向

1、架构师(专注技术,侧重技术)

每一个程序员都有一个架构师的梦想,这个方向是很多技术人的第一选择,从年薪十几万的程序员成长为年薪几十万甚至过百万的架构师,给力的薪酬已足以让不少程序员心动不已。若未来你想成为架构师,那么现在至少需要清楚了解架构师的主要职责是什么?有目标有方向地坚持学习。

2、项目经理(技术一般,侧重管理)

往管理方向发展的职业路径,项目经理主要侧重于项目管理工作,主要能力是计划、沟通及组织协调。沟通和表达是开发人员短柄,所以想往此线路发展的同学,从日常的工作、生活中就得逐步加强锻炼这方面能力。

3、技术经理(技术和管理结合)

技术经理需要带领团队前行,在国内的技术经理,大部分都在30岁左右。一般,程序员在30岁是一个职业分水岭。

技术经理的这个阶段的工作重点不再是专注于技术,而是在培养团队,带领团队为主。如果你没有让团队的成员变得更好,没有分享,没有利益分享的想法,没有去帮助大家成长的想法,这样的程序员不太适合这个岗位。

总之,这个职位成全大家而不是自己才是重点。

4、产品经理(转岗)

如果你对技术发展路径、管理发展路径都不感兴趣,那么不妨考虑转产品经理,移动互联网时代,产品经理的角色越来越重要,一个好的产品经理有可能带给公司颠覆性的发展,收入各方面也还不错,我认识的一些程序员,也有转行做产品经理,并且做得还不错的。

5、CTO(管理+技术结合,侧重管理)

需要有一定的技术能力和团队管理能力。CTO的工作更偏业务、偏管理,以及商业等,主要职责包括团队管理、开发流程、公司战略、业务增长以及各类技术疑难问题的解决等,可以说是一个比较全方位的发展方向,一句话,CTO的主要职能是管理+技术+业务+商业的综合发展。

成长为Java架构师必须突破的11个技术点

1、Java基础技术体系掌握牢固:

JVM内存分配

垃圾回收

类装载机制

JVM性能优化

反射机制

多线程

网络编程

常用数据结构和相关算法

2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式:

熟练使用UML工具以及各种流程图

经典的设计模式会手写以及熟知使用场景

概要设计与详细设计

面向对象的核心思想需要运用在代码编程中,例如:高内聚低耦合

3、目前流行开源框架,除了熟练使用,还需要掌握核心原理和实现

Spring

Springmvc

MyBatis

建议看源码以及debug配合掌握实现原理。

4、熟悉Oracle、MySQL等SQL,以及MongoDB等NoSQL开发。

特别是MySQL,相关的索引优化、SQL查询优化、慢的事务优化等,以及MySQL的分库分表等也需要掌握。

MongoDB等典型的NoSQL大数据场景设计

5、CDN,以及分布式缓存系统Redis或 Memcached的设计和研发

CDN与分布式缓存的设计原理其实是一致的,重点你需要掌握两者之间的区别和使用场景。

6、熟悉底层中间件等分布式技术

分布式技术涉及范围比较广,例如相关的消息中间件就会涉及到3个以上,为什么要选择Kafka或者

RabbitMQ,选择和比较需要掌握。

除此之外,很多内部系统还会涉及到JBPM工作流中间件等。

7、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。

8、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。

大型分布式就会设计到高并发解决方案,以下有相关的知识。

9、对配置管理和敏捷研发模式有所了解。

jekins、nexus、git等

敏捷开发、极限编程等。

10、熟悉常见的一些解决方案及其原理

单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等。

11、能大概知道市面上主流技术的特点及业务瓶颈

例如秒杀系统等如何设计。

总结

不管选择什么样的路径,都离不开提前规划、充分准备,机会总会留给有准备的人。程序员是个相对公平的职业,你若盛开,蝴蝶自来,薪酬也会随能力得到明显增幅,那么大家在应对中年危机时更加游刃有余了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php-fpm初始化失败,FPM的初始化 - [ PHP7的内核剖析 ] - 在线原生手册 - php中文网

FPM的初始化接下来看下fpm的启动流程,从main()函数开始://sapi/fpm/fpm/fpm_main.cint main(int argc, char *argv[]){... //注册SAPI:将全局变量sapi_module设置为cgi_sapi_modulesapi_startup(&cgi_sapi_module);... //执行php_module_staru…

360手柄摇杆漂移修复_彻底解决你的Switch手柄摇杆问题,最省钱的完美修复。

我想很多Switch的消费者都遇到了一个问题,用久了之后的手柄失灵,移动不精准,卡顿,自动位移等现象。玩个游戏都非常的糟心。动一下摇杆角色都会自动移动...这些问题的出现主要原因是摇杆内部进了灰尘,才导致各种现象的出…

libzdb 连接mysql,数据库连接池库libzdb使用教程

Libzdb挺强大, 支持Mysql Oracle SQLite PostgreSQL,支持C和C Object C,不能在Window下用(看源码是因为基于Linux线程机制编写实现)。遗憾的是找个资料太费劲,只能到Libzdb官网:点此进入 ,今正看着上面英文…

数值分析方程求根实验matlab,数值分析实验之非线性方程求根(MATLAB实现)

一、实验目的1. 了解一般非线性方程的求根是比较复杂的事情:要讨论(或知道)它有无实根,有多少实根;知道求近似根常用的几种方法,每种方法的特点是什么。2. 用通过二分法(区间半分法)、不动点(也Picard)迭代…

iis php 数据库乱码,如何解决php插入数据乱码问题

php插入数据乱码的解决办法:首先要设置数据表的字符集为utf8;然后修改字符集格式;接着建立字符集为utf-8的数据库;最后通过php mysql语句插入数据即可。mysql数据库乱码问题解决办法我们在使用数据库(mysql)的时候最怕的就是数据库…

vc 通过句柄修改窗口大小_VC应用(1)通过VC修改销售订单行项目的字段

VC是SAP中非常重要的功能,过去多年来,我参与了不少使用VC的项目,我将通过多篇文章介绍VC的一些应用,本文介绍通过VC修改销售订单行项目的字段01 概览在销售订单创建时,对于可配置物料来说,不同的配置可能会…

springboot starter工作原理_98,谈谈SpringBoot的工作原理

对技术的探索,一切源于好奇心,保持好奇心,才能让人更年轻。至今,我们已经有了很多创建SpringBoot项目的经验,比如我们要创建一个支持web开发的项目,我们只需要引入web-starter模块即可。那么,Sp…

精英主义 遗传算法 matlab,遗传算法优化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...

1.遗传算法简介遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象.再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个“染色体”,即个体,若干个个体构成了群体(所有可能解).在遗传算法开始时,总是随机的产…

php后台管理员登录密码错误,如果后台管理员的密码错误,我该怎么办,还有两种找回密码的方法...

Dedecms是中国著名的网站管理核心. 由于编织梦想简单易用,因此可以进行二次开发,并且可以实现各种网站. 在使用dedecms的过程中,如果忘记了梦想管理后台的密码怎么办?神山个人博客分享了两种修改(重置)管理员密码的方法.1. 下载织…

mac安装多php环境变量配置,Mac如何安装多个php版本

Mac安装多个php版本的方法:首先打开Mac上的终端工具,并确认安装Homebrew;然后安装【php5.5】及对应扩展;最后执行指令【brew unlink php55】删除brew中php的软链即可。Mac安装多个php版本的方法:1、打开Mac上的终端工具…

phpexcel 获取工作簿名称_工作分享 | Excel快速汇总考勤

点击蓝字关注我们每月月底,各位同事把考勤表报到部门后,检查核对再汇总一份总考勤表上报,传统的复制粘贴总是占用不少时间,还容易出错。为提高工作效率,现利用Excel实现考勤快速汇总。01 统一考勤模板,每个…

php进程通讯方式,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?

PHP进程模型是一个正在执行的程序,可以分配给处理器并由处理器执行的一个实体;PHP进程通讯方式有管道及有名管道,信号,共享内存等;PHP进程线程的区别有进程是资源的分配和调度的一个独立单元,而线程是CPU调…

iphone怎样关闭副屏_小米新设计专利曝光:“Z”型折叠屏手机

折叠屏手机可以说是最近几年的热门话题,虽然并未大面积普及,但已有多家厂商量产上市了旗下的折叠屏手机。同样作为知名厂商的小米,曾在此前展示过旗下的折叠屏手机视频,但并未真正发布。而近日曝光的一份小米旗下专利设计则表明小…

php socket开发斗地主,基于状态机模型的斗地主游戏(NodeJsSocketIO)

1. 系统结构系统考虑使用Nodejs和SocketIo实现服务器端逻辑,前端使用HTML5。2. 逻辑流程1 . 主要逻辑包括用户进入游戏、等待对家进入游戏、游戏过程、结束统计这4个过程。2 . 游戏过程的逻辑具体如下3 . 服务器-客户端通讯逻辑如下3. 客户端界面设计1 . 登录界面2 …

wgs84转经纬度_wgs84经纬度转为cgcs2000平面坐标

航拍测绘中,pos数据多数是wgs84,而GCP坐标是2000或者80坐标。有如下2情况需要转换坐标,1.不同坐标系刺点时,位置相差较远,影响工作效率。2.该软件不支持wgs84转国家2000,比如photoscan。所以需要把pos数据转为跟像控点…

oracle sql last_value,図でイメージするOracle DatabaseのSQL全集 第3回 分析関数

指定したソートキーでの、最初の行の値を求めるのが、First_Value関数。指定したソートキーでの、最後の行の値を求めるのが、Last_Value関数。指定したソートキーでの、(Row_Numberな順位が)n番目の行の値を求めるのが、nth_Value関数となります。Oracle11gR2でnth_Value関数が…

企业信息化投入中咨询服务_全过程工程咨询服务核心价值是什么

建筑行业服务现状传统建设工程的目标、计划、控制都以参与单位个体为主要对象,项目管理的阶段性和局部性割裂了项目的内在联系,导致项目管理存在明显的管理弊端,这种模式已经与国际主流的建设管理模式脱轨。“专而不全”、“多小散”企业的参…

交流信号叠加直流偏置_放大器偏置电流Ib需要完整的直流回路

多数工程师对于放大器偏置电流参数并不陌生,它是导致放大器电路产生直流噪声的又一重要影响因素。因为偏置电流经过输入端电阻网络会形成一个失调电压源,再通过电路的噪声增益影响输出直流噪声。所以工程师会注重电阻网络的匹配,降低偏置电流…

teamviewer类似软件_TeamViewer系统后台被黑客组织APT攻破,请注意防范

TeamViewer事件10月11日,深圳市网络与信息安全信息通报中心发布了一份编号为“2019029”的名为《关于TeamViewer客户端被远程控制的紧急通报》文件,文件指出目前知名远程办公工具TeamViewer已经被境外黑客组织APT41攻破,提醒企业组织做好防护…

软件测试用例_软件测试用例设计实战场景法

不点蓝字,我们哪来故事? 目录场景法扩展例子场景法介绍影子场景法用例设计举例场景法设计用例步骤和表示场景法举例 总结 场景法的注意点场景法影子本来想直接跳过场景法的,今天群友提出问题:1、面试官问:场景…