我也来发个面试帖,顺便散分
今天撞大运了,居然面了一个印度人,电话上折腾了半天,总算是面完了。由于是我主动提问,所以比和印度分公司的partener玩con-call累得多。
总体感觉一句话:他受过非常严格的训练。具体表现在交流能力很强,并且说话很小心;还有就是编程基本能力很不错,基础很扎实;但是缺点也很明显,当我提出一些古怪问题的时候(主要是一些涉及概念比较的主观题),他不是没听明白就是直截了当地说不懂。这些问题如果我问一个国内的junior的程序员的话,他们东拉西扯总能说出一些的。
然后我了解了一些他的背景,他读了12年书,估计在中国相当于大专。在印度很多软件工程师是10年+2年的教育方式,平均工资折合在2.5k/月人民币以下,(在印度月薪2.5k的生活水平还算不错,因为印度房子便宜),而印度10所正规大学的毕业生(读书的时间相对更长一些)则起薪在6k以上(已经相当于高级白领了)。正规大学毕业的软件工程师一毕业就能够进入大型软件公司,并且有不错的升迁机会;而前面所说的大量受过严格训练,薪酬较低,基础开发能力很扎实,但是对设计、架构等高级概念一窍不通的软件工人则组成了印度软件工业的真正主力。
我记得之前论坛上有看到说印度高中生是软件工业的主力,应该就是说的这个事情。但是我们在比较印度的大专生(我们就不说高中生了,毕竟人的能力和年龄是有比较大的关系的)的开发能力,和一个刚刚毕业的中国计算机系学生的能力的时候,我们不能忽略印度的软件工业的背景:
1、丰富的流程控制理论,和富有经验的管理人员,保证项目能够很“完美”的运作,受风险的影响降低到最小。
2、良好的设计和大量有经验的高端设计人员,保证项目能够很完善地被设计,并且任务下放到编码人员手里的时候都是良好定义的。
3、大量“可替换”的编码人员,保证项目随时随地都能够在运作,不会因为开发人员的离开而阻塞进程。
我个人能想到的就是这三点决定了印度能够维持如此大规模的软件工业。
分析这三点
1、的确印度人做得不错,我接触到的国内不少项目在流程控制上都有问题,不是需求做的不完善,就是测试做得不彻底。但是这是以前,我现在的公司在这方面做得比较严格,国内不少公司也在向这方面靠拢。不过说实话CMM不是适合任何一家公司的,这和我讨论的问题无关,就不表了。
2、我们和印度差不多,但是我要说的是中国人的思路和印度人不一样,中国人的习惯是我把事情交给你,你给我看结果。印度人的习惯是我叫你这样做,你就要这样做,你不这样做是你的问题,你这样做了,做出来不对就是我的问题。所以印度人不确定的事情是不会说的,他们宁可花几个小时去开会,也不会交一份他们不确定的东西给老板review;而中国人不一样,我们可能知道一部分,或者甚至已经确信了,但是因为谦虚而不说。
3、这就是我主要要讨论的了,欢迎拍砖。我们无须怀疑,中国没有一所大学培养出来的软件开发人员是“可替换的”;但是印度人培养出来的大专生的的确确是“可替换”的。其实“可替换”这个词有点难听,另外一个我们熟悉的英文词是“professional”。所谓 "professional ",比较通俗的解释就是,这个人知道该做什么,不该做什么,该说什么,不该说什么,而这就是印度对基本的软件开发人员的要求,我面试的那个人就是非常 "professional "的。到这里我想我不必多说了,在中国要培养一个 "professional "的人需要什么样的代价可想而知了,如果要你做一个这样的 "professional "的人你会开价多少?然后和印度人的2.5k/月比比。
如果你已经看得有点烦了,那么我也该抛出我的观点了:中国软件业不适合印度的形式。道理很简单,软件业在中国是高科技行业,和建筑行业不是同一级别的,我们这些白领人士和民工也不是同一级别的,所以我们是一群自由的人,自由地维护着我们疲惫而高傲的生活。既然如此,就让这个模式维持下去吧。
最后,向中国的软件人致敬!
[解决办法]
JF
[解决办法]
致敬
[解决办法]
jf
[解决办法]
写的不错呀
[解决办法]
jf并学习着...
[解决办法]
顶!!下一个盖茨将在中国出现
[解决办法]
jf
[解决办法]
jf``顶 谢谢
[解决办法]
jf
[解决办法]
jf
[解决办法]
被200吸引近来了
[解决办法]
主要jf顺便看贴,嘿嘿
[解决办法]
不错
[解决办法]
不错
[解决办法]
呵呵
[解决办法]
楼主是不是改了签名 ?
[解决办法]
up
[解决办法]
> 他不是没听明白就是直截了当地说不懂
because印度人不确定的事情是不会说的
[解决办法]
up
------解决方案--------------------
顶
[解决办法]
jf
[解决办法]
呵呵,接分
[解决办法]
o , ss
[解决办法]
mark
[解决办法]
jf
[解决办法]
不错!
[解决办法]
学习
[解决办法]
老迈真傻
[解决办法]
3、这就是我主要要讨论的了,欢迎拍砖。我们无须怀疑,中国没有一所大学培养出来的软件开发人员是“可替换的”;但是印度人培养出来的大专生的的确确是“可替换”的。
---------------------------------------------
我可以负责任的告诉你,这个与大学教育无关,这只和公司的制度有关。
如果一个开发过程做到了,文档齐备,技术过程清楚,任何一个人都可以做到“可替换”,这也是CMM的一个主要目的。
[解决办法]
学习
[解决办法]
个人觉得印度的产业化要比中国好,很大程度上是因为人才培养机制和录用机制的合理。他们分的很清楚:培养一部分软件工程师和大部分软件工人。实际上我们都明白这两者的区别,和划分以后带来的利益。
他们可能对工程师的要求非常的高,而让程序员过剩,而我们国家相反实际上是工程师的选拔不严格,实际上大学毕业啥都不懂也自以为是软件工程师了,那么工程师过剩,导致的结果就是低投入培养的程序员遭到淘汰,所以公司里全是软件工程师在干着程序员干的活。
而最大的隐患就是如果不将工程师和程序员两种职业分开,那么会导致我们工程师水平的下降,他们无法得到软件工程方面足够的培训就被推向岗位。在公司里往往是“能干事”的人能走向工程师的位置,他们一般都是程序员中的高手,而往往不是软件工程的专家。
-------------------
楼上说“如果一个开发过程做到了,文档齐备,技术过程清楚,任何一个人都可以做到“可替换”,这也是CMM的一个主要目的。”这点我很同意,但是我觉得你的前提“如果一个开发过程做到了,文档齐备,技术过程清楚”是靠人来做到的,什么人呢?软件工程师,而不是程序员。程序员只要遵循已有规范进行编码,这应该是程序员培训的重点,也是CMM第二级的基本。而软件工程师的水平直接影响整个CMM的进程。开发过程不是书本的东西,也不是每个公司一样的克隆品,而是一种概念,而实际上的执行程度最大程度取决于软件工程师的水平,我们应该加强软件工程师的培训,严格选拔机制,使整个产业从作坊制走向工业化。
[解决办法]
[解决办法]
不错,不错啊.支持楼主!!
[解决办法]
呵呵.........jf并学习...........
[解决办法]
顶,学习。。。
[解决办法]
社会体制
群众素质
上层观念
唉,没办法
中国软件的大局和印度的就不一样
[解决办法]
接分
[解决办法]
up
[解决办法]
回复人:sandrowjw(我的小猫照片给弄坏了,心都碎了) ( 五级(中级)) 信誉:97 2007-01-25 20:39:47 得分:0
?
to SilvanLee(),我觉得有一个情况需要注意的,就是往往有不少缺乏必要的经验和意识的人被推上了架构和设计人员的位置,或者他们作为coder的身份同时在做这方面的工作(这当然很可能还是因为管理的问题,更多的则应该是因为成本问题),因此造成两方面的工作都没有做到家。工业化最忌分工不明确,但是明确分工又需要比较高的成本,而高成本投入又不能让人放心(因为合格的coder并不好找,找到的都很贵,都想当架构师),这就是一个恶性循环了。
这个说的很对,我们这里就这样,连我这种水平都要设计系统结构,出来的东西能好的了吗
------解决方案--------------------
UP小猫。
[解决办法]
UP小猫。