回复关系:

作者 内容
 chengwenge   如果想象软件构架设计师方向发展,该如何去努力?

 02/06/06 19:45 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 liujunsong  顺其自然,功到自然成。

我个人根本否认所谓的“软件架构设计师”这样的职业定位。
如果一个人精通了一门语言的编程,那么其他语言对于他来说就没有任何本质的区别;如果一个人真正掌握了软件开发的本质,那么什么样的软件项目,什么样的职位对他来说,都是无所谓的。
一旦纠缠于某个职位,某种身份,某个技术,那么这种执着就会成为他前进中心理上的包袱,没有得到想得到,得到了又怕失去,这样的心理状态下来学习,是不会有什么成果的。学习,需要一种超脱的心态。
而没有实际的学习成果,可以骗别人,但是骗不了自己,没有那个能力却坐到那个位置上,对自己并没有任何的好处,除了满足一定的虚荣心以外。
我的观点是,踏踏实实学习,一步一个脚印,学一点儿明白一点儿,这样才能有所长进。
 02/06/07 10:37 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 chengwenge   回复: 顺其自然,功到自然成。

我同意你的学习态度,但是我认为还是要有一个方向的,没有错,软件的本质是相通的,比如各种语言,比如各种数据库。现在技术发展很快,所以要有一个很好的眼光,要能看到技术发展的方向,这样才能使自己学有所成,学有所用,一个人的精力是有限的,所以我们必须有方向。
我不认为人在技术上的投入是不求回报的,是不计成本的,我认为做什么事都要分析有没有收益。我觉得不能为了学习而去学习,如果你是打工的,你希望你在学习上的投入(书和时间)能得到更好的收入或地位或成就感,如果你是老板,你就希望能得到更大的市场回报。
所以我们有必要做一下自己的职业规划,这样才能有目标,而不能什么都学,到时什么都不是。
希望大家能讨论。
 02/06/07 14:40 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 j2ee  社会分工,会有不同职位,要求不同的知识结构和技能,实际上是承担更多的软件架构设计的工作

 02/06/08 00:04 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 frankwoo  回复: 顺其自然,功到自然成。

不完全对,构架师绝对是水平很高的人,并且是很辛苦的人。
思考是软件的核心,离开了思考,一事无成。怎么思考,没有一个很好的环境,没有一个渐进的过程,免谈。
整天埋头做应用,可能自我感觉良好,其实充其量也就一个合格的程序员。:),离构架师的要求差得远呢。
刘兄应该是个牛人,但是好像有点故步自封,经验至上了。:)我一个同事,在IBM 多伦多实验室干了一辈子,老了还要学java呢:),没办法,过去的只能作为过去,要面向“未来”嘛:)
我认识一些构架师,我自己也是一个水平很次的architect,感觉做这个东西,懂得东西一定要多,面要很宽,要不断总结已有的系统,还要紧跟行业趋势,重要的是整天要做“软件试验“,否则的话就是“笑料“了。
 02/06/08 05:48 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel  嗯,也有不少dilbert里的人物

好的构架师绝对是水平很高的人,并且是很辛苦的人。

但有不少急于摆脱程序员身份的人看了几本软件工程的书就开始自称构架师了。从数量上言,远远超过了真正的构架师。这也是没有办法的事。正是他们给了有经验的程序员虚幻的满足感,以为构架师不过尔尔。和牛人在一起从而获得提高的机会可不多啊。

我本人不过是程序员,未来的目标也只是成为会写程序的程序员。会写好程序的高手程序员我是想都没想过。当然,我对程序员的定义和这里的主流不太一样。
 02/06/08 10:18 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 smilemac   回复: 嗯,也有不少dilbert里的人物

[当然,我对程序员的定义和这里的主流不太一样。]

那是什么呢?这里的主流定义又是什么呢?不好意思,我来这里时间不长,还没有时间翻看以前牛人们的帖子。
 02/06/08 11:25 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel  我也不算很长

但我以为的[这里的主流定义]是
程序员是进行简单编码工作的体力劳动者,可以任意替换。经验越多,意味着年龄越大,体力越低,所以越无用。需要有一批不知道指针,引用,对继承,多态一知半解,但熟练掌握UML,RUP,CMM术语的高级软件架构师,设计者,管理者来告诉他们该怎么作。如果出了问题,比如设计者比较粗糙,架构师又按功能划分项目,没有把功能中公用的模块辨认出来,比如通信方面的socket模块,管理者们则把功能项目分配给了不同程序员开发,最后就可以愤怒的指责在一个项目中竟然会有四个不同的socket模块,我们的程序员是如此的自以为是,必须向印度学习CMM规范了。痛心疾首于我们程序员和工程师的区别了。
说到底,只要看到主流看到招收了一大批写单向链表都要去查数据结构教材的[高手程序员]形容成不尽牛人滚滚来就知道了。

至于我个人的定义,只是个人想法,未必正确,也不用毒害青少年了。反正一百个人有一百个定义嘛。
 02/06/08 11:48 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 smilemac  有趣。

我知道了。我以前认为类似于Alexadar S 这样的人也是程序员,但别人都称他们为大师,我称呼比较低级的程序员为coding man,但别人(主要是我们公司)都叫他们为程序员,为了交流方便,我改变了语言。
 02/06/08 11:59 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel  回复: 有趣。

我是认为大师们是因为身为能写,设计很好程序的超高手程序员,而且贡献自己的知识写了书传授经验,才被尊称为大师的。
至于coding man我为了交流是直接引用了国内的蓝领程序员这一名词,虽然这一名词的本意是凡程序员就为蓝领。但也能减少一些交流障碍。
国内软件业的希望在于北京已经正式出台措施以大量制造coding man作为振兴国内软件行业的基石了。令人感到身心愉快,笑一笑,十年少嘛。
 02/06/08 12:13 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 holly_lee  呵呵, 世界很有趣的. 上海据说已经成立了 CMM 评定机构了

程序员 == 写程序的人.
不写程序的就不是程序员
 02/06/08 12:28 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel  回复: 呵呵, 世界很有趣的. 充满笑话,所以我们才快乐。

 02/06/08 12:32 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 sealw  中国应该发展在通过考试,通过认证方面的“特长”

 02/06/08 13:53 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 w_rose   玩命设计产品呀!不要说的比干得好就行了。

 02/06/08 18:43 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 frankwoo  回复: 嗯,也有不少dilbert里的人物

叫什么名字不重要,这里一般都叫developer(内部),对外名称就多了:),干好什么都不容易,国外的"programmer"(我一般不用这个称号)写的书就很多,看看IBM写的redbook里边的本科的高手多的是,多了国内,呵呵,就变了样子了,为什么,根本的原因在于大家做的东西太肤浅。
自己努力了,有是结果不一定好,还要想办法让别人知道你厉害(更重要吧)--全球通用:)
好运,大家
 02/06/09 05:14 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 frankwoo  回复: 我也不算很长

不要把什么东西都想象的和你们一样:
1。构架师可能本身并不懂UML等等,但绝对是程序高手,至少是系统程序高手,一个高手要去查书看看练练具体怎么写,没什么大不了的呀,懂得太多就难免一是“糊涂”--当然绝对无是说着这样好。但一个好的构架师绝对知道一个系统为什么要这样做。
2。对于你替的例子,更是站不住脚,我不知道socket为什么要定义那么多,无非是抽象出一层,然后定义message format而已,还有什么?怎么会高出那么多?看来要么是没有构架时,要么是程序员都“过于能干了“。通讯模块的复杂度在于数据流结构的复杂和多样性,以及acid,系统性能等等的考虑和实现,绝对不是会写几行socket代码就可以胜任的。
3。举个例子,一个好的构架时,可能不会写thread的代码,待是绝对懂得如和在C++里做到类似于java中的thread的wrapper:)--仅仅是个例子.
 02/06/09 05:38 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 frankwoo  回复: 如果想象软件构架设计师方向发展,该如何去努力?

有一个良好的环境比什么都重要。我刚出道的时候,也是很“牛比“,碰到一个俄罗斯的“大师“,指呆过我一二(尽管与其很严厉,可能和它是老师的出身有关吧:p.s此君不懂UML等,当绝对是OO的大师),受益匪浅。-例如:坚持每天工作14个小时,(当然不是在那里加班,是充电,思考等等,也就是要给自己留出时间学习:)。慢慢的积累,在结合实际,会有成就的。
自信+思考+刻苦我想就差不多了,如果你们那嘎达已经没有比你高的人了,那么跳槽吧:)
 02/06/09 06:02 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 frankwoo  回复: 如果想象软件构架设计师方向发展,该如何去努力?

讲讲个人感受:绝对真实。
1。XXX年,遇到心态科技的某君,自称windows在高端系统比unix表现的要好,无论性能还是稳定性等等,并且此君曾在XXXX上舌战群辱,结果大家都服了他,此人当是project manager。当时忙于个人私事,无暇辩论,点头称是。:)
2。XXX年,与西安电子科技大学陈平老师有几面之缘,个人感觉陈老师确实是很难得的人才,但是这样的人在国内很难有进一步的发展,没有哪个平台。
3。XXX年,负责一个项目,用户的xxx直接对我说,给我X万,什么都没问题,否则,死路一条,(我和次君私交很好,可惜它和我的上司不好,),回去汇报老板,老板不理,结果项目失败,老板吧责任往我头上一推:),呵呵,好在我无所谓。--早不相干了。
4。XXX年,某君(好像是IBM SP的总设计师,)语重心长的讲到:“我搞不明白,国内采用n层结构的系统,为什么要买给用户那么多license(当然不是免费的),在座诸君哂之:)。
可能诸君都有这样的经历,想想。到底是怎么回事?:)
 02/06/09 06:49 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel  呵呵,老兄可能误会了

我的主流定义主要出自那篇很有名的华为宣传印度模式的文章。老兄不妨去找找。网上应该有。

关于链表,是该文说印度方直接开一个大数组就能完成的功能,中方的程序员(不是架构师)就抱着书写链表。我不知道一个数组就能简单替代的链表会复杂到什么程度。

4个重复模块也是出自该文,您可能想的过于复杂了。我不清楚该文的背景,但按我的理解,应该是前台客户端和后台服务端有关系,但没有划分公用模块,导致了作客户端界面程序不同部分的程序员都写了自己的通信代码而已。可能我理解错误,但我想,至少公用模块的任务划分,接口的统一之类在项目中不应该是程序员自发的工作内容。

构架师之类的名称我并不在乎。现在的名称太多我都搞不清楚什么是什么了。但在设计方面我只信任有经验程序员出身的,编程时我对某个具体API的参数不感兴趣,查help就可以了,但对类之间的关系和设计意图兴趣很大,我认为这是我学习的机会。我对为什么比对怎么作的兴趣大的多。
很多人指责JAVA运行速度慢,但在我看到的几个JAVA项目中,没有优化过的数据库绝对是最为影响性能的。但我作为项目中的coding man,只作要求我作的,多一步也不走。嘿嘿,我非但不是一个好程序员,也不是一个好员工。我常想,如果不是极端厌恶封闭式开发,回国作一个coding man也不错,不用担责任,不用动脑筋,还可以近距离接触笑话。
您老人家可能运气不错,和不少好的构架师接触过,但也请原谅我个人的孤陋寡闻。我是见过weblogic被人糟踏成什么样子,也见过数据库被如何有趣的理由设计成什么样子。真的很想有和牛人一起工作,顺便偷学几手功夫。看大师们的书,我的确不敢说我会写程序。
 02/06/09 10:42 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价: