03.06 为什么有人说大部分码农做不了软件架构师?

用户2361374624463854


从事软件开发多年,在编程行业真正的架构师比例少的可怜,就目前国内软件开发环境而言,真正意义的架构师还不是很多,因为大部分的代码框架几乎从开源代码社区里面拿出来,然后定制成自己公司产品需要的,其中研究框架的时间比较长的,并且能够深度定制的程序员就算是高手了,因为很多开源的代码更新速度非常快速,能跟上开源社区的代码更新速度的企业已经是实力非常强的公司了,国内企业现在真正意义上的从头开始设计一个框架然后推向市场相对比较少。

国内软件水平处于什么状态

经过十几年的发展,国内编程人才的平均水平已经上来了,虽然在顶级程序员由于在编程底蕴以及生态系统这块有差距,但基层的程序员水平已经上来了,国内很多互联网公司做的产品有些已经不弱于欧美等企业,这些都是国内程序员水平提升的结果,而且现在由于培训行业在国内普及,入门级别的程序员在国内数量巨大,所以很多人喊着国内程序员行业已经饱和了,已经不适合再去从事程序员的工作了。

事实上国内软件行业内需依然足够多,特别是现在的三四线城市都陆续出现了软件公司,而且规模和数量都在提升,国内企业对中高级程序员的需求量还是非常巨大,五六年大小公司对于这类的人才招聘一直没有停止过,而且薪资水平还维持在非常高的水准,了解这个行业现状对于规划自己的职业生涯还是有着非常大的好处。

如何成为优秀的程序员

架构师这种职位可遇不可求,基本上国内架构师都是自己本公司内的优秀的软件工程师,成为了优秀的程序员并且在公司内部深得公司的信任愿意给这种突破的机会,抓住了后边的就会给与架构师的待遇,不是每个程序员天生就是做架构师的料,关键还在于平时的积累,有了机会抓住了,要成为架构师先要自己成为一个优秀的程序员,优秀的程序员需要具备什么样子的因素,现在就根据自己技术生涯的一些经历分享给大家。

基本功扎实。很多程序员在入门之前由于在学校里面比较重视基础,还能看看基础,在成为了程序员之后就开始放松了对这方面的要求,所以导致很多程序员见到有笔试的公司,直接就选择了放弃走人,不能讲这类的程序员水平不行,但起码不是优秀程序员的范畴, 优秀的程序员是经得住基本功考验的,是不怕这些所谓的笔试题目的。

算法扎实。很多程序员做了很长时间还不觉得算法挺重要,算法贯穿整个技术生涯,如果没有意识到这点说明意识层面还没理解到,证明需要弥补的东西还是非常多,有些程序员可能是学习了一门编程语言就匆匆去找工作了,运气还不错还找到工作了,没有很好的规划技术生涯路线,一个标准的程序员需要的一门基础的编程语言,熟悉数据结构,并且穿插着学习算法,这三样也是优秀程序员的标配,学习技术不是由着自己性子去做事,需要有规划,这其中不能少了算法的因子。

锤炼编程思想。很多程序员觉得能够写代码,时间长了经验到位了慢慢就能熬成资深技术专家了,程序员不是靠着熬日子过的,需要不断的提炼编程思想,举个简单的例子,做网络编程如果懂得了一门编程语言的编程经验,相信切换到别的语言只需要很短时间内就能搞定,而且积累总结类似的场景以后遇到这种场景都能灵活应对,还能同步迁移到类似的场景,不能只是为了做而作,仅仅就是为了完成任务,那么提升的空间有限,不能因为工作承担的东西就这么点,而不去补充其余的东西,善于总结也是优秀程序员需要具备的一种意识。

成为架构师没有所谓的模板,而且有些人一辈子也没有这种机会,但想要达到这种境界就需要先让自己成为一个优秀的程序员,这样子遇到有理想的企业抓住机会就上去了,一旦进入这个级别后面的编程生涯就会有根本的变化了,关键在于平时一点一滴的积累,让自己长期处于一种高效的学习状态,有太多的程序员经历了几年的适应期就提前让自己进入了舒适期,结果随着年龄的增长技能没有相应的跟上导致年龄大了竞争力下降,出现了老了被企业淘汰的悲剧,什么样子的态度决定什么样子的人生,也就决定了什么样子的结局,希望能帮到你。


大学生编程指南


作为一名IT行业的从业者,同时也是一名计算机专业的研究生导师,我来回答一下这个问题。

首先,目前IT行业内大量的程序员确实无法成长为架构师,主要原因集中在三点,其一是自身的知识结构不足以支撑向架构师方向发展;其二是岗位工作任务受限;其三是行业迭代速度太快,学习压力较大。

早期的架构师主要集中在后端领域,针对于不同的开发领域,对于架构师的要求也不尽相同。总的来说,架构师的任务主要集中在三个方面,其一是整体技术框架设计;其二是技术选型;其三是解决难点问题。所以对于程序员来说,如果想成长为架构师,需要做好以下几个方面的知识储备:

第一:丰富的开发经验。开发经验通常是软件架构师的基本要求,通常软件架构师都是从初级程序员、主力程序员、研发级程序员等岗位一步一步成长起来的,每一个阶段都会积累一定的开发经验,这些经验对于架构师的方案设计会起到重要的作用。对于大量的程序员来说,从主力程序员向研发级程序员发展会存在较大的困难,主要原因就是基础知识结构的问题,不少程序员通过读研的方式完成这一步升级。

第二:丰富的知识结构。架构师的知识结构不仅仅局限在技术层面,还需要掌握大量的行业知识,不同行业领域往往有不同的特点,要能够根据这些特点来完成具体的方案设计。

第三:紧跟技术发展趋势。架构师一定要紧跟技术发展趋势,同时能够对于未来的发展方向有较强的认知能力,这对于架构师的方案设计会起到重要的作用。对于技术趋势的认知能力,是判断一名架构师能力的重要因素。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!


IT人刘俊明


这个问题不知道提出来的缘由是啥,其实问题不是很合适,不过还是一分为二的来回答一下,如下:

架构师不是谁都能做到的,我想说如下几点:首先,应具备的素质应该是快速的学习能力,需要从平常的任何工作活动中,快速学习,包括从自己的本质工作完成,以及与他人的交流中,而后者又尤其重要,从别人那儿学来,而快速形成自己的理解并超越对方,而这,从自然规律角度上来讲,这只有少数人能做到;

其次,需要具有全局的视野,能平衡整系统各子系统之间的解耦与耦合,这个需要积累,需要在各子系统内有实际项目的、比较成功的设计编码的问题处理能力,而尤其是问题处理能力又尤为重要,这也不是段时间能达到。

第三,在这个行当内,能静下心来踏踏实实,保持饥渴的学习,保持积极正向的心态,不断的越挫越勇,始终往设计架构方面努力,在当下整个行业浮躁的环境下,很对都想通过不断的跳槽来达到涨薪的目的,这又会淘汰一大部分人。

最后,即便具备了素质,你能否当上架构师,取决于客观因素了。因为一个架构师,决定了他所在领域的发展规划,以及当前的问题现状的改进,这个位置至关重要,不是那个人,上一层组织关系是不会让你做这个位置的,上层组织还会考察你除了技术能力以外的,诸如与人沟通,管理你的上下级,包括你的上级的上一级到连三级的关系,关系到你的直接老板的,这些其实就很难说了。

呵呵,当然了,还有其他很多了,靠这个问题是说不清道不全的。


ICT专业搬砖


架构师并不是一个很好玩的升级路线。

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


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


至于为什么架构师很少

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


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


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


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


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

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


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


Java架构学习交流


1、码农和架构师是两个工种,而且简直不一样。

2、码农只需要根据需求把程序实现。

3、架构师要掌握性能、网络、服务器、数据、软硬件、缓存、前后端框架、数据库等项目开发中的无数个内容。

4、架构师还要能表达,把其他人说服。

5、架构师还要一定程度的考虑预算和商务问题。

6、架构师要熟悉多种编程语言和数据库。



天火号


平常,开发的团队一般都是10多人组成。几个团队间一般会存在一个技术面最广、技术经验较充足的人,叫做架构师或者说是TL。而架构师的存在,一般在众多的码农中占的比例少之又少,可能连码农总人数的10% 都达不到。软件架构师也存在初中高级。

码农都会写代码,对计算机编程语言都有自身的理解。但是很多时候,程序员或者说是码农只是机械的完成自身的编码工作。为了完成任务,成长有限。

看到这里,很多人都会说:编码时间长了,经验积累的足够,自身也就逐渐成为了资深技术专家。想法其实不能说是不正确,在一个人见多识广后,自然自身的内涵也就足够的丰富。从码农的角度出发。除了架构师,很少有35岁以上的人士会在互联网做程序开发。而一个人想要通过机械性质的编码积累经验。需要多少年成长才能见多识广呢?是否会有码农坚持到那一时刻呢?一个值得商榷的问题?

码农是一份年轻人为主的职业。平均从业者的年龄都是20多岁。慢慢熬、慢慢积累在码农中也不能说错。但是很多人在软件开发领域积累一定的经验后就会转型不做开发。

所以说,长久时间的码农很少。而在短暂的码农开发软件的工作中,脱颖而出,成长起来的人更少。

些许拙见,供您参考。

从事互联网开发多年,欢迎大家骚扰


凯腾凯


真正的软件架构师对各方面的职业素养都要求比较高。架构师的工作,不是平时工作的简单堆叠,除了专业技能要过硬外,还要思维活,想东西细致全面,需要自己去主动去接纳工作以外的大量知识。此外,在性格方面也有一定要求,一个软件架构师往往还需要具备善于沟通的品质。


总而言之就是要技术好、思维活、会交际。大多数程序员做不到架构师的位置主要是因为自身能力达不到,其次是一个公司里面架构师占比本来就想小。


第一:缺少接触的机会

一般程序员在公司负责的工作主要是维护日常的需求,在原有的架构上进行修改,所以很少会接触到架构层面的东西。长期缺少接触相关的知识及业务的机会,久而久之离架构师的标准也会越来越远。

第二:知识储备受限

年轻的程序员在知识储备上无法达到成为架构师的标准。

现代的高可用架构一般为:RDS、Cache、MQ、后端服务、监控服务。而随便拿其中一个点,都有着非常多的技术点知识点需要掌握。


比如在多系统交互中,如何保证MQ中的消息能被对方系统消费,如何设计高可用的服务负载均衡,这些都是需要很多经验才可以解决,但是一般的程序员又不容易接触到架构设计。

而年纪大点的程序员要么是后期缺少折腾的的动力,要么在职业发展途径走到不同的分岔路口,最终走上架构师这个树枝上的寥寥无几。


第三:安于现状的心理

小富即安的心理。很多程序员满足于现状,缺少坚持不断学习不断提高的动力,每个月拿着万把块钱的工资,心安理得,懒得去折腾。


第四:架构师占比的影响

一个公司架构师在广大码农里面占比还不到10%,能成为架构师的一般都在公司里担任研发和管理的角色,想象一下公司团队的人员金字塔你就知道竞争力有多大了。


二五八Group


醉了,又是有人说,让说这话的人去搜集数据,我不要调查抽查,我要全国架构师和工程师,在职离职样本量在100万以上的数据,然后帮你做个数据分析,再看结果啊。美国人听说地球是圆的,他们就买机票绕地球一圈,发现地球是真的圆的。中国人听说地球是圆的,立刻去地平说的贴吧,发现地球是平的。。。。。证据,给我证据,不要没有证据听别人说啥就是啥。



任T堂达人


个人认为架构师有如下特点和职责

1.对编程语言足够深入,无论是基础技术,还是所使用语言自身的技术实现,都要清楚。比如除了对java语言灵活运用,要深入理解jvm机制,编译原理。

2.对行业所需要的连带技术一样要有足够深度。比如要深入理解mysql存储引擎机制,能够发现这些中间件,框架存在的坑。

3.能够根据现有业务提供领域模型,并落实

4.梳理系统性能,可靠性,安全性,做出合理的设计和改造

5.具有前瞻性,能够把握技术方向,选型,不随波,不盲目追新

6.有很强的沟通能力,领导能力,带领团队攻坚


kid7157887


从统计角度看,这个问题有点像在问,一个班级,为什么大部分同学当不了班长一样。一个班较多的也就五个班长,一般都是两个班长。架构师在工作组织中,本身就不需要占整体人数的很高比例。一个工作小组,有一个架构师就够了。所以,不谈绝对的专业能力,只考虑相对能力,总会有一小部分人做架构师,而且只会是一小部分人。就算所有人都一样牛逼,也只会有一小部分人幸运的做上架构师。这是工作组织的性质。不过,另一个角度,就是考虑时间的跨度,一个人一生是成长的,他20岁时,不是架构师,不一定在他30岁时就做不上,题目问的应该也是这个意思吧。如果是的话,那么能做上架构师的占行业总人数比例应该比我说的上一个比例高一些。


分享到:


相關文章: