软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

架构师并不是一个很好玩的升级路线软件落地师的日常是什么。

相对于架构师的开发工作。研发工作更有趣,更容易得到社会的承认,不论是图形学,还是人工智能,区块链,甚至黑客(网络安全),凭借你的智慧和努力,可以在短时间内取得成就,并达到一个很漂亮的高度。研发方面是拼年轻,智商和体力的工作,有众多的天才少年取得漂亮的成果,每年有大量新的技术突破和文献等着大家研究。你做的每一件事情,都能表现出漂亮的成果,全局光照,计算机视觉。或者很容易赚到很多的钱,自动驾驶或者区块链ico,就算做游戏外挂,其收入也大得超乎你的想象。

而架构师不是,架构师拼的只有经验,正确的方法和项目数量。《C++程序设计新思维》里面有一句话:“只有天才的程序员没有天才的构架师。” 在构架师的世界里不存在天才,只存在重构。一定要有正确的方法(敏捷开发),然后就是无数个项目和时间的铺垫。然而对一个架构师应该明确,我们的职责是内部质量而不是外部质量,我们要把软件做的强壮且易易扩展。但你会发现,对于外行麻瓜来说,这根本不吸引人,麻瓜老板经常说一句话:你功能做不出来我们公司就破产了,别他妈的再花时间重构了。

至于为什么架构师很少

内部原因是:架构师太无趣了,相对于图形学光照算法,你却强调测试驱动重构持续集成。研发工程师会得到大量的外部激励,所有人都去赞扬他们的成果。而构架师需要从自身产生激励的能量,比如对代码的洁癖,重构在不改变功能的情况下不断优化代码质量,一个分层,一个正确的依赖关系,甚至一个精简美丽的命名,都需要由衷地感到兴奋和刺激。否则很难熬下来。

外部原因是:浮躁的社会容不下一个架构师成长的时间和空间。一个框架师需要大量的项目经验,超级长的编码时间。坚持正确的方法和一个融洽配合的团队。国外的架构师都是大胡子,而国内程序员到30岁,老婆就催着要去做管理岗位了。和研发工作拼智商不同,架构师就拼的是经验,没大胡子没五六十岁很难成为xx之父这个级别。

行业原因是:架构师容不下架构师。架构是艺术不是科学,没有一个统一的标准,每个成型的架构师心里都有一套属于自己的程序结构和原则,你可以看到十个图形学程序员基于一个算法合作,但你很难看到两个架构师做一个项目不打架的。架构师需要有自己的团队来验证自己的观点和共同进步,但就如同食肉动物永远是食草动物的十分之一,行业也没那么多团队给架构师来糟蹋。

经历过很多项目洗礼,并有自己的想法和能力的架构师,必然是稀有动物。

但看起来无聊的架构师有什么用呢?

他是辅助英雄,给整个团队加各种属性光环:降低代码中的混乱(熵),让团队中初级的程序员做出高级的代码,提高单位时间效率避免加班,让团队更容易进入未知领域,大幅度降低企业成本。

我现在做的混合现实领域,这是一个新的领域,有一个优秀的架构师可以在没有前人经验的情况下开疆辟土,并且可以带起来整个团队的开发质量,降低成本给客户更多的获利空间。

架构师是互联网行业中的高薪、高阶岗位,公司技术团队的核心人物,在以技服人的软件领域,成为架构师,是大多数程序员的共同梦想。

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

高级架构师具备能力

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

一名优秀的架构师,除了能撸一手高质量代码,至少精通1-2门技术,还要具备足够的技术广度,从软件到硬件、开发到测试、运维到安全等等,都要面面俱到去了解掌握。当然了,人的精力是有限的,我们不可能做到每个领域都去深入,但至少需要知道其概念、运行原理、如何运用等。

软件落地师的日常是什么,为什么有人说大部分码农做不了软件架构师

高级架构师必知必会的技术清单

说了那么多,进阶成为高级架构师,技术广度包括了哪些内容?要学习掌握哪些技术呢?

我梳理了一份高级Java架构师所具备的技能知识点,其中囊括了BAT等一线互联网公司当下使用的主流技术,希望能够为大家的学习之路厘清思路、指明方向。

1、数据结构和算法

算法思想、排序算法、查找算法、高级算法、大数据算法、数据结构等。

2、编程基础和高级

Java语言基础、面向对象高级特性、反射泛型、多线程、JVM、网络编程、开源产品和技术等。

3、Java高级特性

面向对象高级、异常处理、多线程、IO和注解、反射泛型、网络编程、高级特性原理、JVM原理等。

4、开发核心

H5、JS、Java web、模板引擎等。

5、数据库开发

设计原理、事务、数据库造型(Mysql、Nosql、Memcached)、性能调优、分表分库等。

6、框架与构建

开发框架、Web服务器、缓存消息队列、构建工具、工作流与工具、搜索引擎等。

7、架构设计

Java设计模式、JAVA与UML建模、SOA/SCA/ESB/OSG、微服务架构、面向资源架构、高性能和负载均衡、大型网站架构(集群、架构设计、容灾)等。

8、分布式架构设计

缓存搭建、CDN基站搭建、消息队列搭建、数据库拆分、工程代码拆分、SOA微服务、分布式文件、搜索引擎、Sql和Nosql混搭、运维系统、监控系统、机房容灾等。

以上,只是列举了梗概。由于涉及到的知识面非常多,Mike在这里也只能抛砖引玉,受限篇幅,不可能一一描述清楚,我之前分享过的一套完整架构师技术学习知识图谱及BAT架构技术专题,感兴趣的童鞋,关注并私信回复【架构师进阶】领取。

总结

想要成为高级架构师,除了掌握一定的技术广度与技术深度,还要文武兼具、内外兼修。

撸一手高质量代码,画得了原型,能输出技术文档;

能够立足于技术和业务之间寻求平衡点,挑选适合的性价比高的技术架构和技术方案;

具备技术领导力,擅识人用人育人、沟通流畅、能扛事。

一名普通程序员通往高级架构师的路很长,需要持之以恒的学习积累,工作之外的时间,方向明确、有计划地补充相关理论知识。工作之内的时间,除了本岗工作完成出色,还要主动争取参加更多重要项目的实践机会,因为没有经历实际的业务场景演练,不可能成为一个高级架构师。

再牛逼的梦想也抵不住傻逼似的坚持,送给自己,也送给在路上的同伴们!

如果觉得有用,请点赞支持下,谢谢~

2022-06-10

2022-06-10