从不适应到不得不离开,我在印度公司的日子(一)

曾几何时,我没想过自己能进入到一家外企工作,更别说进入一家被国内IT从业人员所尊敬的印度企业了。小弟不才,在一次幸运成份占95%的机会中,有幸成为了某印度软件开发企业国内分公司一员。在此公司的两年时间里,我从当初的不适应,到后来的不得不离开,个中滋味,均在此文中。

 

       2004年年末,刚迈进软件开发行业门槛的我,忐忑,彷徨却充满憧憬。项目组在一个不起眼的居民楼里,没有光亮的前台,只有满地的网线,没有纯平,也没有液晶,只有球面。抱着先就业的态度,我在心里忽略了这样的工作环境。但是,手头上的工作却非常棘手。对于我这样的新手,在没经过培训的情况下交给我一个没有文档、没有注释的WEB应用系统,让我在最短时间内上手并进行二次开发。为此,我手忙脚乱地阅读代码,上网查资料,遇到问题想找个同事问问都不行。原来这个应用系统是已离职的一个牛人写的,而整个项目组就我一个是做JAVA的,我差点彻底崩溃了,每天诚惶诚恐,不断在CSDN上发贴,在QQ群里问人,但是远水救不了近火,快一个月了,我还是没有把整个系统弄熟,只是在代码里加上N多用来Debug的断点……

 

    QQ群里混了一段时间之后,认识了一个网友,名叫Danfo,感觉还挺热情的。在一次不经意的聊天中,他说他们公司正在招人。当时,我正想要逃避现状,于是向他打听了招聘职位的具体要求。他所在的是一家印度企业在国内刚成立的分公司,职位要求相关工作经验要两年左右,且对英语的听说读写能力较高。我感觉两项条件我完全不符合,但报着试一试的态度,直接上门去递了简历。

 

    第一关,做题。啊,题目全英文!我傻了。但是我没有犹豫,也没有时间犹豫,40道题目,15分钟必须做完。我没有去细读题意了,完全靠感觉。等做完之后一看表,才花了10分钟而己。不能检查,还是相信自己的第一感觉吧。马上起身,交卷。“这么快!”,在我交卷到前台的时候,身后听到有人这么议论着。

    

第二关,面谈。交卷没多久,进来一个个头较矮小的人,他自我介绍说叫Bill, 职位未提及(事后才知道他是技术总监),让我简短做了一下自我介绍之后便问我技术方面的问题了。巧啊,他问的EJB相关的问题,我刚刚在前几天认认真真地看了一下IBM的红宝书,我感觉我的回答挺让他满意的。而有些问题,我不知道就很坦率地跟他说了。最后,他要测试我的英文水平。我还来不及多想,他已经开始用英语向我发问了。”Pardon”,”Pardon”,”Pardon”,除了这个词,我不知道说什么好了,他马上切回到中文状态,用中文解释了刚才英文问的问题。我赶紧说,有好长一段时间没接触英语了,不过基础还是不错的。而后他点点头后,就拿着我的简历出去了。

    第三关,见老总。约十分钟后,Bill让我出去一下,于是我跟着他进到了一间门上挂了“经理室”的房间里,见到了一个满脸黑乎乎,但是看起来还是挺面善的家伙。Bill介绍说,这个是该公司印度派过来的技术专家。我是第一次面对面地与外国人交谈,既然你只是一个印度方的技术专家而己,又不是老总(此人正是公司的老总)。一番“how do you do” 加握手之后,他让我用英语作一下自我介绍。我绞尽脑汁,东拼西凑,以说一个词,停上十秒的速度完成我的英文版自我介绍。只见那个技术专家瞧我笑了笑,然后又递给我一篇英语文章,让我读。晕,除了字母我认识之外,便是生词。但是我不能不读啊,于是,不知一股什么力量支撑着我读完了整篇文章。等我读完之后,旁边的Bill小声地跟我说,技术专家只是问我能不能看懂,并没有让我读!汗啊!不过我还是假装镇定,礼貌性地瞧他笑了笑。当然,他也报以了同样的微笑,并且露出他洁白的牙齿。最后,他问我,“Do you have English name?,哈哈,这句我终于听懂了,但是我从来没有英文名啊。“Yes, you can call me Jack.”在第一时间,我想到这个名字。”Jack,…..” 他说了一大通,我什么都没有听懂。然后,他来再一次跟我握手,我知道是道别了,“Bye-bye!”我从经理室走了出来,Bill对我说,一个星期内有答复,随后我便离开了。

这里要强调一下,当时我的个人状态是最好的,因为我基本上对这次工作不抱什么希望,所以很放松。可结果完全出乎我的意料,我在第二天便得到了这个公司的offer! 我真的有点不敢相信,真到我再次去该公司拿录用通知书。于是,我马上办理了离职手续,进入到了这家印度企业。

 

    第一天上班,为了留个好印象,提前二十多分钟就到了。结果到了公司之后,门都没有开。同事陆陆续续都来了,在等开门的过程中,大家都有说有笑,可一进办公室的门之后,我发现他们都沉默下来了,说话也是很小声的, 偶尔听到有人大声说话,但是说的都是英语。我心想,不会吧,难道管理这么严,进了办公室都不敢大声说话?

 

    前台安排好我的座位之后,便让我自己装系统。由于有些设置不懂,所以用中文问了问旁边的同事,结果,他竟然用英语来回答。太别扭了,都是中国人,说什么英语?别以为我新来的,你就要向我炫耀!再问别的同事,也竟然得到的是英语的回答。算了,还是自己想办法吧。

 

    早上十点,那个技术专家背着笔记本电脑来了。经过我的座位时,向我点了点头,然后就进到办公室了。然后,前台让我去他办公室。一进办公室,他说用英语说开了,我根本都听不懂。他看我一脸茫然的样子,便打电话让前台进来跟我当翻译!之后便说了一些公司的业务之类的东西,最后强调了一点,在办公室,必须都得用英语交流,否则,将要受到惩罚!

我当时还以为听错了,他又重复了一遍。难怪,其他同事一进办公室感觉就完全不一样了。

我说“OK!”然后就出来了。

 

    从此,我便开始了新的工作。每天必须和同事一起说英语。虽然当初很困难,很憋屈,但是坚持一段时间下来之后,感觉口语确实进步了不少。这段时间里,那个技术专家(也说是公司老总)每天中午让我去他办公室一趟,跟他用英语说说我的英文学习情况,然后跟我做一些纠正。虽然他的口语不标准,但还是非常耐心的纠正着我的发音,哈!这段时间,我非常感谢他对我的帮助,让我的口语有了一定的进步。

 

    忘了提我的那个网友Danfo,他就是第一个用英语回答我问题的家伙!本想请他吃顿饭,但感觉他好像没那个意思,就不了了之了。这段时间,工作的内容就是熟练开发工具,做一些demo,倒是很轻松。

 

    一段时间以后,我对自己也慢慢松懈下来,觉得很多问题真的无法用英语来表达。于是,从偷偷把头埋在工作台下面说中文,最后发展到为某个技术问题里大声地争论……一次,正在我自鸣得意,高谈阔论之时,忽然发现气氛不对劲,全办公室顿时鸦雀无声。待我回头一看,老总站在办公室门口,脸上带着自然的微笑,顿了顿,然后对我说,下午上班的时候要用巧克力把桌上的盒子填满。我一时脸红至极,只有说“OK”的份了。

    从此以后,我说格外注意了。尽量在办公室说中文,实在不会表达的时候就用在MSN上打中文和同事进行交流。

    

    一个多月之后,项目需求说明书终于来了。我们公司做的是外包项目,印度总部拿到单之后,再将项目中的部分模块分包给中国分公司来做。说明书是全英文的,于是,我每天一上班就把金山词霸打开了,直至下班。我把不认识的单词全部抄在一个笔记本上,包括发音,词性和不同的含义等。一年过后,我发现自己的抽屉里已经有五本写满生词的笔记本了。但是单个词知道意思了,放在整个句子又不清楚,因为是国外电信运营商的项目,业务跟国内大不一样,我们只有从文档中去了解需求了。两个星期之后,高层设计和详细设计也发了过来。 因为是第一次做项目,所以并没有要求我们做设计。怀着无比兴奋的心情,我们开始了第一个项目的编码工作。这时,我真正体会到了什么是软件蓝领,什么是流水作业了:详细设计把一个类的方法名,甚至是代码名都定义好了,你只需Ctrl+C,Ctrl+V操作基本上都OK了。而且项目的相关文档都非常详细,任何都有据可查,任何文档都有模板。每周周一的工作例会是必不可少的,而且都有会议记录。

    编码工作很快就完成了。但是接下来的代码审查,单元测试,集成测试却花了三倍于编码的时间。单从代码审查来说,就有Peer Review, Leader Review, Manager Review三种,review完之后就要进行测试了。最让我不适应的是,除了要写非常完备的测试代码之外,还必须要写测试文档。测试文档必须将测试的目的,测试的输入/输出,测试的步骤全部列出来,稍有不完整的地方,印度总公司的Manager就要求你重新写,而且会你把文档中的问题全部列在一个EXCEL文件中,并注明在第几行,第几列!甚至对EXCEL表格的列宽都有要求。

    另外一个就是代码的格式和注释。以前写代码也真的很留意写注释。在这个项目中,不仅要求对每个变量,每个方法都必须加注释,而且写注释的格式和措辞都有严格的要求。这样苛刻的要求弄得我非常恼火,一段时间下来,感觉自己完全在做一个打字员的工作:将代码从设计文档中Copy出来,进行排版,添加注释,然后再写测试文档等等。但是,Manager一再强调,这是提高代码质量的惟一途径,我们必须不折不扣地执行。

 

   三个月后,第一个项目终于提交了!项目组的同事并不觉得特别高兴。因为这三个月中,我们每个人写的代码量少得可怜,而大部分时间花在了写文档上面,我特别感觉到一点成就感都没有。如果在别的公司,这样的效率,早就被炒鱿鱼了。但印度总公司发回的邮件来看,他们对我们的英语水平不怎么满意,特别是在文档方面,他们不断地向我们提出了注释中的语法错误和表达错误,着实让我们感到面子上很挂不住。

 

   做完第一个项目之后,我也顺利地转正了。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用C语言内嵌汇编实现印度国王的奖励,求和2的0次方加到2的63次方的代码: ```c #include <stdio.h> int main() { unsigned long long sum = 0; unsigned long long i; __asm__ __volatile__ ( "movq $0, %%rax\n\t" // 将0赋值给rax寄存器 "movq $63, %%rcx\n\t" // 将63赋值给rcx寄存器 "loop_start:\n\t" "addq %%rax, %0\n\t" // 将rax寄存器的值加到sum变量中 "shlq $1, %%rax\n\t" // 将rax寄存器左移一位 "loop loop_start\n\t" : "=rm" (sum) // 输出操作数:sum变量 : // 输入操作数为空 : "rax", "rcx" // 破坏性操作:rax和rcx寄存器被修改 ); printf("印度国王的奖励是 %llu\n", sum); return 0; } ``` 在上面的代码中,我们使用了内嵌汇编来实现印度国王的奖励。首先,我们定义了一个unsigned long long类型的变量sum,并将其初始化为0。然后,我们使用了__asm__ __volatile__来告诉编译器接下来的代码是汇编代码。在汇编代码中,我们使用了movq指令将0赋值给rax寄存器,并使用了movq指令将63赋值给rcx寄存器。 接下来,我们使用了一个循环,使用addq指令将rax寄存器的值加到sum变量中,然后使用shlq指令将rax寄存器左移一位。循环的条件是rcx寄存器的值不为0。最后,我们使用了输出操作数来将sum变量的值输出到printf函数中。 需要注意的是,我们在内嵌汇编代码中使用了破坏性操作(destructive operation),即修改了rax和rcx寄存器的值。因此,我们需要在代码的最后使用了一个“:”符号来告诉编译器哪些寄存器被修改了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值