程序员

注册

 

发新话题 回复该主题

英国程序员找工作经验分享 [复制链接]

1#

之前有段时间博客更新频率很低,因为我去找工作啦!现在总算是大功告成,就写篇总结经验,英国的程序员小伙伴们或可用于参考。

首先本人背景:在英国八年工作经验,目前在一家小公司当TechLead/SeniorSoftwareEngineer,主要的技术背景是Python和AWS。这次找工作主要还是对准Senior的岗位,而我这样的背景在伦敦薪资水平较好的公司入职底薪基本都是K-K,再高就很难了,而福利差别主要在于年终奖和股票等。

这个数字和美国不能比、包括国内很多大厂应该也能给更高,不过一分钱一分货嘛——英国多数公司的程序员都是5*8,没有加班需求,而wlb(工作强度)比较好的公司一天实际工作时间可能也就一半吧。

找工作的途径无非是三个:自己申请,内推和猎头。首先一个Linkedin的个人页面还是要有的,设置好了之后不愁没有接踵而至的猎头,如果你懒得自己动手、或者确实无从下手,找猎头帮忙也未尝不可。

但是我这次找工作还是比较有目的性的,而且行业内的朋友也很多,所以完全没有用到猎头。其实大厂就那么几个、自己对于投行、基金或者Fintech感兴趣再筛选一下,就能找出来不少公司了。有内推当然最好,没有的话就简历下点功夫也差别不大。

神器Glassdoor大家肯定都知道了,主要用途之一在于找面经,看看前人分享的面试经验和题目等;之二在于也可以看到大概的薪资标准、以及更重要的“员工打分”。我选公司的时候第一件事就是看看Work-LifeBalance一栏的分数是多少,数字还是比较可靠的。比如谷歌和推特都是4.2,脸书只有3.6,抖音是3.1,不过最逆天的还是Citadel的2.5

对于公司的工资标准也要了解清楚,省的做无用功;有朋友在内部最好,否则最开始的HR面就是提问的好机会。JPMorgan完全没有HR打电话,直接就给我安排了技术面,我只好依赖于Glassdoor的大概薪资标准,直接撤回申请了。

最后也是我本次找工作吸取到的教训:一定要安排好面试的顺序和时间。原因之一是经验积累很重要,除非是纯算法面试,否则其它类型的面试都是越往后越纯熟,成功几率也越大。原因之二是offer时效的问题,比如你的次优选已经发了offer并要求马上答复,但最优选还没开始面试,时间安排上就会很紧张。

下面就给大家讲讲各种面试的大概准备方法。

别名Leetcode,大家都懂。尽管包括我在内的很多人都非常反感此类面试,但大环境如此,如果你申请的公司有此类面试,也只有刷题一途了。直接Leetcode买个会员,找到对应公司的tag,按频率从高往低开始吧!

这次申请的公司里只有两个是纯算法面试,我都在第一轮惨死。但实际上谷歌和推特的面试题都远比我想象中要好,完全没有稀奇古怪的算法题,后面会细说。

和“算法”类似却不同,编程题只考察你的思维能力、工作经验和代码质量,也是现在很多公司采用的一种面试方式。有些编程面试也是在Hackerrank之类的平台上,但一般没有数学、算法之类弯弯绕绕的地方;另一种LiveProgramming的形式更加普遍,现场告诉你问题,然后在自选的IDE上编写程序。

尽管说编程能力是在工作中日积月累的,但准备也必不可少,个人还是建议在Leetcode上找些中等和简单难度的题目刷刷找手感。一方面是了解常见的解题思路,另一方面是熟悉下平时工作中可能不太遇到、但面试中常见的数据结构等。以Python为例,defaultdict和queue都是一定要掌握的。

还有一些要点:

事先调试好IDE

注意函数和变量的命名

模块化

UnitTest

Bug调试(print等)

注释

如果你平时有良好的编程习惯,这些都不是问题。

比较容易被忽略的一项能力,事实上考察这点的公司还挺多的。而且相关知识很多你在实际工作中可能很少接触,所以面试之前找本书温习一下非常有必要。仍然以Python为例,经常考到的点包括:

FirstClassObject

Mutablev.s.Immutable

IteratorGenerator

KeywordPositionalArguments

OperatorOverloading

(Multiple)Inheritance

GarbageCollection

AsynchronousProcessing

除非你是应届生,不然大多数公司都会有系统设计这一轮。一些需要准备的系统包括:

GoogleDoc/Git

Twitter/Instagram

Whatsapp

Uber

Yelp/TripAdvisor

WebCrawler

RateLimiter

我在油管上看了很多TechDummiesNarendraL这个频道的视频,这个哥们讲得非常好,推荐。

我是很反感上来让你设计个GoogleDoc或者Twitter这种问题的,我又不是应聘你们公司CTO?但话虽如此还是要多看看相关视频或者文章,以掌握其中的思路和知识为主。我这次的面试过程中也没有碰到这些老掉牙的大问题,都是些比较专门的应用,确实是做项目可能遇到的。

给两点相关建议吧。回答此类问题第一要点就是gatherrequirements,先罗列出FunctionalRequirements和Non-FunctionalRequirements帮助自己理清思路同时面试官也看得赏心悦目。

另一点就是一定要搞明白对方的最终目的是什么:如果只是要求系统框架那就没有后顾之忧,但很多时候对方会希望你详细解释Deployment/Testing/CI+CD/Monitoring的各个步骤,此时就一定要面面俱到不能遗漏。

Culture,或者“企业文化”,也是现在所有公司面试的必答题。一般来说考察的是两个方面:首先是你的沟通能力、应变能力和学习能力等等,说得夸张点只要你情商在线就不应该过不了;其次是领导能力和项目管理能力等,当然如果你本身工作经验不多就不需要太在意这一块了。

好消息是所有公司的Culture问题都大差不离,我只在第一次面试之前写了一天,之后基本就不需要再做准备,甚至到最后对方话音刚落我就已经对答如流了。一些必备的题目包括:

Constructivefeedbackyou’vereceived/given

Howyou’vementoredajuniorandhelpedthemdevelop

Howaprojectgotdelayedandyouputitbackontrack

Howyou’veresolveddisagreementwithotherpeople

Howyou’veworkedwithteammates/otherteamstodeliver

Howyou’vequantifiedtheout

分享 转发
TOP
发新话题 回复该主题