Why most programmers can not become an architect? Why do so many programmers have not upgraded to the architect?

Why most programmers can not become an architect?  Why do so many programmers have not upgraded to the architect?

For us programmers, either way is to take the development of management posts, from development to upgrade the project manager or even a department manager; or take the technology upgrade path. However, in terms of technology route, it can not be upgraded to architect a few programmers. On the one hand, on the advanced development positions, many companies can not even practice the programmer access to the skills of the architect, on the other hand, there are a lot of programmers do not even know the skills and upgrade paths architects need to know. Therefore, from the results, there are at least 5 percent of programmers stop at the level of "advanced development", which is very unfortunate.

The small team is generally about 10 people, which is often the most technologically cattle architect who do (or TL). Therefore, the proportion of architects in the majority of farmers in the code probably average less than 10%. The architect can also be divided into beginner, intermediate and advanced third gear, rivers and lakes real high level of software architect even less.

Therefore, the majority (more than nine out of) code dry farming for many years, or architect can not do, this is what causes it?

1: The code is divided into farming really can write code, and think to write code.

2: Really yards agriculture can write code written since that is divided into good and really pretty good.

3: really be able to write good code, the code is divided into agricultural research will continue to be optimized, and the status quo.

4: Agriculture will study the code is divided into superficial like the breadth of understanding of new technologies, as well as delve into the use of knowledge. Understand the breadth of the code have a small number of farmers willing to further some technology, like the in-depth research and often lack the breadth of knowledge.

5: very few are concerned about the breadth and depth of the code is divided into agricultural technology for technology and for the business and technology. Pure code for the agricultural technology and technology in the domestic software industry needs too often than not, the application software and the demand.

6: for the business breadth and depth of technology are aware of the code of agriculture, we need to have good communication skills.

7: And good communication, but also as part of the PM to go.

8: Then the rest, slowly out of another part of the actual development (not to do anything to achieve) or begin to rely on a variety of middleware building blocks to get to as "architecture" means.

9: remove these, and the rest have some understanding of the business, there are a variety of dabbling in the technical breadth, technical depth study on the part completely, there is a very important point, consider the issue sufficiently comprehensive and detailed.

10:细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。

而真能满足这种需求的,别说题主的10%的比例,1%能不能达到我也持怀疑态度。其实现在的“架构师”大多数都停留在8这个层次,甚至很多在5这个层次就当上title上的架构师了。

总之,成为架构师,不仅仅是工作上的简单积累,更需要主动接纳工作外的大量知识,同时,对性格上对于非技术能力上也有一定的要求,不仅如此连思维方式都很重要,外加职业发展中又有很多岔路,最后走到架构师这根树枝上的就寥寥可数了。

金字塔结构

自古以来,金字塔结构(人群分个三六九等、高中低三档)在人类社会的各行各业中普遍存在,这是客观规律。恐怕再过千万年,也是如此。

人类社会为什么普遍、长期存在金字塔现象?其他动物,比如蚂蚁、大雁社会,有吗?这个问题就很深了,刨根问底有难度,也许应该问上帝。

金字塔结构/现象从根本上决定了大多数人做不了软件架构师。不光软件工程行业如此,能做技术领导的始终必然只是位于中上层的少数人。

英文水平差

据说中国有 700 万码农,英文不好似乎是一个比较普遍的现象。英语,尤其读写不好,把合格的架构师候选人选砍掉一大半。

小富即安的心理

很多码农每月拿到万把块钱,就心安理得了,不再有更高的追求。求稳求安定,这符合大多数人的心理。不满于现状,坚持不断学习,努力提高自己的开发技术和管理水平,拥有强烈进取心,想一朝一日做编程高手、软件架构师的人毕竟是少数。

二三流企业的压制

架构师不是随便什么人可以做的。在一个企业团队里,架构师作为研发和管理骨干,具有特殊的地位和权利。

知识结构的缺陷

架构师,程序员, 产品经理的区别,大概就是建筑行业里建筑师,建筑工人,甲方业主的区别。产品经理说我要建这么这么一栋楼,架构师说好吧,我来帮你看看是做成砖木结构还是 框架结构,房型怎么设计,水电气怎么布局,预算多少,然后程序员上阵,按照图纸把楼建起来。运营是大楼的物业管理,负责营运大楼。

软件开发越来越成为传统行业(即便在互联网企 业),一个成熟的软件团队内部自然会分化出这些角色,各展所长。但非常不同的是,建筑工人很少能自发成长为建筑师,后者都是科班出身,因为建筑学科已经高 度发达,需要掌握结构力学,美学等技术,现在软件行业还没有这么高的成熟度,程序员和架构师接受的都是一样的计算机教育,所以程序员可以自学升级到架构 师,走一条不同的升级打怪路线。

Why most programmers can not become an architect?  Why do so many programmers have not upgraded to the architect?

那么,架构师是什么人呢?

按所工作的不同软件层分,有网络架构,系统架构,数据架构,业务架构,应用架构,平台架构。

按所解决的问题领域分,有电商架构,支付架构,搜索架构,安全架构,性能架构,游细架构,多媒体架构,等等等。

按其工作的深度来分,有集成架构,业务架构,模块架构,框架架构,中间件架构,软件架构,引擎架构,服务器架构,甚至编程语言架构。

是不是太乱了?好比在设计师的世界观里一切东西都需要设计。软件也需要精心设计,在优秀的程序员眼里,每一行代码都需要架构!都体现了架构。

为了解决问题,程序员自然需要架构,他们中的佼佼者被冠以架构师的名号,获得了一定的话语权,逐步成为一个职业分工,我想,这就是架构师的本来面目。

成为架构师,需要经验和眼界

老码农分为两种:游击队和板凳王

坐穿板凳有利于积累经验,而不利于开拓眼界

游遍四海有利于开拓眼界,而不利于积累经验

码农的生活是高压的,唯有热情可以驱使你一边吃着苹果,一边又去摘梨

然而,又有多少热情没有随时间而冷却呢?

如果你想要做到架构师这个级别,我自身是一名安卓程序猿,所以在这里放上这样的一份关于Android的架构进阶路线图谱,里面的内容基本概况了目前互联网的主流技术:

Android进阶路线分析

Java语言进阶

  • Application generics and annotations Retrofit of
  • Multi-threaded applications with Java File IO operations combat
  • Rxjava Principle Analysis
  • JVM memory leak analytical principle
  • ClassLioader the reflective Application Hook
  • Dynamic proxy mechanism in the source code

Senior UI with FrameWork

  • UI rendering principle
  • Principles of animation
  • Incident response mechanism
  • Screen adaptation
  • FrameWork source parsing
  • Camera Adapter

360 ° Performance Optimization

  • From the event
  • From memory
  • Caton Tuning
  • APP keep alive
  • Memory Optimization
  • Programming high-performance combat
  • OOM principle of analytic

NDK development topics

  • C / C ++ base
  • JINI Programming Fundamentals
  • Image processing and application hot fixes
  • Audio Video Development
  • OpenCV Artificial Intelligence
  • OpenCL image rendering

Cutting-edge technology topics

  • Hot Fix / hot update
  • Componentization / plug-in technology
  • RxJava depth study
  • Pictures and network architecture
  • Google I / O Assembly Technology
  • Kotlin project practical operation

Small micro-channel program

  • Applet architecture introduced
  • UI interface development
  • The practical operation of high-level API
  • Actual docking micro letter
  • Project task list
  • Film project list

Flutter Hybrid Development

  • Dart grammar
  • Flutter thread running model
  • Flutter and Native Communications Architecture
  • Flutter memory tuning
  • Flutter project combat

Wants to grow into a mobile Internet architect, these skills are essential, in addition to the above knowledge, Xiao Bian himself in some platforms also collected some experience many learning materials and personal summary, the first-line Internet companies have to go through the interview Interview the title here for everyone to share, including but not limited to high-level UI, performance optimization, mobile architect, NDK, hybrid development (ReactNative + weex) micro letter applets, Flutter Android and other advanced practice all aspects of technology; we want to help to , but also saves everyone time online in search of information to learn, you can also close friends to share a dynamic learning together!

Well, the article written here is over, if you think the article is well written give a praise chant? If you think there need to be improved, please give me a message. Will be serious inquiry, insufficiently corrected. Thank you.

Guess you like

Origin blog.51cto.com/14332859/2449780