这是一篇迟来的分享文&失败文(文章有点长),我想分享一下工作几年观察到
情况,以及去年下半年找工作的心得。
因为大部份公司面试的过程是如何,已经有蛮多分享文了,所以这篇文章主要是
着重在准备时的心路历程,我发现没有良好的心理素质有时撑不下去。有些是主
观的想法,也欢迎大家一起讨论。
(如果有需要我也可以另写一篇分享我面了哪些公司)
每个人想去海外工作的理由都不同,我的理由如下:
1. 软件业在海外的发展比台湾好:
我待过几家台湾前50大公司,这些公司的本业可能是金融、半导体、制造业。
也就是他们的本业不是软件,所以IT人员在这些公司里基本上不会受重视,而这
些公司为求稳定,通常也不会用太先进的技术。所以对这些公司而言,能把功能
整合上线到达User要的功能为首要目标。在此情况下,通常组织里能见度最高的
是PM或是出去谈需求的人,因为主管会询问他们目前的情况或进度,而实际完成
系统功能的人,大部份的情况老板是不会看见也不会知道。
所以就会发生大家常讲的一件事:“会升官或是会在位子上的人都不懂技术”,
其实这个原因也是因为他们不是借由技术能力被升官的。而另一个问题,就是因
为他们没有经过技术人员的养成阶段,所以在和工程师上沟通会有隔阖,或者他们
会叫工程师作非工程师的事情并觉得是理所当然的。
例如在大公司常常有外包人员,这些外包人员是无法存取公司内部的某些系统,
为了他们可以工作,你要帮他们填申请单申请权限,而外包人员来来去去,就变
成你常常要填申请单新增或取消某个人的权限。或是写程式的工作都是外包人员
作,你只要验收他们写的对不对。因为对这些非技术的人当主管,他们的角度是
你不需要写程式,只要把系统弄上线就好。但是如果一个团队7、8个人的职称都
是工程师,但他们的工作都是在作非技术的事情,未来如果他们失业了,对他们
的竞争力是非常有杀伤力的。
我也有看过之前一路都当非技术职,最后当主管也当的不错的人,但这种人目前
我认为是少数。
2. 体验一下外国的生活:
如果你可以在别的国家,比较物价水准后还能拿到差不多的薪水,其实就证明你
是可以在不同环境活的下来的人。另一方面海外的工作经验,也可以对一个人思
维上带来另一种新的影响。
3. 薪水:
很多人说钱比较多,但对我而言,因为我在台湾不用租房,所以在国外工作扣税
和租房之后,其实可支配所得不一定比留在台湾多,所以钱对我来说不是完全很
大的因素。
总而言之,为什么想去海外,就是觉得台湾的软件工作环境太不好了,所以才想到
国外试试看。
虽然觉得环境不好,但出国工作这件事只有偶尔闪过我的脑海,我也没有认真思考
这件事。真正让我开始准备的触发点,是在2018年因缘际会去了美国一趟,在美国
的这几天,我的念头有所转变,觉得应该出国见见世面。
从美国回来大概1个月后,在社群认识了一个要准备Leetcode刷题的同伴,他说想
要准备出国工作。因为我生活没什么目标,所以就跟他一起准备,开始了刷题的
人生。
我们每个星期都会固定相互出题练习,那段时间很辛苦,因为自己的底子不好,
每天写一题easy和medium的题目,从不会到完全搞懂有时就会花上2个多小时。
下班回家后,吃完晚饭差不多8点开始写,顺利的话9点多可写完,卡很久的话就
差不多10点多。又要练习英文,我都会听English Pod或是看一些美剧来练习英文。
另外Leetcode有的题目你今天写完,可能一个月后再写就会忘掉。现在我写题已经快
很多了,但回想起来那时真的蛮辛苦。而工作用到这些东西的机会很少,所以你有时
会怀疑这个意义在哪里。不过我觉得有一个好处是,你会开始注意自己写code的方式
,以及怎样其实是会比较快比较好。
刷题约半年后,我打算开始找工作,朋友建议我先不要一开始就直接投FAANG这类的
公司,可以先投其他公司试试,我第一间投的是新加坡的公司,经过3轮面试后拿到
Offer,考试内容就是算法和系统设计,觉得很顺利,拿的薪水也是蛮不错的,在
新加坡是可以过的蛮舒服的,有种付出终于有收获的感觉。但我还想试试其他公司,
所以就拒绝了Offer,没想到接下来我就屡战屡败。
我大部份的情况都是面到最后一轮被拒,或是本来已经谈好但是后来被通知没缺额了。
面试到最后一关被拒,都是觉得我实务经验不足,比如说他提出一些在大流量情况下
的发生的问题,问我要如何解决。而以台湾大部份公司的商业模式或是市场所需的系
统,其系统流量跟外国比起来根本就是xx比鸡腿。尽管我已经工作一段时间,且也特
别读了蛮多系统设计的文章。但这一关的主管询问的方式就是没有实务经验会答不
出来,所以我几乎在这一关被问倒。
有没有经验这个感觉就是鸡生蛋蛋生鸡的问题,如果在目前的工作没有要用相关的需求,
那到底要怎么才会有经验?有人说你可以自己学,但就我而言,从网络和书本上的文章自
己学习,和你工作要用是两码子事,你工作上要使用时会发现各试各样的问题,这是你
照本宣科看书,其深刻度是不一样的。
之前有一次我跟主管说,我觉得这边比较学习不到新的东西,觉得自己的能力停滞。
他回我一句:“厉害的人到哪里都是厉害的人,你自己想想怎么自我学习”。
其实他讲的也不完全错,所以像我这种小时候接受温良恭憸让的教育的人,一定是
先反省自己。
但我后来发现,我的观念比较倾向:职涯的成功发展,选择非常重要。
做什么产品,跟什么人一起工作,比每天埋头工作更重要。一次好的选择能让你领
先同侪十年、二十年,一个差的决定,也能白白浪费一个顶尖人才数年的人生黄金
时期。
当然也有神人上班闲闲,下班发展自己的兴趣和自我进修就发大财,但大多数人都
不是神人。而每天工作其实占了生活的很大一部份,如果你工作上浪费了很多时间
学习不到你想要的东西,其实职涯的成长就会相对缓慢。
另外,我本来以为最后一关都是behavior的问题,但到目前为止至少最后一关的主
管都还是1个小时满满的问我技术问题 XD。不过能面到最后,至少代表我算法的
能力应该不会有太大问题。
有时候面试会面试到怀疑人生,一直被reject其实会蛮难过的,很容易产生否定自
我的心态,我推荐半路出家工程师的部落格,他低潮时候的情况,其实就和我之前
蛮像的。
其实面试到后来,我已经觉得蛮沮丧的,因为我觉得在目前的公司已经没有成长,
我也已经不想在现在的公司作任何的事,但一直没办法找到下一步。我也担心辞职
后找不到满意的工作,就这样觉得被困住,觉得压力很大。
面试后期,我已经觉得有点疲乏,此时我大概面了10间左右了吧,
每个工作3~5个关卡,我大部份都是最后一关被拒,所以虽然后期有接到
Google,Facebook,或是其他不错的公司的面试通知。
但我都先跟HR说想过一阵子再进行面试,因为我已经有此时除了要面试,还要应付
公司的工作,已经1个多月没有固定刷题,所以我知道我此时去面应该会死的蛮惨的。
不过这些公司的HR都蛮和善的,都回信说我可以随时连络他们。
你会看到蛮多在网络上分享面试上FAANG公司的文章,但就我身边的经验,像我们这
种土生土长,没有喝过洋墨水的台湾土狗,可以一步到位直上FAANG公司的情况比较
少,神人当然例外,像之前有一篇上Indeed的高手。
在我身边,至少我其他三、四个朋友在准备的目前都没上。其实我觉得他们能力
都不差,在算法的解题上都蛮快的,但感觉总是少临门一脚,另外就这几次的
经验,面试是有运气成份,你当天的状态,以及面试时遇到的问题,和面试官的
频率...等等都有关系。
还有就是亚洲区的FAANG的缺比美国少太多,如果这些朋友有美国身份,相信机会
会大增。
另外我分享一下,投国外公司第一个都会有pre-test,pre-test 有分两种
第一种是有的公司会出一个作业叫你写,像这种我会视情况要不要作。
曾经有公司叫我写一个TCP/IP socket client server的多执行绪通讯程式,
且限在几个小时内作完,但我的工作内容主要是based on restful API,有需要
Multi-thread处理的情况,但我平常没有在写socket相关的程式,我也不想从网
路上copy socket的程式码,所以像这种我就会放弃。
我还遇过有对方要求我去爬比特币的价格资料,并用Machine Learning
training出一个model,并建立一个API可以呼叫这个model取回预测的价格,上述
过程都要可以自动化,一个星期内要上传到github。
这样功能的专案我有实作经验,但因为我目前还是需要上班,要一边兼顾上班的
情况下,我实在没办法有余力可以作类似的作业。以前我是一个要求自己全力以赴力
求完美的人,现在我会觉得有些东西放掉生活会过的比较快乐。
另一种就是pre-test就是线上测验,基本上就是像Leetcode的形式,但我比较喜欢有
面试官一起写code的方式,因为你可以沟通你的想法。这种方式也比较类似工作时的
模式。
如果只是单纯丢给你一份线上试题,有时其你写不出来,不一定代表你不好,因为
有的题目是需要观察他给一些规则,这些规则是需要有"题感"才观察的出来,只要你
了解什么是BFS、DFS、DP、递回以及资料结构的用法,其实只要跟你作一些适当
的讨论和提示,大部份的情况是作的出来的。
只是大部份的pre-test 都是给你一份线上测验。
接着分享一下工作几年后听过老板讲的干话:
1.人很难找:
我待过的几间前50大企业,老板都跟我说人很难找,我一直很纳闷,为什么那么大
的公司会不好找人。后来发现,他们想找很厉害的人来,但又要要叫他们作很多非
工程师的事,薪水虽然不会太差,但也不是非常高。所以吸引不到太多好手。而和
几个年轻的朋友聊天,他们都会觉得这类型的公司风气保守死板,所以也不会想投
履历。
另外还有一个矛盾,就是这些主管想要能力强的人,但能力强的人通常也会比较有
自我的想法,所以会不太好管理。但是学经历没那么亮眼的人他们又看不上眼,所
以你会发现,很多录取进来都是学历不错,但个性上比较温顺听话的,或是很会表
达(社交),跟老板的频率很合,所以也很适合作前述在大公司里需要的沟通协调的
工作,表面上老板是说想找culture fit的人,实际上是老板的眼界降低了团队成
长的动力。
2.老板说你还年经:
老板说你还年经,薪水之后都还有成长的空间,想想自己未来的职涯发展。
薪水在现实面绝对是重要的东西,但在台湾的环境的确要和你的理想作一个平衡不容
易,但叫你不要太在意薪水的老板,他的团队应该能力也是一般
3.你不用自己写,你去问他们就好 or 你觉得你一直写程式未来的职涯是什么:
我对性别没有歧视,但这两句话都是从几乎没写过程式的主女管讲出来的。
他们觉得,你了解系统和程式的方式就是去询问实作人员,以及和他们讨论就可以
学习,不需要自己动手作,其实他们会这样想也很正常,因为他们并不是靠技术升
上管理职的,所以他们会觉得你程式写的很好有什么用。
但是就我的经验,其实动手作会才会发现一些实际上的问题。
而另一个女主管问我一直写程式的未来有什么发展,我觉得这个是人生观的问题了,
其实有的人就是喜欢作技术的东西,像我就是比较喜欢作技术的东西,但有人说之后
就写不过年轻人了。其实这个我没有定论,我是觉得如果你喜欢这个东西,就会想要
去钻研,我自己也有想过担任管理职,但我对我自己的期许是希望透过技术的角度,
把我过去的经验分享给年轻的工程师,让他在学习上可以不用走太多冤枉路。
我现在自己觉得对技术还是有兴趣,还希望多学一些技术和累积经验,若需要当管理
职我也是朝向技术分享的角度为前提, 而不是行政的管理职 。
最后给新鲜人的建议
1.了解自己:
人生每个阶段都要一直思考,自己擅长什么,不擅长什么,自己喜欢什么,不喜欢
什么,而这个答案在你人生的不同阶段,答案会不同。我其实一直对未来很迷惘,因
为从小父母都叫我们只要读书就好,所以我从没想过自己喜欢什么。而我们的教育,
你想要考上好的学校,基本上每一科都要兼顾,不能有低分,不管那科你喜不喜欢。
但是出社会后,你会发现每个人的资源(时间)有限,你不可能什么都会。什么是你喜
欢的? 什么是你擅长的? 应该让这个部份有一定的专业度,让其他人一想到这块领域
就想到你,不擅长的事可以学习至少不要太差,但若真的不擅长就交给那些擅长的人
去作吧,你会有自己的出路。
2.有良好的储蓄习惯:
有人你说你只领22k要怎么存钱,我不是职涯专家也不是理财专家,比较没办法回答
这个问题,但我提这点主要是想表达,有储蓄会让你更有勇气在人生的某些阶段
作一些改变。
3.现在有许多出国工作的机会,如果有机会,就出去看看吧! 因为在国外,你会有不
同的经历,期望未来能有越来越多的人把新的思想带回来,改变台湾的软件环境。