Saturday, December 29, 2012

Can't stop listening to a couple of songs this week

I run into two very nice songs this week. One is pretty old, probably 20 years old; the other is pretty new, maybe a couple of months only.

The old one is sang by IZ, the famous Hawaiian singer. Here it goes.

The new one is sang by a young Chinese girl singer Ziyan Zhou.

How are these songs related to technologies? They are not. But they really relieved me a lot this week when facing some really unphilosophical discussions.

When conveying my logical ideas via English, it's always losing some amount of information due to my unstable English channel. So I have to write my ideas down very logically and carefully to maximize the entropy of the article. But this will make the article a little bit longer than the articles that are not that critical. So when people reading a long article, they will automatically filter out some amount of information they thought not that important. Finally, they still don't get my ideas correctly. Only the one  really read and think about what I wrote down there finally get the most out of my ideas.

Tuesday, December 25, 2012

IT农民工如何来美国工作(续)



(转帖请注明出处)

上一篇(IT农民工如何来美国工作)本来是写给自己的一些朋友和同事看的。写完了就放在那也没回头看看,不知道什么时候被哪个大号转发了,一下收到了很多私信和评论。数目太多了,无法一一回复了,再写一篇续,把大家问的主要问题再解答一下吧。不过还是无法详尽所有细节,请有想法的同学们自己多多搜索做功课吧。

 问题主要分为下面几类。当然还是主要结合我自己的经验和经历为主,如果认为是我个人炫耀贴的话,大家可以鄙视着看:-)。写这些东西的重点在于,每个人看了都取到自己需要的东西。

技术积累

有人问到我是做什么技术的,估计是想了解做那一类的技术或者相关的经验比较容易出国或者找到美国的工作吧。以个人经历为例子说一说吧。

我本身一直做Java,2003年在学校里的实验室(学校跟外企合作的)实习的时候就开始做金融相关的信息系统和交易系统。一干就是4年。07年研究生毕业后,我实习的实验室也发展成了独立的公司,我没有面试其他任何公司,直接就留在了这家由实验室发展起来的公司.又干了两年,也是金融相关的系统。之前一直都是做相对比较标准的J2EE(现在叫JEE)的应用。很幸运的是在2006年,做了一个比较特殊的项目,很深入地接触了一个国外的顶级外汇交易系统。虽然也是用Java实现的,但是完全不是J2EE的那套思路,而是一套高度定制的设计精巧的体系架构,于是让我大开了眼界。当时真的是天天感慨,原来一个Java系统还可以这样做。不只是我,组里的人都这样感慨,当年确实像井底之蛙一样都比较土。这也算是一个转折点吧,我觉得再这么做J2EE的项目做下去,也没有什么太大的提高了,于是慢慢有了要到更大的平台发展的想法,去进一步的开阔自己的眼界。其实,当时也纠结过,是不是可以留在这个公司往管理方向发展,带带团队,以后就慢慢不用写代码了,毕竟这是一家相当不错的外企。可是思前想后,觉得自己还是做做技术更合适一些。这一点上,我也跟很多人聊过,每个人的想法可能都不太一样,选适合自己的吧。

直到到2009年,我觉得在再这个公司可能技术上也无法有太大的提高了。其实这并不是公司的问题,而是其业务形态决定的。这是一家外包公司,做的大部分是欧美的金融系统外包。没做过外包的同学,可能体会不到,甚至都不知道外包是什么(自己去学习一下吧)。我做了将近6年的外包之后,自己总结出来,如果不想重复劳动,永远做项目中的乙方,那做个几年(5年以内)外包就够了。做外包也有好处,尤其是欧美外包,可以接触一些相对比较先进的技术,而且开发流程非常完善,还有很好的机会锻炼英语,结识一些国外的朋友,甚至去国外出差,考察考察风土人情什么的。我当时也不觉得这些有什么大用,只是凭着好奇和兴趣一一的尝试了。后来才发现这些“点”就像乔布斯乔邦主说的那样连在一起了。所以,做外包的同学们,要好好抓住头几年做外包项目的机会,多多学习技术、开发流程和真正的工程(有甲方乙方的那种工程)是如何做的吧。

2009年,我辞职离开了外包行业,很幸运地进入了互联网,更确切的说是电子商务行业。说幸运,因为在当时,确实是很火的行业;现在更火,做电子商务的创业公司真是如雨后春笋一般。从金融到互联网,虽说还是做软件开发,但是还是有隔行如隔山的感觉。很多东西要从头学起。从原来公司的“高级软件开发工程师”直接变成了“开发工程师”,那种落差感和些许的焦躁,可想而知是难免的。但是,既来之,则安之。来了就为了以后能有更大的发展,这些名头上的事儿,只要慢慢证明自己的价值,以后会名符其实的。

不做外包,改做产品,这是一个重大的转变。在本土互联网公司这两年多,很幸运的做了一两个大型项目,作为主要的架构师。虽然做的很累,因为没有很多互联网的经验,但是好处是全面地学习了互联网相关的各个技术,什么HTTP协议啊、CDN原理啊、DNS原理啊、集群、负载、高可用、高性能、高并发、blahblash......都有所涉猎。虽然我之前说过,经验的多少并不是非常关键,关键还是看技术的扎实程度和人的逻辑思维能力。但是,我来美国进入互联网公司,跟这两年的本土互联网积累的经验不能说没有帮助。

 总的来说,我自己和身边认识的人,通过H1B签证来美国工作的,基本都是做金融和互联网的,而且Java的居多(这也就是我的圈子)。当然做其他的技术,做得好也有机会来,比如我现在的公司边上就是微软的办公室。硅谷的IT公司很多,对技术人才的需求也多种多样。不看你做什么技术,关键是你要做的比较出色。但是现在来说,互联网和金融相关的确实比较容易找到美国的工作机会。

工作信息

还有同学问如何得到工作信息,国外有没有智联招聘这样的网站,以及我能否帮忙内部推荐。

我这两篇文章,主要是写给有几年工作经验,有一定的技术积累的同学们的。就像有朋友说,真正的牛人大学毕业就直接来美国工作了,这种情况确实有,我遇到了一两个,但是太少太少。大部分还是像我一样有三五年工作经验,通过内部推荐这样的社会招聘途径找到工作的。其实在国内也一样,对于有三五年工作经验的人的同学,基本不太会再通过智联招聘这样的网站来找到自己理想的工作了。另一方面,大的IT公司也不会去智联招聘这样的网站去筛选简历。

所以基本还是靠社会化关系,通过人才来发掘人才。因为他们相信great people know great people。这可不是我说的,他们请求员工推荐自己认识的人才的邮件里边真的是这样说的。不过如果真的要说网站的话,那linkedin.com是一个不错的选择,社会化求职网站。把自己的英文简历发布到上面,如果经验比较匹配,会有很多国外的猎头或者公司主动联系你的,问你要不要考虑一些国外的工作机会。当然再Facebook这样的网站把自己的profile更新的比较完整,也可能有机会。

还有就是所有的大的IT公司都有自己的job info网站。会发布公司正在招聘的职位信息,以及对相应的求职者的要求。好好研究一下,哪个职位更适合自己,以及自己是否达到了要求,还有那些不足还要提高的,这些都对能成功应聘非常有帮助。不要去追求一个看起来很不错,但是跟自己的经验、个人情况相差甚远的职位。自己的兴趣和积累才是你选择的基础。

还有更主要的就是,通过自己的朋友同事得到相应的信息。对于我能否提供内部推荐,答案是可以,如果我们以前就很熟悉的话。因为,公司的内部推荐都会问你跟被推荐人的关系。如果是完全不熟悉或不认识的被推荐人,就算我的推荐陈词写得再好也没有用,因为招聘的人不会予以考虑,因为我推荐的信息并不可信。(如果你知道网页搜索的PageRank算法,就会明白这个道理。)所以,为了提高推荐的成功率和节省大家的时间,还是找你熟悉的人或者熟悉你的人为你推荐把,比如在同一家公司一起工作过,哪怕是在两个不同的组,都会比找我推荐更好。

 如果实在没有朋友或同事在美国的大IT公司工作,那可以“曲线出国”,试试先去这些大公司的中国office工作。你总会认识一两个朋友是在这些公司的中国offcie工作的吧?如果能得到中国office的面试,那么机会就更近了一步。我见过的例子,一位同学刚通过中国office的面试,HR就联系他问,考不考虑去美国工作,因为美国office刚好缺人,而且他们觉得你还不错。这样如果你同意,那就变成了面试中国office,可是最后来美国工作了。如果HR没有问你考不考虑来美国工作,只能在中国office工作,那也是不错的选择。因为大的IT公司应该都提供员工内部transfer的政策,一般是工作2年或者一定的年限之后,如果你愿意并且公司刚好有机会的话,你就可以申请内部transfer。而且美国移民局能提供的L1签证也正是为这种情况的人准备的,这样就不用申请麻烦的H1B签证。

签证移民相关信息

讲到签证,就涉及大量的移民政策的信息。我只是一软件工程师,只申请过H1B签证。所以无法提供更多的专业的信息,也不想误人子弟。但是有几点可以说说的。

关于申请H1B的要求,据我所知关键是你拿到的美国公司的offer,并且公司愿意支持你申请H1B。没有其他的要求了。不需要托福、雅思,不需要资产证明等等。因为英语水平,公司在面试的时候已经考察过了,只要能满足工作的要求,公司不会在乎你是否考过托福和雅思什么的,那是出国读书,申请留学才需要。至于资产证明,我前面也说过,H1B是允许有移民倾向的。也就是说申请签证的时候,移民官不在乎你在国内有多少资产,你是否会留在美国不回来。为什么呢?因为既然有美国公司愿意雇佣你,那你是给美国提供生产力去了。当然人家也考虑了,你这种人才在美国是紧缺的,你去了不会抢了美国本土人的饭碗。这些考虑都在公司跟美国移民局申请H1B
 Petition的时候就考虑过了,所以只要你拿到移民局的H1B Petition的Approval,去美国领事馆申请H1B签证基本上是走走过场了。(如果不明白H1B Petition是啥,跟H1B签证有啥区别,自己去查查吧)。

还有一种需要资产证明的情况是你要投资移民。刚好我老婆以前是做投资移民的,可以说一两句。先说明,拿H1B来美国工作并不叫技术移民。只有你开始以EB1或EB2的身份开始申请绿卡了,才能叫你准备技术移民了。你完全可以H1B工作个6年(不申请绿卡的H1B的工作的最高年限)后,回国;或者在此6年间开始申请绿卡。绿卡倒是不一定6年能申请下来,但是只要申请进展到某步了,你就可以无限期的续H1B的身份了。至于投资移民,一般要你确实比较有钱,而且是你能解释清楚其来源的钱。投资移民一般都要通过移民服务公司来做。可以关注一下移民服务公司的广告。他们经常发骚扰短信的,说周末哪个哪个高档酒店免费开哪国哪国投资移民讲座。确实可以去听听,因为确实免费,还能了解很多投资移民的信息。不过这也就是对于IT大佬们。像我呆过的本土互联网公司,就有靠股票起家的元老级员工,通过投资移民加拿大的。现在投资移民加拿大更难了,要有一千万的身价才可以。像我们这种IT农民工,主要还是通过H1B来美国工作,然后在申请绿卡,走技术移民这条路。

其实如果你只想像出国,但是不一定想来硅谷或者美国。那你也可以考虑直接技术移民澳大利亚。这个真的是技术移民了,还要先考雅思。然后澳大利亚政府给你的综合情况打个分,如果分数够了,就可以直接给你身份,最多是两年时间就可以拿到澳大利亚的“绿卡”。具体情况我不是非常清楚。但是就在我办理来美国工作H1B签证期间,我的两个非常好的朋友,一对夫妇,就通过技术移民澳大利亚了。当然前期也是经过了1年多的准备的。再多说一句,这种移民澳大利亚的方式有一个小小的风险就是要先移民再过去找工作。但是据说澳大利亚的公司prefer你有身份,才能给你offer。有可能你去澳大利亚了之后,很久也找不到工作。要想好这段青黄不接的时期要怎样度过,不然压力会非常大。我的两个好朋友,在努力了近三个月之后,终于在澳大利亚找到了工作。

 所以,也不要盲目地就觉得IT农民工出国工作就是要来美国,来硅谷,其实选择还比较多。

发展和生活

说说在美国工作的发展和生活情况吧。前一篇确实写得让人觉得出国工作比较容易,那是我故意的。为了让大家先有想法,“人要敢想”嘛。但是出国工作、生活也有很多问题不得不考虑。

先说工作问题,中国人做IT的在美国没有做到很高级别的,当然是相对其他国家在美国的移民,尤其是印度工程师来说。理论上虽然在美国没有任何种族歧视、人人平等,但是毕竟咱们没有语言优势,宗教信仰、价值观等等也跟西方有很大差距。你可能觉得写个代码跟这些都没有关系,但是当你要融入团队,融入公司文化,融入当地的人的工作、生活时,这些都多多少少是个障碍。虽然在硅谷华人非常多,你可能很容易结识很多华人朋友。但是如果是想能有更大的发展,就必须更多地融入当地人的工作、生活。这个不用多说你们也能明白。

最重要的是,出了国,国内的亲戚朋友怎么办?尤其是父母怎么办?以我个人为例,我今年刚好30而立了(时间过的真快啊),刚刚结婚,没有生小孩,父母50多岁,60不到,身体都还可以。而且,我还有一个弟弟在父母身边。所以,我目前来讲还没有太多的顾虑。等以后有了孩子,父母年级大了,顾虑就多了,如果是那个时候再考虑出国工作,估计就是另一个想法了。

作为第一代移民,再异国他乡人生地不熟的,生活的某些方面还是比较苦的,比如说没有亲戚,朋友不多,情感寄托都在遥远的国内。而且还要自己承担较高的房租(尤其是硅谷),生活方面的语言不通(技术方面的倒是没啥问题),娱乐活动比较少(美国的生活大多如此,远不如国内丰富多彩),等等。其实主要还是第一代移民,无法很好的融入当地的生活所致。我们的下一代,第二代移民应该就好很多了,基本跟本土美国人没有什么区别了,看看骆家辉大使就知道了。也可以看看罗永浩老罗,推荐的《美国种族简史》和最近热播的高晓松的《晓说》中的关于美国的那些内容,就了解第一代移民要面临的问题了。

所以,不管是想工作几年再回国,还是接着申请绿卡移民。自己都要做好一定的心理准备,人生不长,能供你随便折腾的日子并不多。

作为IT农民工在美国,尤其是硅谷,工作的机会还是很多的。尤其是能接触最先进的技术和这些公司的技术同行,机会自然而然的多了。关键看你是一个能如何抓住机会的人。

最后再说一句,萝卜白菜各有所爱。现在国内的机会也非常好,那么多的创业公司,风险投资公司。我就认识N个朋友,从我前两家公司辞职,自己创业了,有的做得也很成功。我没走那条管理的路,没走那条创业的路,选择了自己觉得适合自己的路。路有很多条,选择哪条都是自己的选择,不用评判他人的选择,也不要理会他人的评判,走好自己的路就好了。这是我以前写的一篇blog《关于工作的价值》,阐述了我一些观点,有兴趣的同学可以读一下。

又啰哩啰嗦写了这么多,只希望能帮助到有需要的人。恕我不能一一回复私信和评论,和加微博加好友加QQ的请求。如果有什么问题可以继续通过私信、评论发给我。我会不定期地整理一些主要的问题再写一些续篇。微博可以关注@美国找工作 ,我跟这个帐号没有任何关系,只是偶然发现他会发布一些美国的工作信息,可以关注一下。

 PS: 还有同学问我是不是国外的工程师都用苹果的电脑做开发?我觉得国内的才是呢。我以前是用Thinkpad。后来来美国工作之前,老婆送了我Macbook Pro做礼物。其实开发用什么不重要,重要的是大公司的服务器基本都是跑再linux上的。至于使用linux还是用mac开发,看你自己喜欢吧。我也见过用windows做开发的:-)


最后感谢老婆为我review这篇blog!

IT农民工如何来美国工作


(转帖请注明出处)

经历一年多的等待与折腾,终于来美国工作了。自打进入IT这一行那天起,就梦想着有一天能在硅谷的顶尖的IT公司上班,没想到梦想就这么成真了。当然,我的梦想不算远大。但是我觉得人的梦想是随着成长一点一点变大的。伟人们的远大理想就不说了,那有点扯远了。

来之前很多朋友、同学、同事都问我,怎么直接找工作去美国。但是由于还没有真正的肉身翻墙成功,所以也不太好说太多。现在写这篇东西,希望能给有想法来美国工作的同学一些帮助。至于是国内好,还是国外好,哪里机更会多,个人有个人的想法。话说萝卜白菜也各有所爱,人人都有追求自己梦想、幸福和自由的权利。废话少说,就说重点吧。

这个年头,IT农民工来美国工作其实相对早些年来说容易太多了。我大三开始进入试学校里的验室干活的时候,以为想我这样的国内读本科的同学,想去美国只有一条途径,那就室申请美国大学的研究生,然后毕业了找工作,留在那里。可是毕业几年之后,发现身边很多同学同事,虽然没有去美国读书,但是都去美国工作了。去加州湾区的IT公司,也就是硅谷的居多。

后来抱着试一试的心态,我联系了一位在硅谷工作的师兄,问是否有机会我也可以来试试。他说把英文简历给发他就可以了,其他的我就不用管了。过几周之后,果然那边的HR就开始联系我了。可惜后来虽然没去成他推荐的公司,但是还是差不多的流程成功应聘了另外一家硅谷的IT公司。磕磕绊绊,就这样一步步地,远渡重洋来到了硅谷工作。

其中的曲折就不说了,我的情况有点特殊。但是基本思路是一样的,主要是看三点,走三步:
三点:
1. 技术好。
2. 英语好。
3. 人缘好。

三步:
4. 投简历。
5. 面试。
6. 搞定H1B签证。

三体:
7. 哦,没有三体,《三体》是小说:-)

技术好,容易理解,硅谷的很多IT公司都是世界顶尖的,招聘的当然也是比较优秀的人才。想靠小聪明,或者包装漂亮的简历,或者面试时候的忽悠之词,往往是很难过关的。因为大的IT公司特有的面试流程,很容易识别出这些人。那什么叫技术好,其实更多的是考察一个人是否聪明,跟你会不会、知道不知道多少技术关系不大。所以大的IT公司都面试什么数据结构啊算法啊什么,其实真正工作中用的也不多。但是这些是每一个CS专业人士的基础,只是通过这种基础的语言或者说知识来考察和挖掘你是否聪明,思路和反应是否够快。从这个角度来讲,单纯的做算法题虽然能让你对面试题更熟练,但是也不一定就能是你变聪明。还是要平常多学习、多总结、多思考,锻炼自已的逻辑思维能力。在面试的时候让自己的大脑高速运转,展现自己思维最快、最逻辑的一面是至关重要的。

英语好。这个不用说了,来美国工作,不可能跟同事讲中文。虽然硅谷华裔工程师很多,但是工作生活上主要还是用英语。尤其是应聘面试的时候,英语不好沟通都成问题,别提还怎么考察技术了。我有幸学校毕业之后,其实是毕业之前,就开始在一家很大的外企的杭州分公司工作。工作语言是英语。虽然一开始我的英语也非常差,但是在工作中坚持学习,通过各种机会锻炼自己的英语,听说读写,持之以恒。英语慢慢的就真的只变成了一个沟通的工具,儿不是一个什么负担。英语能力就像一个渠道,把你在技术上积累的能量,通过英语能力这个沟通渠道,释放到更广阔的平台上,也就是释放到硅谷。现在想想真的感谢我大学的导师、我在第一家公司的老板和同事,能够给我那么多机会,积累技术、学习和锻炼英语。我个人的另一个例子是,在后来离开的第一家公司之后,进入另一家本土的互联网公司。可是第二家公司虽然有国际业务,但是技术团队完全在国内,工作语言是汉语,甚至面试的时候连一个英语的问题或者自我介绍都没有。进入公司子后不久,我发现工作中完全用不到英语,为了不荒废自己几年来积累的英语能力,我开始坚持用英语写每周的工作总结,也叫周报。我估计有可能我是公司本土的技术团队一千多人中唯一一个坚持用英语写周报的人。这样一写就是两年,虽然别人看起来我可能比较另类或者不入流,但是我知道这对我自己有好处,所以还是坚持了下来。这使得我在后来不论是在电话面试、到美国现场面试、还是与律师沟通H1B签证等需要英语的情况下,都能没有障碍的沟通。也很感谢我第二家公司的老板,他很开明地让我特立独行地用英语把周报一直写下去,甚至有时候还跟我交流交流一个句子英文为什么那么写。

人缘好,其实跟投简历有很大关系。一般只有应届生或者刚毕业一两年,去盲投简历。一般有工作经验的同学,想去大的IT公司,最好的投简历的方法,就是找自己认识的在那家公司工作的同学啊、朋友啊,通过内部推荐的流程来投简历。大的IT公司求职者众多,盲投的简历很有可能被淹没在茫茫简历海中。内部推荐,不仅可以获得更大面试的机会,而且一旦应聘成功,推荐人往往还有奖金可以拿。一举多得,何乐而不为呢?不过,让人家帮忙推荐,重要的是你自己觉得自己满足了上面的技术好、英语好的条件,否则人家推荐你也很难为情。公司不给面试机会吧,人家对你不好交代;给了面试机会把,最后没通过,又浪费了所有人的时间。所以,最好还是觉得自己比较有把握了,再找人推荐,这样节省大家的时间,而且应聘成功的机会也大一些。

面试,网上的面经应该也很多。但是其实大的IT都有信息比较全面的job info的页面,里边一般会讲他们期望找什么样的人才,以及面试应该准备那些方面的知识,流程大概是什么样的。只要平常有足够的积累,正式面试前准备两三个月应该就足够了。而且还有一个网站,careercup.com,总结了各大IT公司的面试题以及流程,还出了一本书,是不错的参考。

如果面试顺利功过的,那恭喜你,下面就是繁琐的H1B签证流程。IT农民工来美国工作最普遍的签证类型就是H1B。不要担心老婆(老公)、孩子,他们可以通过H4签证跟你一起来美国。H1B签证是唯一允许有移民倾向的签证(L1签证可能也允许,不确定)。一般公司会有专业的签证律师团队帮你完成签证的,所以你不用太担心。但是唯一要注意的就是,美国签发给外籍人士的H1B申请每年都是有名额限制的。现在大概是一年65000个名额,注意这是给全球的想拿H1B身份去美国工作的人的名额,所以还是比较紧张的。美国移民局的H1B申请审批是每年的4月份开始的。一般要15天到几个月的时间才能批下来。然后要拿着审批通过的文件去你当地的美国领事馆去申请H1B签证。但是一个麻烦的事儿是,就算早早通过移民局的审批、并且拿到了H1B签证,你也这只能等到当年的10月1号才能正式来美国开始工作(可以提前10天入境,也就是9月20号之后入境即可),这是美国移民局的规定。所以根据这些信息,你可以考虑考虑你愿意什么时候开始投简历,整个面试流程可能要持续一个月,甚至两个月,如果还要来美国on site面试的话。面试通过拿到offer后,什么时候辞职,需要等H1B签证入境多长时间,等等问题。

Offer搞定了,H1B签证搞定了,就没有什么拦路虎了。一般大的IT公司都会提供很好的Relocation的福利,具体的可以跟HR的同学谈。因为有完善的Relocation的服务,所以举家搬到美国也不是什么很困难的事情,只是步骤比较多,比较繁琐,一步一步耐心发办好就可以了。

啰哩啰嗦,感觉写的也不算太详细。展开了写估计都能写本书。但愿给那些有些蠢蠢欲动的同学们提供一个大概的了解和印象。其实作为IT农民工,来硅谷工作并不难。

Thursday, November 8, 2012

Sunday, October 28, 2012

Write More Blogs

After pursuing twitter/weibo for such a long time, it's time to get back to write something thoughtful and critical. Since I'm out of the wall, need to practice English more, and focus on technology more, I started my English technical blog on blogger.

Check my dead Chinese life blog: http://blog.sina.com.cn/gjyalpha
I was proud of it when I was excited to see I could write stuffs that long.