2006年的职场出奇的冷清,相比前几年,简历的数量和质量都大为不如,很难得找到三年工作经验以上的人,有一个不是特别笨,就是特别怪。就是么,干得好谁没事换工作啊!Simon是一家外企软件公司的总经理,最近给这个问题愁坏了。项目一个接一个的接下来,人手越来越紧张。虽然Simon是个极限编程的粉丝,但也不得不批准了一份又一份的加班申请。HR经理把这个问题归结到房价上,他的妙论是“怕失业了还不上房款,不敢跳槽”。
这天,K项目组长Allen终于忍不住了,带了一个只有一年工作经验的小伙子要Simon面试,“很聪明!经验少了点。”
Simon皱了皱眉毛,说:“你不知道这个职位最低要求是三年工作经验吗?”
Allen说:“这已经是三个月里通过技术考试中最好的一个了,老大,试试吧。”Allen是Simon多年的哥们,比较随便。
抵到面子上来,Simon只好让Allen把小伙子带进来。
Simon的面试通常是三步曲:
问题一:你能说说毕业后的主要工作经历吗?
问题二:再说说你在公司的地位?
问题三:你的发展目标是什么?等回答后,比如说构架师,他就跟着问:想象一下你当构架师的一天,说给我听听?
小伙子回答第一问题很快很清楚,一年工作当然没什么东西。Simon觉得小伙子挺聪明。所以在小伙子回答了第二个问题后,问了一个发散性的问题:“你刚才说你在公司里处于中等水平,那比你差的人为什么会比你差呢?”
这个问题是个陷阱。
小伙子冒冒失失回答说:“我觉得他们每天工作是为工作而工作,工作没有责任感。”
Simon点点头说:“是吗?那真是糟糕的员工。那你刚好比糟糕的员工好一点了?”
小伙子的脸一下子红了,“我不是这个意思……”
“好了,那你说说比你好的人为什么比你强?”
“我觉得他非常努力,工作很多年了还在学习各种构架,水平很高。”于是Simon就问那最后一个问题。果然,小伙子回答的是要成为构架师。大概70%的人想成为构架师。但是构架师是什么呢?
Simon问道:“那你为什么要成为构架师呢?”
小伙子一愣,大概还没有人这么置疑过他。“年纪大了,不能老写程序吧。”这个回答,让Simon想起关于他对什么是老的定义:当你希望做年轻人做的事情时,你就还年轻;如果你希望做老年人做的事情,你就老了。这和你出生了多长时间是没有关系的。
Simon接着问:“好吧,那你说说你成为构架师以后,每天都会做什么?”
小伙子说:“我还没想过,不过,我想应该主要是需求分析,设计构架吧……”这大概是现在年轻人的通病,年轻人很容易追逐一些自己也不清楚的目标。
Simon问:“那设计构架具体都做些什么呢?”
小伙子这次的回答是:“比如,选择程序框架,决定用Spring或Struts等等。”
“哦,那我问你,你怎么说服别人是用Spring还是Struts呢?”
“如果我有经验,我会知道哪个更好……”
“是吗,但关于Spring或Struts的知识任谁都可以很容易得到。如果别人不同意你的建议,你怎么说服他?如果同意你的建议,那你不过是作出了和别人一样的认识,别人又凭什么认可你呢?”
小伙子没想过构架师日子里还有一个说服人的工作,说:“我是构架师,我应该有权力做决定吧?”
Simon想起权力的三种层次,第一层,任命;第二层,专业;第三层,品德。
Simon问:“如果在一个成熟的软件企业里没有你所想象的构架师呢?或者说,构架师这种职业已经死亡或消失了呢?你会怎么定位你的职业?”
小伙子显得很震惊。
Simon画了一个系统构架,然后又给小伙子看了一段代码。
“那一个更难懂?”Simon问。
小伙子指着代码说:“代码难懂。”
Simon的解释是:“这就是为什么实际上所谓的构架师不存在的原因。一个更简单的东西怎么会更有价值呢?每个人都能够画出这种构架图,但不是每个人都能写出好的代码。”
送走了小伙子,Simon有点难受。他有点喜欢这个小伙子,但是,这又是一个被愚蠢的教育和误人子弟的技术杂志污染的家伙。Simon在自己的笔记本中加了一句话:中国程序员最愚蠢的认识之三:我想当构架师。前面两个赫然是:
35岁后写不动程序了;
我只要做Java(C++);
分享到:
相关推荐
进一步地,系统架构师需要深入理解当前的软件开发典型组织、信息安全、系统安全、系统可靠性方面的内容,并且学会进行架构的实施和管理。完成第10至15章的学习后,应该对层次式架构、企业集成架构、面向切面的编程...
Java EE 架构师认证指南 本资源提供了 Sun 官方的 Java ...Java EE 架构师需要了解 UML 的基本概念和应用。 实例研究 实例研究是指对实际项目的分析和设计。Java EE 架构师需要能够对实际项目进行分析、设计和实施。
第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、...
1. **架构设计**:这是架构师的核心工作,涉及到如何选择合适的技术栈,定义系统组件,以及如何组织这些组件以满足业务需求。论文可能会讨论常见的架构模式,如微服务、SOA(面向服务架构)、单体架构等,以及如何在...
《软件架构师教程》是一份全面涵盖软件架构师所需知识的综合教程,旨在帮助学习者理解和掌握软件架构设计的关键概念和技术。在这个文档中,我们将会深入探讨以下几个核心领域: 1. **软件架构基础**:软件架构是...
【系统架构师基本素质大纲】 系统架构师是一个综合性极强的职业,他们不仅需要深厚的技术底蕴,还需要具备良好的项目管理能力和决策智慧。以下是成为一个优秀的系统架构师所必须掌握的知识点: 1. **理念与原则** ...
软件架构师是IT行业中至关重要的角色,他们负责创建软件系统的整体结构和组织方式,确保软件项目的成功实施。作为软件架构师,需要具备广泛的知识体系,包括但不限于以下几点: 1. IT行业的人才结构与软件构架师的...
对于软件架构师而言,UML不仅是一种沟通工具,也是思考问题的框架。通过UML模型,可以更清晰地表达设计意图,减少误解,同时促进团队间的协作。此外,UML还能帮助进行需求分析、系统设计、测试用例编写等多个阶段的...
- **系统架构师的概念**:系统架构师在信息系统开发过程中扮演着至关重要的角色,他们不仅关注系统的“技术实现”,还需考虑“组织协调”。架构师需要理解、管理并最终确认非功能性系统需求,给出开发规范,并搭建...
第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、...
第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、...
3. **设计阶段的应用**:架构师和开发者可以在设计阶段使用序列图来探索系统内部对象之间的交互关系,有助于构建更为完善的设计方案。 #### UML 2.0中的新符号:框架元件 在UML 2.0中引入了一种新的符号元件——**...
基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...
基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...
### 架构师培训核心知识点解析 #### 一、架构概览 IBM内部架构师培训资料中的“架构总览”部分旨在为读者提供一个全面理解架构概念的基础框架。架构不仅是一门科学,也是一种方法论,它涉及到软件开发过程中的多个...
### 软件架构师的核心职责与实践过程 #### 一、引言 软件架构师在软件开发过程中扮演着至关重要的角色,他们不仅需要具备深厚的技术背景,还需要拥有卓越的领导能力和良好的沟通技巧。本文旨在深入探讨软件架构师...
5. **架构分析与决策**:在设计过程中,架构师需要进行一系列分析,如性能分析、安全性评估、风险分析等,以支持决策。这些决策直接影响到系统的质量和可行性。 6. **架构模型与建模工具**:使用UML(统一建模语言...
第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、...
基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常...