`
jiming
  • 浏览: 271540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

系统架构工程师到底要不要会写代码

阅读更多
最近我在招聘技术人员,其中有一个重要的职位是 JAVA 系统架构工程师。

我觉得自个职位很重要,需要能够带个小团队,能够指导团队成员进行开发,能够把握大家的编码质量。

为了避免浪费大家的时间,我精挑细选了一些候选人,他们的简历写得很好,都是做过一些大的项目。

但是他们都折在了一个我认为最简单的环节,写代码,上面。

因为面试时间有限,所以我给的题目是非常简单的代码题。我想刚毕业的同学也应该顶天了半个小时作出来了。但是这些面试者们,要么写得很差、要么写一半写不下去自己走人了、要么直接说我几年都不写代码了这个我不会。

如果只有个别人这样,我也不觉得奇怪了。但是大部分人是这样我就不明白了。难道系统架构师都不写代码了吗?是我的要求有问题吗?



分享到:
评论
108 楼 bavnnsym 2010-03-31  
我的目标也是系统架构师。。。。

个人觉得,,,架构师最好是工作五年以上(写代码 )。。最好是从高级程序员升上去。

有一个好处,,就是之前从事过代码开发。。。。。所以考虑的问题更实际些。。那功能怎么实现,,自己都了如指掌。。。。。。。

不管是架构师,还是项目经理。。最好都是从高级程序员升上去。。。。

107 楼 srj2903 2010-03-23  
不会写代码,还当什么架构师
106 楼 lajitt 2010-03-17  
一个优秀的软件架构师,首先一定是一个出色的程序员。

这句话按照Fred George先生 的话来说,那就是“不编程的架构师的职业生涯是短暂的”。他说这句话的背景主要是针对有些架构师的设计与实现有断层的问题而言的,因为如果架构师不去实践,只是想当然的认为“没问题,这个想法能实现”,那么对于项目的落实而言是个很大的隐患。支付宝架构师冯大辉 也表示过,架构师是一个比较“虚”的岗位,主要的问题都在“落地”的过程中。

而一个架构师确认一个想法究竟能不能落地的最直接的方法,就是自己编写代码,尝试“实现一个系统最难实现的一部分”(Fred George)。看看Fred,他自己就是最好的示范:年纪一大把了,仍然每天都在编写代码。事实上,我们可以列举出一个长长的顶级架构师的列表,你会发现他们没有一个不是顶级的程序员。
105 楼 msii 2010-03-17  
能吹会侃而不会写代码的,可以做系统策划师。
系统架构师,一定是高级程序员。
104 楼 wuyunlong 2010-03-16  
    我的印象中系统架构师和软件架构师是有区别的。软件架构师的关注点侧重于系统内部功能模块之间的关系、非业务型核心模块、系统中采用的中间件、系统的性能;系统架构师的关注点侧重于系统整体的部署架构以及使用的中间件、系统的整体性能、解决方案,像使用的什么样的中间件、操作系统、硬件设备、网络拓扑。当然,上述两种架构师都需要懂得如果管理、带领团队。

    不过据我所知,国内在这一块是没有分得这么细,所以一个架构师要“精通”得东西很多,从编码到网略拓扑;不论是软件架构师还是系统架构师都需要懂代码的,尤其是软件架构师,更是要“精通”代码,有些公司还要求精通各种算法。我最近找工作,也比较困惑,各个公司对系统架构师和软件架构师的要求差别不小,也有公司认为架构师就是高程的,所以给的工资嘛...。


PS:我一向都不知道什么叫精通,所以上面的精通都是加引号的,还请对精通有癖好的人见谅。
103 楼 远去的渡口 2010-03-15  
kacakong 写道
一个不会踢球的人,可以做中国足球队的教练吗?

正是太多不懂足球的人,对中国的足球指手画脚,所以中国足球才一再沦落。。。

很难想象,一个不会写代码的人,能如何去做“架构”? 

作为“系统架构师”, 不仅仅要写代码,最重要的还是会“架构”。架构的意思,说白了就是能让一群不怎么会写代码的人,能在你的“架构”下共同实现项目目标。 所以,架构师的“写代码”,还不是一般的“写代码”,而是“大师级”或者“高屋建瓴”的写代码。

中国真的是有太多的人,想做所谓的“管理”,想提早“不写代码”,认为这才是职业上的发展。其实看看国外,那些技术大牛,那个不是一大把年纪还在“写代码”的?那些Spring,Hibernate之类,不就是这些一直写代码的“老家伙”整出来的吗?

因为热爱,所以才钻研;因为钻研,所以有创新。





正解,但是感觉我之前公司的高工级别的,位子是架构师,但是几乎不coding,只是管理项目进度,写写需求什么的
102 楼 mercyblitz 2010-03-15  
jok 写道
LZ找Java系统架构师?Java社群有如此多的优秀的开放式的架构,e.g. struts, spring, seam,lucence, hibernate, ... etc. 这些都不满足lz的需求? 或是你想找一个系统架构师设计出超出这些更好的架构? 那这个牛人不光是要会写代码,而且还必须精通Java, 必须精通设计模式, 甚至更多(应比他们说的还要多)! 放低一点要求, lz可能是想找个软的或是业务的. 但不管怎样, 代码都不会的, 怎么好意思应聘这个职位呢!

楼上有位说他单位有位系统架构师, 精通dephi, 但做j2ee架构师. 完全可能! 毕竟有情况, 架构师并不直接实现架构.

我们是不是可以得出一个必要条件: 架构师, 至少应精通一门程序设计语言. 如果这是对的,建议lz测试时, 应不限语言.





这么做就麻烦了,毕竟我要找一个JEE的,给我一个Delphi的,吃不消啊~
101 楼 mercyblitz 2010-03-15  
我的观点是,架构师要能写代码,但是不一定特别精通,一窍不通不行~
100 楼 mark_wang_9527 2009-09-18  
PS:LZ确实比较狠,让构架师笔试.......
99 楼 mark_wang_9527 2009-09-18  
以前公司构架师做了13年还之能做sprint的构架师,module级别跟system级别的构架师一般都是国外15年以上经验的人担任,觉得跟能不能写代码没关系,毕竟只是细节实现上的事情,这个不应该是构架师关心的,构架师更关心的是整个项目的灵活性,可扩展性,可维护性,如何降低开发成本,维护成本,潜在风险的分析,技术分析。对整个技术框架的把控,只要只能通过什么技术能解决问题就OK了,如果连用什么技术来解决问题都不知道也没资格谈构架...
98 楼 lchj 2009-09-18  
吃完饭后酒足饭饱,啥都忘了。不过构建是门学问,也有很多障碍,有很多本质的危险性。国内的架构师,我觉得很多是赶鸭子上架,不一定在构建上有很多经验。这时候他还是继续练点编码比较好。另外架构师编码我觉得可以起到带领团队的作用,架构师的代码要能够给人们一种高山仰止的感觉,这能够很好的带动团队的发展。
97 楼 lchj 2009-09-18  
我不知道有多少人能够说去架构的范畴,我是比较迷糊,架构架构,架,我理解为架子,说到房子的架子大家都明白。那软件的架子呢。构,我认为是构建的意思,你架完了怎么的也要建出来。架呢,可能可以各个行业,各个领域通用,但是说到构,还是需要一些专业知识。我觉得架构师还是需要一定的编码经验的。要吃饭去了,回来接着说。
96 楼 icewubin 2009-06-14  
hatedance 写道
最近在看代码大全。
书中喜欢拿开发跟建筑类比。
lz的问题就变成:贝律铭要不要会砌砖?会不会很高效的砌砖?

根本不一样的,建筑师可以直接培养,而不需要从砌砖这种底层开始做起。

如果一定要类比,程序员相当于建筑领域的最底层的设计人员,砌砖是机器做的事情,程序员设计机器如何砌砖。

就是因为有很多人想当然地认为,软件工程可以完全类比成建筑工程或者其他制造业工程,想套用很多其他成熟工程领域的概念和方法应用到软件上,这都是有问题的。
95 楼 hatedance 2009-06-14  
最近在看代码大全。
书中喜欢拿开发跟建筑类比。
lz的问题就变成:贝律铭要不要会砌砖?会不会很高效的砌砖?

书中还讲到开发的几个阶段:需求->架构->设计->实现(代码)。
面对需求,架构师要的是很高级别的决策:硬件,os,db,b/s or c/s,programming language,seam or spring,
详细设计,模块设计,应该不是架构师的事情。
94 楼 老菜刀 2009-06-13  
<div class="quote_title">3years 写道</div>
<div class="quote_div">
<div class="quote_title">topgun 写道</div>
<div class="quote_div">
<p><span style="font-size: small;">前提是明确架构师的定义</span>
</p>
<p><span style="font-size: small;">其实我认为好多人对架构师和架构都是很模糊的</span>
</p>
<p> </p>
<p><span style="font-size: small;"> 正好前一阵根据别人的经验总结了一下: </span>
</p>
<p><span style="font-size: small;">架构是什么?一般有4中定义</span>
</p>
<ol>
<li>
<span style="font-size: small;">组件+交互+约束(以系统为核心)  这种要是做得不好,就可能出现那种忽悠型的PPT 架构师</span>
</li>
<li>
<span style="font-size: small;">有层次的决策(以架构师为核心)  这种要是做好了,也是是不错的,指的就是那些只会“说不”的牛人</span>
</li>
<li>
<span style="font-size: small;">一类系统中恒定的经验   这种在行业性很强的领域很有用</span>
</li>
<li>
<span style="font-size: small;">代码与模式  个人认为这种是最靠谱的,也是敏捷开发推荐的架构表达</span>
</li>
</ol>
<p><span style="font-size: small;">回到主题,我的观点是架构师不是会不会的问题,而是一定要写代码,用代码的表示架构</span>
</p>
<p><span style="font-size: small;">但是代码和代码是有区别的,架构师的代码,应该是系统的骨架、接口、和模式定义,甚至是伪代码(最好还是能通过编译),所以架构设计,就是一个骨架系统的设计</span>
</p>
<p> </p>
<p><span style="font-size: small;">但是如果你在面试中,不是考察架构师对系统设计级的代码,或是是一些解决问题的设计模式的代码。而是一些基础的对框架、对API 的使用,甚至一些奇技淫巧的所谓算法,估计大部分架构师的确不擅长,甚至没空理你了</span>
</p>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: small;">“奇技淫巧的所谓算法”,这个最反对,碰到过,电话面试还要说算法,有空哦?</span>
</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<p> </p>
<p> </p>
<p>架构师凭什么就可以忽略算法???</p>
<p> </p>
<p>架构师就是对软件领域的几乎各个方面都需要深入了解,算法不过关还好意思自称架构师?</p>
<p> </p>
<p>不要侮辱这个字眼了。。。</p>
93 楼 srj2903 2009-06-13  
架构师连代码都不会写,还叫架构师吗,那么他的架构能力怎么样?
92 楼 RCFans 2009-06-04  
一个架构师,最重要的是语言层面的理解和交流能力,对项目中出现各种问题的前瞻性
技术方面就不用说了,从coder干起一步一步积累起来的人,了解一下他的项目经验即可
91 楼 rikeinei 2009-06-04  
个人觉得,一个公司的构架师
要么就是自己公司培养了好多年,从基层做起,对公司业务,开发方式都很熟悉的人
要么就是能够强龙压住地头蛇的人,资历实力都能让人信服的,不过这样的貌似比较难找,还是找猎头吧,呵呵
90 楼 zhoujacky 2009-06-04  
<p>我觉得关键是楼主找人的意图。我个人觉得软件架构师更看重其对于整个软件开发的思路,以及如何设计一套软件架构,使得这个软件架构能够灵活的适应业务和系统发展,而不会出现太多的耦合类,导致后期的扩展和开发无法进行。至于写代码我觉得更重要的是看他对于一个系统如何设计的思路,如果他能有严谨的思路和解决方案去提出架构。细节的代码编写可以忽略。但是对于代码能够敏捷的发现问题,即读代码的能力和对于代码质量的东西是要能够把握的。</p>
<p>我个人觉得目前国内的软件开发大部分基本都是MIS系统。包括企业的ERP系统。在我们拿到一个项目的时候,这个时候最需要的是一个系统架构师(系统分析员),他能够把握客户的业务数据流,提出一套完整可行的IT信息架构。这个架构可以使客户的业务数据流高效的信息化管理和流转。实质上面这个架构就是整个系统的数据模型架构,如果一套灵活可用,且有一定前瞻性的和扩展性的数据模型是整个项目成功的关键。因此系统架构师需要是沟通能力强,能够准确把握客户需求并转化为高效数据模型的人。他从整体上面觉得整个IT信息系统的发展和功能实现。</p>
<p>之后才出现软件架构,我觉得一个好的软件架构师应该能够熟悉系统架构模型,并以此进行软件的功能和架构体系划分。使之底层的代码具有良好的独立性,并让对象之间的耦合性最低。这样客户端开发人员进行开发的时候能够使用好的底层代码,快速的开发。</p>
<p>因此,我觉得楼主完全是在找高级程序员。我觉得找架构师应该更看重其对于一个问题的思路和解决方法是否清晰和有前瞻性。如果他能够对于某个系统提出一个很好的架构划分,每个实现方面可以有软件开发人员完成。但是他必须能够把握开发的质量。至于实际的写代码可能不是很重要,但是读代码和找问题的能力需要强</p>
<p>从我们涉及到的大型软件系统开发来看,很多的问题实质在于系统架构师部分的数据模型。这个才是关键的关键,现在很多项目基本都是到了后期无法支撑,因为模型不适应业务的发展,之后产生大量的垃圾库表。对于数据的优化和软件开发都无能为力。所以架构师我认为是思维而不是具体的东西,因为具体的代码分工体系不一样的。但是度与代码的阅读和类之间功能体系划分是需要的</p>
89 楼 3years 2009-06-02  
<div class="quote_title">topgun 写道</div>
<div class="quote_div">
<p><span style="font-size: small;">前提是明确架构师的定义</span>
</p>
<p><span style="font-size: small;">其实我认为好多人对架构师和架构都是很模糊的</span>
</p>
<p> </p>
<p><span style="font-size: small;"> 正好前一阵根据别人的经验总结了一下: </span>
</p>
<p><span style="font-size: small;">架构是什么?一般有4中定义</span>
</p>
<ol>
<li>
<span style="font-size: small;">组件+交互+约束(以系统为核心)  这种要是做得不好,就可能出现那种忽悠型的PPT 架构师</span>
</li>
<li>
<span style="font-size: small;">有层次的决策(以架构师为核心)  这种要是做好了,也是是不错的,指的就是那些只会“说不”的牛人</span>
</li>
<li>
<span style="font-size: small;">一类系统中恒定的经验   这种在行业性很强的领域很有用</span>
</li>
<li>
<span style="font-size: small;">代码与模式  个人认为这种是最靠谱的,也是敏捷开发推荐的架构表达</span>
</li>
</ol>
<p><span style="font-size: small;">回到主题,我的观点是架构师不是会不会的问题,而是一定要写代码,用代码的表示架构</span>
</p>
<p><span style="font-size: small;">但是代码和代码是有区别的,架构师的代码,应该是系统的骨架、接口、和模式定义,甚至是伪代码(最好还是能通过编译),所以架构设计,就是一个骨架系统的设计</span>
</p>
<p> </p>
<p><span style="font-size: small;">但是如果你在面试中,不是考察架构师对系统设计级的代码,或是是一些解决问题的设计模式的代码。而是一些基础的对框架、对API 的使用,甚至一些奇技淫巧的所谓算法,估计大部分架构师的确不擅长,甚至没空理你了</span>
</p>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: small;">“奇技淫巧的所谓算法”,这个最反对,碰到过,电话面试还要说算法,有空哦?</span>
</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>

相关推荐

    产品技术开发项目-软件架构设计模板

    3.1.1. 总体系统架构图 3.2. 产品设计 3.2.1. 权限子系统 3.2.2. 网站管理子系统 3.2.3. 文档子系统 3.2.4. 日志子系统 3.2.5. 搜索子系统 4. 物理架构 5. 开发架构 5.1. 开发流程 5.2. 系统组件图 6. ...

    基于spark的电影推荐系统+系统架构图+源代码+文档说明

    1、资源内容:基于spark的电影推荐系统+系统架构图+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况下才...

    基于Spark的电影推荐系统+源代码+文档说明+数据流图+思维导图+系统架构图

    1、资源内容:基于Spark的电影推荐系统+源代码+文档说明+数据流图+思维导图+系统架构图 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功...

    嵌入式系统工程师认证复习资料

    嵌入式系统工程师认证复习资料 什么是linux? Linux是运行于多种平台(PC、工作站等)之上、源代码公开、免费、遵循 GPL精神、遵守POSIX标准的、与UNIX兼容的操作系统。Linux是微机版的UNIX。 具有现代操作系统的...

    大规模分布式系统架构与设计实战

    《大规模分布式系统架构与设计实战》从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网...

    系统架构设计之:微观架构和宏观架构

    系统架构设计之:微观架构和宏观架构!大部分工程师包括架构师都是从微观架构起步的。微观架构指在一个局部的领域达到设计及实现的合理性,比如写一个排序的程序,达到时间空间复杂性的合理性,  大部分工程师包括...

    《大规模分布式系统架构与设计实战》PDF

    《大规模分布式系统架构与设计实战》从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网...

    Android技术内幕.系统卷.pdf

     全书将Android系统从架构上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者对Android系统架构设计和实现原理的认识,从而解决...

    Google_MapReduce中文版-系统架构

    www.google.com/analyticsGoogle MapReduce中文版-系统架构 http://www.kuqin.com/system-analysis/20100915/88059.html[2010-11-2 17:19:20] 这个工作(实现一个MapReduce框架模型)的主要贡献是通过简单的接口来实现...

    软件工程师 高级架构师资料

    考生需要根据实际项目的需求和要求进行设计,包括系统架构设计、界面设计、性能优化、并发编程等方面。同时,还需要在项目中承担一定的责任,包括需求分析、设计方案制定、代码编写、测试验收等方面。考生需要具备较...

    jQuery技术内幕 深入解析jQuery架构设计与实现原理

    《jquery技术内幕:深入解析jquery架构设计与实现原理》由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jquery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jquery中的实现技巧和...

    基于jsp的毕业生就业信息管理系统源码.zip

    适用人群:Java 开发者、软件架构师、系统工程师等。 优化系统性能:通过对系统源码进行分析和优化,可以提高系统的运行效率和响应速度,满足高性能应用的需求。 提高代码质量:合理的系统源码设计可以降低代码的...

    Java远程视频会议系统设计与实现(系统源代码+论文原稿)

    ⑤ 远程视频会议系统的架构设计和关键技术实现。 阅读建议: 在学习过程中,请按照论文原稿的结构顺序进行阅读,首先了解系统的需求分析和设计思路,然后深入研究系统的各个模块的实现细节。在阅读源代码时,建议...

    基于Spark-Hadoop的户外广告识别系统用户通过拍照上传广告图片,服务端识别出是哪张广告+源代码+文档说明+架构设计pdf

    用户通过拍照上传广告图片,服务端识别出是哪张广告+源代码+文档说明+架构设计pd 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能...

    基于jsp的定西扶贫惠农推介系统源码.zip

    适用人群:Java 开发者、软件架构师、系统工程师等。 优化系统性能:通过对系统源码进行分析和优化,可以提高系统的运行效率和响应速度,满足高性能应用的需求。 提高代码质量:合理的系统源码设计可以降低代码的...

    北大青鸟ACCP5.0软件工程师教学PPT和源代码 内部光盘

    北大青鸟ACCP5.0软件工程师教学PPT和源代码 内部光盘 Aptech ACCP 5.0 PPT and Resource 大纲(感谢网友xfxgsun)(在原有基础上增加了部分ppt重新打包发布) ├产品使用手册 │├附件1:ACCP5.0Java程序员简历 │...

    基于jsp的课程思政元素收集遴选系统源码+lw+ppt.zip

    适用人群:Java 开发者、软件架构师、系统工程师等。 优化系统性能:通过对系统源码进行分析和优化,可以提高系统的运行效率和响应速度,满足高性能应用的需求。 提高代码质量:合理的系统源码设计可以降低代码的...

    JSP基于Caché的实验室资源管理系统的设计(源代码+论文).rar

    该资料包含完整的源代码和一篇详细的研究论文,不仅提供了系统实现的技术细节,还深入探讨了设计理念、系统架构、功能模块划分以及实现过程中所面临的挑战和解决方案。总之,通过这个资料包,用户可以学习到如何在...

    《ACCP 软件工程师 5.0 教学PPT和源代码 内部光盘》(Aptech ACCP 5.0 PPT and Resource)[光盘镜像]

    强调 是下载镜像 ...Java(JavaEE)工程师、.NET软件工程师、外包开发工程师、网站设计和开发工程师、ORACLE数据库开发工程师、数据库工程师、ERP/CRM/OA/B2C开发应用工程师、系统分析设计工程师、文档工程师

Global site tag (gtag.js) - Google Analytics