关于国内程序员肉身翻墙
本来是没有倾向谈论这个话题的,但是最近邮件或者微信问我这个问题的国内程序员朋友很多,我在这里一并介绍一下,也算作简单的解答。同样的问题就直接参阅即可。事实上,我很乐意收到这样或者那样的问题,也包括肉身翻墙这样的话题,混熟了的话瞎扯也开心。但是也请大家注意一点礼貌,有好几次有程序员没头没脑地微信上跳出来问问题,然而话都说不清楚,或者连个招呼也不会打,更有甚者二话不说直接把log贴过来让我看问题,实在是让人觉得很不舒服。有些我回复了,有些我实在是不想回复了。
另外,具体的问题我比较好解答,像有不少人问我,“你觉得美国怎么样?”,我都不知道从何说起。具体问题还是邮件沟通更合适,我答复起来也更舒服,微信更适合有一句没一句的扯淡。另外,要说明的是,因为我是14年搬到西雅图的,并不算待了很久,我也有一些其它国家的程序员朋友,但是我只谈论美国,因为我也没有其它的经历。
首先,我觉得需要问自己一个问题,为什么要出国工作?是一时脑热么?别人的饭碗里的饭,闻起来总是香的;别人的生活,看起来总是美的。但轮到自己的时候,却不一定如此。如果你想去哪个国家工作,那么至少办理旅游签证去玩一玩、看一看吧?签证有时候会很麻烦,这没错,可是连这样的事情都不做的,下了决心立了志愿又有多少可信度呢?现在旅行那么方便,旅游签证又已经是10年签了,出行应该说不能算什么问题。不同人生活上的追求千千万,找到自己最喜欢的,或许才是最合适的。而怎么才能认定喜欢,肯定是去看看最保险了。当明确了目的和原因,那么才往后思考才有足够的意义。
接着,我想泼一点冷水,谈谈我觉得在海外工作令我失去的东西。
1. 朋友和亲人。这不必细谈了。会认识新朋友,但是绝大多数的交际圈和亲人都会远去,而对于远行后父母养老的顾虑,也是很常见的。
2. 便捷的生活。我记得几年前住在北京的时候,下楼就是一条便利街,从吃饭剪头到购物遛狗,日常服务都有了,踢个球打个篮球,边上就是球场和gym,每天可以步行上班,怎一个方便了得……现在呢,不开车出门就相当于残疾一样,最近的公交车站要走很远,更何况公交系统远没有国内发达,经常一小时一班车,还得倒车才能去市区(西雅图)。
3. 职业生涯的某些可能。你可以认为是职业生涯的瓶颈。语言问题和文化问题是夹杂在一起的,本质上是一类问题,无法分开。程序员这样靠技术吃饭的职业,依然需要语言文化这样强力结合的软能力,而这一点,从我观察来看,中国人普遍有短板,基本上能够奋斗到很高职位的母文化为中国文化的程序员,凤毛麟角。
还有很多其他的方面,但主要是以上。知道这些很重要,是帮助冷静下来做trade off的。
至于好的一面,已经有太多的文字了,我只说一点:
体验。不止是生活上。能在世界软件大国中的top 2都当过工程师工作过,实在是一个非常难得的经历。
接着我才说肉身翻墙的方式。据我所知,有这样三种,难度依次增加:
1. 海外读书,现在留学不同于20年前,学校的选择余地也很大。我身边的大多数华人朋友就是在国内读的大学,然后跑出来读研究生。这种方式的好处在于来到美国在语言方面的压力会小一点,并且在学校里右足够的机会得到语言的强化和锻炼。毕业前可以实习,这也是很好的留下工作的机会,比社招面试成功率要高很多。学生签证到期可以申请18个月的opt,因此有若干次机会进行H1B的抽签,每年的抽签中,如果是美国国内的硕士毕业身份会有两次不同概率的机会,总体抽中的概率还是比较高的。
2. 在一些大型跨国企业工作,然后藉由L1签证transfer到国外去。这种方式的选择余地没有第一种大,但是适合那些已经走出学校的程序员,先要面试进入外企,然后根据这些外企的内部转岗政策,至少在国内干满一年后,获得海外职位(这很可能需要经过面试、推荐、商谈等不同的阶段)。这种方式的好处在于可以带家属,而且家属在冗长的流程申请到L2的EAD后可以工作。在L1期间如果公司支持,每年都可以申请H1B签证,但是如果没有美国本土的硕士经历,抽中的概率不大,这两年中每年抽中的概率大概不到三成。如果身份没有变化,L签证在5年后到期,必须离境。
3. 直接投海外简历。这种方式最难,并不只是美国直接招聘的公司凤毛麟角,不只是候选人考察bar高,还包括这种方式无法办理L签证,只能走H1B这一条路,这也就意味着能否抽中签证并非自己能够控制,概率见上。如果面试通过,但是H签证没抽到,有的公司会把你送到别的英语国家去等一年继续抽。对于那些拖家带口的程序员来说,这无疑增加了许多不确定性。
当然,无论是哪一种,都会面临大量的签证等等材料的准备,甚至年年如此。在获得绿卡之前,身份问题一直是一个比较烦人的问题,通常公司会联系律师代理帮助,但依然会花费很多的心思和时间,但如果对那些文件材料准备看了就头大,恨之入骨的程序员,这显然是件很不好的事情。
最后,回答两个常见的关于海外求职方面的问题。
英语有多重要?就面试而言,英语很重要,但是远没有专业能力重要。能够沟通交流这是必须,否则一定会影响能力的打分。特别是对于投海外简历有兴趣的程序员,电话面试中能够沟通交流是一个必须要做到的事情。在语言层面耽搁的时间越少,留给自己花在问题本身上的思考和沟通交流的时间就越多。现在英语可以不那么好,但是职业的发展来说,英语机会是一个必要条件。我见过不少中文说起来头头是道的程序员,讲英文却要命一样。