架构师与普通开发者的区别

发布时间:2023-03-07 09:31:53

  大家好,欢迎来到图灵课堂。今天,我们来谈谈架构师和普通开发的区别。

  每个人都想成为百万架构师。我们来问两个问题。

  1.你认为架构师最伟大的地方是什么?

  2.你和架构师的差距在哪里?

  知道了这两个问题,你就知道怎么努力了。

  如何找到这两个问题的答案?

  方法很简单。去招聘网站看看对架构师的招聘要求是什么。

  我之前说过,在互联网开发领域,架构师可以分为业务架构师、中间件架构师和系统架构师。

  根据不同的方向,我们来看看招聘网站上的一些真实例子:

  java架构师40-70K 15工资

  ​

  工作说明

  1.参与相关产品需求的讨论、评审和软件设计;

  2.根据项目计划,按时提交高质量代码,完成开发任务;

  3.编制和维护标准文件,以及其他与项目相关的工作;

  4.参与个人征信、企业征信和数据核心业务系统架构的设计和优化。

  ​

  资格:

  1.本科以上学历,计算机科学或相关专业;至少3年java实际项目开发和架构设计经验;

  2.有扎实的java基础,Java是多线程并发的;熟悉主流开源应用框架,如Spring、iBatis、XML、JSON、Maven等开发技术;

  3.熟悉设计模式和OOA/OOD;;熟悉关系数据库MySQLOracle,SQL优化;熟悉Memcached,MongoDBredis等。

  4.熟悉分布式系统的设计和应用,以及分布式、缓存、消息和负载均衡的机制和实现;

  5.有风控产品/数据采集系统架构设计和开发经验者优先。

  中间件架构师30-60K 16工资

  ​

  工作说明

  负责云中间件的设计(API网关、服务框架、MQ等。)、核心代码开发、系统稳定性开发、性能优化等。

  根据云计算平台的业务需求,完成云中间件产品的架构设计和优化;

  帮助业务方解决技术问题,利用技术推动业务发展。

  精通c++或java/go并发编程,熟悉高并发、分布式通信、存储等相关技术。

  ​

  资格:

  本科以上学历,3年以上相关工作经验;

  熟悉Linux操作系统和开源中间件软件;

  熟悉消息中间件、RPC框架、API网关、数据层、性能优化等相关技术经验者优先;

  有高并发工作经验者优先;

  熟悉spring cloud,有Spring Cloud开发和优化经验者优先;

  熟悉服务网格,有istio和envoy开发经验者优先;

  熟悉gRPC/thrift框架,有gRPC/thrift框架开发和优化经验者优先;

  熟悉开源消息队列RabbitMQ/RocketMQ框架,有相关开发经验者优先。

  备注:容器k8s背景优先,但要求熟悉微服务、服务网格、spring cloud、消息队列等中间件方向。

  现场PaaS系统架构师20-40K 15工资

  ​

  工作说明

  1.负责开发实时CDN PaaS集成,包括需求分析、架构设计、部署设计等。

  2.负责梳理头部客户的业务架构,为客户整体平台建设提供咨询和规划;

  3.你需要在工作中具备咨询架构师的能力,掌握但不限于网络、计算、存储、IaaS、PaaS等领域的咨询能力;

  4.跨团队整合资源,与前台业务、职能部门、中后台产品/R&D团队共同推动项目高质量管理,共同实现项目目标。

  ​

  工作要求

  1.熟悉直播CDN的基本原理和部署架构;

  2.有扎实的编程能力和优秀的设计和代码品味;

  3.具有良好的系统分析和设计能力,能够根据客户需求和系统架构设计出合理的技术方案并落地实施;

  4.具有强烈的客户服务意识,良好的沟通协调能力,较强的大项目管理能力;

  5.具有较强的学习能力和上进心,创新思维和深度思考能力;

  6.了解容器/VM虚拟化技术、Kubernetes、Mesos、Yarn、Docker等项目。

  那么这么说吧,虽然方向不同,技术略有不同,但其实在成为胜任这些岗位的架构师的路上,你需要具备以下能力:

  技术精通,架构师思考和解决问题的能力,团队协调,管理能力和拓展人脉的能力。

  让我们扩展它

  技术控制:

  作为一名架构师,您必须掌握全面的技术堆栈。所有的技术都是工具,包括开发语言,框架,各种中间件。你必须熟练使用它们,了解它们的原理和长短板,有能力合理选择和灵活运用合适的场景。

  在学习方法上,首先你需要列出所有的技能,然后把你目前的技能和这个图表匹配起来,标出哪些是熟悉的,哪些是需要提高的,并把重点放在那些需要提高的部分。

  架构师思维:

  我们经常讲技术的问题,架构思维是架构师的“道”。

  下面给大家举几个简单的例子。

  第一点:知行合一,做之前,先考虑意义。

  也就是说,在你做一件事之前,你必须知道你的目的是什么。你的目的和你所做的应该是一个。这是一个层次。第二个层次是清楚地知道自己手中的资源允许你做什么。比如春云,我很想用,但是我的团队拿不住。你把这个东西逼下来之后,事情就没有成功。结果还是需要你承担责任。

  第二点:原生优于定制,约定大于配置。

  就是如果你没有什么特殊需求,官方的东西是最好的。保持原样,除非不符合你的要求,否则可以定制。因为你改了之后,一旦出了问题,你就很难搞清楚错误出在哪里了。而且如果有官方的问题,整个社区都在支持你,你可以及时补上。

  第三点:一切都是虚无,最终也会是虚无。

  这是我早期做架构的时候犯的一个错误。那时候一直想做一个完整的系统。无论你想做什么样的生意,只要稍加修改,一切都可以得到支持。后来发现不是我想的那样,几乎什么都支撑不了。就像造车,舒服也好,锻炼也好。两者之间没有平衡。

  控制你的技术欲。不要和你自己或者你的公司鬼混。你有强烈的技术欲望吗?你总是喜欢玩新技术。当你看到新技术时,你想在你自己的系统中使用它们。这不是一个好架构师的行为。架构的前提是稳定,这是底线。试错不能在生产环境中进行。

  第四点:离开资料片,但不要想到100年后。

  当代人做当代事,不要想那么久。当代人留下的坑,只能由后代人来填。

  第五点:没有最好,只有最适合。

  和第三个差不多,但是第三个是广度,这个是深度。不要总想在垂直领域做到尽善尽美。

  第六点:适可而止。玩的越多,风险越大。

  比如有人玩这个++ i++;最后(回归);如果(作业)的话,我们就好好享受面试吧。如果代码是这样写的,那就没什么好找的了。

  第七点:大技不工,简约最美。

  就是把代码写得非常简洁优雅。

  解决问题的能力:

  随着解决方案在日常场景中的积累,举几个例子:

  单点登录

  分布式事务和数据一致性

  峰值并发场景

  复杂的工作流程

  高并发性和吞吐量

  团队协调和管理能力(加分):

  作为一名架构师,你不再像普通开发一样,局限于你所负责的模块。

  如果你的思维和设计要成功,你需要处理好软件开发中的各种角色,你必须具备在团队层面推动事情向前发展的能力(尤其是架构团队的领导者)。

  最后,拓展你的人脉。人脉很重要。随着职位和职务的提升,需要一定的背书。顺便在这里分享一下我的亲身经历。我在毕业的前两年没有意识到这一点。3-5年,开始建立技术领域的朋友圈,认识了很多大牌,互相交流,互相学习,进步很快。

  这些都是架构师应该具备的能力,其中技术的掌握是基础,可以通过有效的学习方法快速提高。

上一篇 程序员面试技巧
下一篇 你是否适合做Java程序员,可以从这几点来判断

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题