点击上面蓝字关注我们
封面
据统计,4.9%的华人在澳大利亚都会选择IT/CS作为移民的跳板和未来的就业方向。但是在人生地不熟的澳大利亚,到底怎么样才能找到一份IT工作呢?我们整理了这份入门级的前端工程师生成指南,从就业市场开始分析,到最后的技术测试,希望你看完了成为半年就找到110k澳币的前端程序员。
文 | 灯泡点灯 大熊
编辑 | 风筝
时长 | 搜一个seek的时间
在讲前端程序员的技术之前,我们先来建立一个很多同学对于PR的正确观念,那就是:
没有PR ≠ 没有工作
其实很多国内的小伙伴也都会有一个误区,在澳洲找到一份工作需要一个PR,此话并没有错,但是找工作与PR之前也并不能完全划等号。有这样一层关系,能帮助你理解工作与PR,经验,GPA的关系:
找工作的黄金三角:PR, EXP, GPA
PR决定你的机会多少
GPA决定大公司要不要你
EXP决定小公司要不要你
很多已经年薪10w+的各个程序员曾经也认为,PR就是找工作的一切基础。每次收到拒信后,就会拿出“没有PR”作为借口来解释为什么没有拿到offer,来逃避。当然后来工作久了才知道,以前投了很多job description上面明确写着需要PR的工作才会导致这样的结果。毕竟HR默认你已经有了PR才能做。面对PR,小伙伴们也当做一座挡在求职面前的大山一样。
那没有PR就真的没有工作吗?并不。但是要怎么找这些工作呢?这往往意味着准备工作时间很长,从选择IT的方向,到阅读job description,写简历,到最后的搭建自己的GitHub,LinkedIn,是一条完成而清晰的路。
(公众号回复“前端”查看大图)
澳洲程序员分类
很多想要从事IT的澳洲小伙伴在选择未来方向的时候充满了困惑:我是该选择我喜欢的?还是需求大的?是选择薪水高的,还是门槛低的?是选择有难度的,还是应用广的?这一通选择,就像思考我应该上清华还是上北大一样艰难。
选方向,找工作,要移民加分还要赚钱付房租房钱,当然是找需求最大的最容易入门的。澳洲的程序员就是这样的行业,钱多,事少,福利好。不过很多小伙伴还不明白到底程序员又哪些软件方向可以选择,我们用这张树状图给大家梳理一下。
(公众号回复“方向”得清晰大图)
IT support:可能是很多人对从事IT行业的人的看法,修电脑的。IT support基本就是办公室里的IT后勤人员,负责帮助公司里非IT人员配置电脑,采购电子产品。主要是有一些IT 基础,就是懂IT相关的terminology,可以和公司里的开发者无障碍交流。IT support一般是一个过度职业,公司如果有其他职位空缺,你刚好也会这方面的技术,可以很快补位。
网页开发和软件开发:小编想一起说,软件开发可以理解为网页开发的进阶版,不在局限于写网页应用,至少对别的强类型的语言精通,比如java,c#,同时要明白很多关于数据库设计,程序架构之类的知识。网页开发一般分为前端,后端或者全栈。
前端主要负责网页的页面编写,同时因为页面是一个网站和用户交互的重要渠道,所以大部分前端(如果是纯前端的话)还会兼职网页设计和UX,用户体验,的方面。在一些小公司里,前端还会兼任BA的活,就是和客户确认需求。后端基本上就是服务器的编写,保证前端页面能够调取到需要的数据,展现在页面上。因为要跟数据打交道,所以还需要一定的数据库知识,然后服务器嘛,也需要一些网络啊,secruity之类的相关知识。全栈就是从服务器编写,数据库设计,服务器架设,前端页面,一条龙服务。实际工作中,除非是几个人的小公司,一般都会有更细致的分工,比如专门的ux和部署人员(devops)。
前端主要需要精通html,css,js这三要素,然后熟悉一种流行的工具,react,vue,angular,三个非常的相似,学会一个可以很快的上手另一个。 以前是需要会用jquery,但有了框架以后,jquery用的也比较少了。后端的话,需要精通一种服务器语言和框架,比如java和spring 或者spring boot,php的lavaral,node和express,ruby,ruby on rail等等。还有最常用的两种数据库,relational database 比如mysql,non-relational 比如mongodb。
移动端开发:就是我们用的那些手机app,手机app主要分为两种类型,一种是native,也就是原生的app,这种app是用官方支持的语言写的,比如apple是swift,andriod是kotlin。这种app的好处是能够跟手机的硬件很好的结合,或是调用一些手机自带的功能。另一类就是用写网页版app的技术,发布到手机端,运用react-native或者ionic。这种优势在于开发成本低,会网页开发的程序员也能开发,缺点是用户体验相较于原生的要差一些。
游戏开发:涉及面其实很广,比如音乐,心理学,历史,宗教,等等。但是对于程序员来说,最重要的就是精通一款游戏引擎的使用,比如unity,unreal。还有数学和逻辑能力要好,因为涉及到一些算法优化问题。举个最简单的例子,物体碰撞检测,m个会动的物体和n个不会动得物体,最暴力的方法是m(m+n)的复杂度,但是有很多不动的物体完全都不在会动的物体附近,所以暴力的方法做了很多无用功,那么为了游戏体验性考虑,我们就需要优化代码。
DevOps: 最近很火的一个职位,前身是system admin, 一般是懂部署和网络的开发人员,或者会部署,但对开发也懂的人。我觉得相当于开发和运营的催化剂角色,比如帮助产品更快的迭代, 提高开发效率,运用pipeline,快速部署上线,有问题可以迅速启用之前无错误的版本等等。技能的话,像是网络安全相关的肯定是必须的,其他ci.cd的部分,像是jenkins,docker,kubernete这些也要会。
看完了程序员各个方面之间的介绍,接下来就说一下各个需求。澳洲最大的求职网站seek.com.au上关于空缺职位的需求能非常直观的反应当下的需求:
在seek.com上,需求最多的职业是服务行业,大概有1w9k个岗位,第二就是IT,第三是医疗,1w5,会计是9000。
在it的1w7里面,最大头就是developer,就是各种开发人员,基本占据一大半,加上一些比较小众的。BA 一般是懂一些理论,一般是帮助用户把需求转换成业务逻辑 和PM的话就需要经验,或者比较讨厌的事有管理经验但是没有技术背景的了。总的来说IT的发展前景是非常好的,而且职业需求也很高。
项目经验
Level One: 简单练习
自习,学校的项目,online的course
没有商业背景的简单项目,功能重复简单,数据可能出现无意义重复,对于雇主来说这些不算项目经验,功能没有经过仔细的考察和校对,而且对产品的value考虑不周到。UI方面来说也完全没有考虑,商业角度的内容也没有提炼。
Level Two: 原型机
学生可能会自己接项目做,一整套完整的商业逻辑,项目本身是基于需求存在的。如果要创业和融资,可以从prototype开始进行练手,把自己当做利益关系方,才能从更全面的地方开始看东西。develoment 模式和production模式(部署,开发,优化)
Level Three: 商业项目
项目有business value,在市场上有其价值,如果项目本身能超过10k那么作为freelance就已经能自力更生了,如果低于这个价格,那么不完全算是跨入commercial的世界。
Level Four:Cloud 及其他复杂系统
创业,商业项目,从product owner进行一个全方位的靠近,能完成以上几点的project就可以算完备的复杂的商业系统了。
前端code test
Code test在澳洲大约占据了45%的test种类,需要求职者花费2-3天时间来进行一个准备。上图是做一个hacker news的search result的页面,看自己如何进行安排和编码完成。junior 和senior 在做这些文件的时候,能通过写了多少function和class 的分区来辨认级别。
Code test 按照完成程度来看,可以分为以下几个级别。
Level zero:未完成所有功能,code test不合格。
Level One:只完成了所有功能,未进行加工。只有部分公司需要时放一个entry level的职位,而且澳洲很少开放entry level,因为他第一年几乎处于给你付钱还要培养你。
Level two:完成了功能,考虑了structure,完成了测试,考虑了MVC,代码质量也很高,达到了junior和mid-level,有时候达到senior。
Level three:在以上的内容上还考虑了更多,比如最优解,安全性。
Level four:在一个代码里用巧妙的代码完成了以上所有的内容,并且能够进行更多优化。
这是一个关于毕业生的代码展示,以下的代码已经好于50%的毕业生了,但在澳洲找工作依然不足以进入commercial的阶段,下面以雇主和面试官的角度来看这两段代码。
前端看代码首先会先打开package.json, 看你使用的是哪个阶段的react和build 工具,也会看是否抄袭了别人的代码。如果是抄袭,是不会进行下一步的。
这段代码显示使用的webpack版本是2.2.1,但是现在webpack的版本已经到了4,这个项目不是新的项目,所以会让面试猜测是否抄袭使用了别人的代码。其他的工具比如karma,eslint都能反映求职者到底打算实现什么,会让面试官带着疑问继续往下看。
File Structure:层级——如何部署
第二张图片会直接让人被pass,不会命名,层级混乱,是没有商业经验的学生手笔。
Index文件:
做search的时候每敲一次字母就会请求一次api,尤其是第三方api,很可能会增加运营成本。代码显示出求职者对react的使用并不熟悉,一是没有商业项目经验,一是这个写法是网上教导的写法,但是其实不是非常优质的一个写法。
Lint:
代码不够规范,虽然写了eslint但是没有使用到,而且也使用了tslint,因此他对于这些的使用其实能暴露他的不熟练。
优秀版本
做react的app基本默认要写redux,一种常见的思维模式。在react和redux之间还有很长的路,教起来花时间花钱。webpack到了4,其他的工具也都是合格,没有减分项目。
文件结构层级明显,逻辑清楚。
代码分层和逻辑归纳,对于阅读很有帮助,comments对雇主来说也达到了合格要求。
详细的interface,虽然不是特别规范,但是在限时内做到这个范围已经算达到了合格标准。虽然在senior眼里这个代码还有很多地方可以改进,但是就当时这位同学申请的entry level来说这个代码已经合格,code test通过了。
新手怎么找工作
自己的方向选好了,技能也准备充足,那么如何求职呢,尤其是对于没有人脉的新手来说,第一步尤其关键。
先做准备。
很多同学觉得找工作第一步是写简历,其实不对的:
第一步应该是看job description
简历就是乙方的作品,而job description 则是甲方的要求。不符合甲方要求的乙方,不是合格的乙方。不能根据心仪职位的job description来tailor自己的求职者,不是合格的求职者。
首先需要多看看招聘广告上的技术需求, 这些需求一般分key requirement和desired requirement。
Key就是你一定要会的,那么你可以根据这个来提升你的技术。
既然已经看到JD了,那么求职下一步肯定是海投了。但是海投也是成功率最低的。
下一步是写简历,不要采用花哨的模板和高大上的排版,简洁明了能突出重点和关键字是最好的。真正的IT专业简历应该是这样:
无须说明自己的那些技能什么程度,我只要看你接触过哪些技术就知道,你的Level在哪一层了。在 Skills的 Section那里,只需要罗列出你会的技术就好,越往上的技术越自信。
当然也有许多朋友会写上,Skills:Java, C#, php 。 但这个远远不够,Skills部分要突出自己的技术栈能力全不全面,技能点多不多,比如可以这样写:
Skills:
Java, J2EE, J2SE, J2ME , Spring, Spring Boot, Maven, Gradle, JVM, JSP, Servlets, SOAP/REST, XML/JSON, Swing
而且澳洲简历和国内的简历有很多不同地方,一定要注意遵守这边的rules。
这才是像样的描述自己的技能,也恭喜你正式成为了码农。
但澳洲作为一个人口基数很小的国家,大部分岗位在没有放出来前已经招到人了,放出来的一大部分被猎头抓在手里,所以你看到的很多广告其实是猎头发的,真正公司自己发广告的,很少。那么你可能要问那些没放出来的职位怎么来的,一部分是内推,比如我公司要招人,而你是我的好朋友,你在找工作,我肯定会推荐你。你比其他人先一步得到消息,甚至提前面试就拿offer了还有一种,就是线下meetup。meetup里面有很多公司的高层或者team lead,还有就是猎头,他们有的是带着招聘的目的去的,有的可能就是去聊天,有时候聊得开心了,就会给你offer。
至于为什么说内推大于海投?因为在所有的招聘里都有一个考虑,叫【亲大于疏】。招人,公司最害怕的是招到的人的不确定性,因此HR和猎头自己熟悉的人,背景,脾性,能力都有一定保证度的人,公司是最愿意招的,也是保证了在交换信息的时候能最大化的降低风险。
最后一种就是猎头找上来,不过这个一般需要你有工作经验了以后,你把你的经验和技术能力放在你的linkedin上面,多加些好友,增加猎头发现你的几率,他们会经常主动的问你,这有个公司招人,看你的技术很符合,要不要试试之类的。猎头是怎么找到你的呢?通过LinkedIn。我强烈建议大家通过Linkedin找工作,完善自己的Profile,扩大你的connection,构建自己的professional network,Linkedin现在自己也有了Jobs page,而且Linkedin里的工作机会质量也高于Seek等。如何扩大啊自己的connection,如何完善自己的profile,欢迎参考这里:
Linkedin会分几个Connection
1) 1st connection: 相当于你facebook,现实生活的好友,你可以不受限制地给他们发送邮件,查看他们的profile;
2) 2nd connection:就是你好友的好友。。。免费账户可以看到profile,不可以发邮件;
3) 3rd connection:好友的好友的好友。。。免费账户只能看到名字和title,不可以发邮件;
4) 除了以上三种,剩下的人如果你不做其他的networking,他们就是parallel universe。
Linkedin 里也有一些限制,比如
如果你的invitation收到累计5个rej,你的networking会收到限制。具体来说就是下次你再加好友的时候必须填写对方邮箱,这是Linkedin跟一般social network网站不一样的地方,这一点直接导致我们不能随便加不认识的人,当然我们不能因为这样就畏手畏脚,networking还是要做,对于特定的几类人,只要注意方法,就算不认识还是可以放心加
可能是出于防止spam的目的,一个账号只能发送3000个邀请,这个对找工作来说绝对是够用了
一个账号能够拥有的1st connection最多30000个,由于invitation的限制,那剩下的30000-3000=27000个connection只能靠别人加你
你在Linkedin的人才搜索结果的排名和你的简历新鲜程度有很大关系。因此如果你曾经被很多HR联系过都把他们回绝了,现在又开始想跳槽了,那么你只需要简单修改一下你的简历的一些部分,比如工作经验或者summary。修改完后,短期之内你的名字就会出现在搜索结果靠前的部分。注意,排名靠前只是相对的。如果简历十分简单或者不对应市场需求,那么也未必会受到关注。
重点来了
那重点来了,你需要增加你的1st Connection,以扩大自己的2nd connection。
如何增加自己的network
在Linkedin里面有两类人随便加,一类人叫LION,这些人都是Open Networkers,为了帮助你增加你2nd Connection而存在。 基本就是一群因为工作需要,或者个人爱好无节操不加选择地接受好友申请的人。一般这些人都会在自己的summary里写all invitation accepted,所以你可以放心大胆地加。你可以在自己的linked上搜索LION,邀请加他们,扩大你的第一步在linked里的可见度。
第二类是recruiter,也就是猎头。我也常常跟朋友说,搜索Recruitor,挨个加。不过,加猎头比LION麻烦一点,不过你前面的LION和朋友都加过了之后,有了基础的connection,猎头就容易许多。猎头是靠network吃饭的,他们很理解network的价值,加你对他们没有坏处,说不定以后还能从你身上赚一笔。在加之前,一定要完善你的Profile再邀请。猎头的2nd connection一般专业性很强,这点比到处乱加人的LION强得多。加LION主要是为了数量,加猎头更看重质量。
Endorsements
也就是谁为你的技能背书,这一区域方便猎头或者HR能在Linkedin里搜到你,如果有海量的人Endorse你,那雇主会不会眼前一亮呢。
一般情况下,你Endorse了你的connection的人,他们会出于礼貌同样Endorse你,而且你的connection越多,被Endorse的可能性也越高。
项目硬实力已经准备好了,也写好简历,建立好了LinkedIn和GitHub,下一步就是开始行动了,希望大家看完这篇文章之后都能有所收获,开启你的前端第一步。
更多关于code test和澳洲市场分析的内容,请复制链接收听:
https://m.qlchat.com/topic/details?topicId=2000002847383946
原文链接板块: https://jiangren.com.au/blog
澳洲IT求职技术群
我们是澳洲专业的IT技术交流求职群体,目前已经有七千多个小伙伴,而且我们这个群体还在不断壮大中,交流技术、工作内推,欢迎IT行业同仁加入,需要合作的请在后台留言。目前大群人数已过百,想要入群的朋友:
请扫二维码入群
我们是谁
布里斯班 · 悉尼 · 墨尔本· 西雅图
打造澳洲IT精英圈 · 做信息时代的匠人
澳洲IT匠人圈 - 致力于做更好的T专业人士组织。我们的初衷就是连接海内外的IT同仁,团结互助、工作内推、职场升迁,让在土澳的我们也能感受到高科技的光芒。IT匠人圈有一系列的品牌活动:Offer收割机、大咖面对面、匠人Workshop、匠人线上公开课、品牌创业之夜,活动开展以来反响强烈。
让我们共同努力,一起实现梦想