1. 1. 前言
  2. 2. 为了实现这个目标,我应该先实现什么子任务
  3. 3. 如何执行和推广
  4. 4. D3 仓库组织
  5. 5. 时间组织和安排
  6. 6. 当有时间却不知道自己该做什么的时候,这么想
  7. 7. BC 的疑惑
  8. 8. 看了 wahyd4 的 github 之后的收获
    1. 8.1. 租房
    2. 8.2. 收入
    3. 8.3. 疑问
  9. 9. 安排

前言

最近这段时间,我们两个工作都很忙,陪孩子都很少,以至于,每天早上孩子都会哭爹喊娘的不想让我们去上班。所以去澳洲工作的这个念头在我脑海里又开始冒出来了。我这段时间工作不是很忙的情况下,发现我特别不知道目标,不知道自己该改什么。即使是空出时间给我,我也很茫然。然后今天就借机会又查了一下澳洲工作的事情,在v2ex上面看到一篇文章,对应的这篇文章有个 github 的仓库。我虽然还没有仔细看,但是觉得这个难度还是挺大的。我觉得我需要持续的去关注这个事情,并且持续的去做这件事情,而且要有一个持续的记录。所以就写在这里。

为了实现这个目标,我应该先实现什么子任务

我发现去澳洲工作不是那么简单的一件事情。首先博主是 thoughtwork 的员工,应该是科班出身,且能力很好。而且 github 的标注是 full stack。所以我觉得我需要一个 cs 的 degree,不一定必须是大学的,但是我觉得我需要这么一个敲门砖的东西。比如是 udacity 的证书之类的,虽然我之前有 udemy 上的 certificate ,但是感觉还是不够。所以我需要有这么一个 degree,哪怕是 online courses 的电子证书。
其次博主说自己的 github 维护的很好,我现在的 github 就很差,很久没有更新,最主要的是很多 github 的仓库都是初级的内容,这些都是我刚转行的时候写的内容,现在看的话基本就没有什么太多的亮点。所有我急需有一些非常优秀的 github 的仓库,持续地产出一些优质的内容。
最后就是博主提到了都有面试和笔试,而且笔试的难度看起来还不小,虽然没说必须要数据结构和算法,主要是有解决问题的能力,但是提到了很多次 tdd 的事情,显然这个对于我来说都是高深的,那么我的基础还是太差。所以我还是打算把 数据结构和算法 的内容做起来。然后就是网络相关的内容做起来。还有就是一些自己的主题,比如 d3,甚至是可视化这个方向。或者是某个库或者框架的源码,比如 underscore 或者 react 之类的。然后就是 leetcode 的题持续的刷起来,这些记录在 github 又正好是一个 github 的维护。所以总结一下,我需要做:

  1. github 的维护
  2. 拿到一个在线 cs 课程的 degree
  3. 提高自己数据结构和算法的能力,可以通过刷 leetcode 题的方法
  4. 持续的维护一个自己的主流方向,比如 D3 或者可视化这个方向。
  5. 阅读源码

以上前三者是重点,后面是加分项。自己要开始制定计划并且坚持。

今天早上又想了一下,如果真的目的性很强的话其实应该结果导向来看。就是对于面试官而言,他希望看到一个怎样的申请者的 github,我就应该按照这个目的去做。我觉得面试官看到的 github 最好是一个让他能觉得惊讶和有料的 github。反推的话,我觉得应该做到以下几点。

  1. 绿色的小方框状态。github 的 contribution 图对于大部分面试官而言,是第一印象,也是最直观的印象,如果这个 contribution 的可视化图效果不好,我觉得会跑掉一半以上的面试官。反之,如果这个图的效果很好,比如每天都有绿色的小方框,那么面试官会有很大的概率,甚至说是 100% 的概率会接着往下看,这就是吸引面试官对你产生兴趣和好感的第一步。所以必须要保证自己的这个 contribution 图的效果。
  2. 做到了第一步,然后还要有第二步,就是你的 contribution 的内容最好要是高质量的,不能是为了效果而效果,contribution 完全是一个摆设,会让面试官产生反感。那么这个对于 github 仓库本身的主题还有内容就有很高的要求。关于什么样的内容和主题,我会在后面再详细展开阐述。
  3. 和上面第一步,第二步并列很重要的还有就是面试官一进来能看到一到两个高质量的仓库,最好是专题性质的仓库,并且 star
    数很高。最好是几百以上。这个也是吸引面试官很重要的一点。所以我需要针对性的建立一到两个高质量的专题仓库,并且进行针对性的推广。我觉得说实话,维护两个高质量的仓库是非常难的。那我就先把目标定为一个,既然是只有一个,那么我就要好好选择一下主题,这个主题必须是我喜欢的,必须是有一定受众人群的,必须是比较热门的,至少不是冷门。我喜欢也很重要,否则真的没有动力维护和坚持下去。我需要对这个问题进行调研和思考。

在上面三点的基础之上,最好能有广泛的涉猎,并且 star 数都还不错。不说上百上千,至少是几十个的状态。这种就属于顺便推广的。所以关于这个广泛涉猎的内容,其实包含以下几种可能性。

  1. 网络相关的,主要是针对协议相关的。
  2. 源码相关的,比如 react 和 underscore 这种
  3. 数据结构和算法相关的,比如 leetcode 刷题仓库或者某个数据结构和算法在线课程的相关学习总结和过程等。
  4. 前端专门方向的,比如 D3 或者可视化相关的。

除了 github 之外,我还要开始准备自己的英文简历,还有在线课程的 degree,还有其他相关内容,比如方面视频面试的 skype 和其他常用软件,以及雅思成绩或者其他英文能力相关资料。
最后还有一个方向,就是最好能有一个自己域名的个人网站,可以考虑购买一个服务器,然后搭建自己的个人网站。应该不是很复杂。
还有一些方向没有在这两天思考的过程中感觉也可以做,比如 sicp 和 eloquent javascript 的内容,比如 sicp 的阅读笔记和习题或者 eloquent javascript 的阅读笔记和习题。

以上这些如果都能做到了,我觉得不论对于我本身的能力也好,还是申请工作的可能性也好都有很大的帮助。而且退一万步说,就算这个过程申请国外的工作依然受挫,但是对于国内申请大公司而言,还是有非常大的优势。

加油!!!

我这两天一直在和 BC 说我希望自己还有一次翻身的机会,我已经从 landscape 折腾到了 FE 的路上,这次折腾让我翻了一次身,那么我为什么不去再一次拥抱变化,折腾一次,让自己从 FE 折腾到自己希望的国外的 FE ,甚至是国外的 CS 呢?不折腾怎么可能会翻身。你一直在说自己想要再一次翻身,那么你就要自己努力,否则怎么会有可能。

关于 degree,可以看下 coursera 和 udacity,还有 udemy,在 google 上搜 online cs degree free / online cs degree 有很多的结果,看起来好像也都可以申请。这个专题可以单独整理一下。

如何执行和推广

既然打算功利的去做这件事情,那么就要有一个很详尽的计划、规划。建好仓库以后在国内社区推广一波,包括 juejin, v2ex, segmentDefault, 还有一些微信群可以发链接。这个可以为我积累起来一定的 star 数,虽然应该不会很多,但是绝对看起来还是比较有吸引力的。推广完这波内容之后,打算开始维护一个比较练内功的 github 仓库,这个仓库主要是用来让 github 的 contributes 图看起来很均匀。同时也能积累一定的内容和 star 数。这样 github
在深度和广度上就都会有一定的效果了。同时也有真才实学。
还有一点想说的,就是如果仓库都是中文相关的内容,其实对于国外面试官来说会觉得有点不知所措。那么最好还是有些英文的内容,其实这个是最好的,但是如果 tutor 或者 blog 用英文去写,会耗费大量的时间和精力。那么其实还有一点就是,面试官会看你的代码,如果通过看代码就可以看到你这个人的水平,那么其实 code talks,所以我必须要有一个真实的练内容的仓库,来真实的表达自己的实力。这样有 star 也有
code,说服力还是很强的。
关于凑 star 的仓库,我打算用 D3,一方面是本身 D3 已经有一些积累了,另一方面是这个目前来说发教程的人还不多。那么如何组织 D3 的仓库呢?

D3 仓库组织

我看了下,发现仓库里文件夹里如果有 readme.md 的话,默认打开这个仓库的时候就会显示 readme.md 的内容。所以打算按照 d3 的例子来组织仓库,然后每个例子一个文件夹,每个文件夹进去之后是一个 readme.md,就是介绍这个例子的,有图有文字,有概念,有实例。把概念的介绍和理解融入到例子当中,这样比干巴巴的介绍概念更有意思一些。然后把一些整体的概念放在最外边的 readme 里。

时间组织和安排

今天开始做这件事情,建仓库,写简单的 readme。每周写一个例子,这个内容包括一个例子的全部代码,然后再写这个例子的 readme。其实主要的内容是 readme,因为例子实际上已经有了,readme 需要完全自己重写。
再说一件事情,就是在 google 里搜 d3 也会有很多相关的 tutorial,那么这些 tutorial 的内容实际上也可以作为我的一些内容的补充和参考。哪怕只是翻译一下,对于我来说,对于读者来说也是有价值的。

当有时间却不知道自己该做什么的时候,这么想

想想自己如果此刻就死了,你会做什么。想想自己如果一年后就死了,你会做什么。想想如果自己五年后就死了,你会做什么。想想自己如果 x 年后就死了,你会做什么。那么这些答案就是对应的你这个阶段应该做的事情。

BC 的疑惑

和 BC 聊了下,她主要有几点疑惑

  1. 出去对我们的职业生涯有什么样的影响,会不会反而影响我们未来的生活和发展
  2. 出去对 Dammy 的影响,会不会因为出去再回来导致她不适应国内的生活,进而还不如不出去。
    BC 对于现在出去有很大的疑惑和不知所措,因为不知道出去是为了什么。她想知道两个问题的答案,或者说她需要有两个前提条件:
  3. 出去必须要找到一份收入不菲的工作,维持比较高的生活状态
  4. 出去必须要有一个足够具有说服力的理由,或者说原因,甚至是信仰和信念。足够支持说出去如果在国内失去了什么也不会觉得后悔,比如公司上市,或者国内有大的发展机会,错过了。

看了 wahyd4 的 github 之后的收获

租房

墨尔本 free zone 的边界附近,40 平米的房子,一居室,月租金 2K,而且房东是为了卖房,但是又舍不得房子空着没租金租出去的。就意味着房东可以一直带人来看房,对你的生活造成很大的干扰和影响。房东是新加坡人,是全球房产投资客。

收入

年薪 10W 的话,税后收入是 7.3W;年薪 15W 的话,税后收入 10W。有个在线的计算器可以计算。博主说的是一般华人能挣到 15W 的话基本上是到头了。

疑问

  1. 除了 issue 里写的槽点之外,还有什么槽点。
  2. 是不是国内年薪如果超过 10W 澳币的话就没有必要来澳洲工作了。
  3. 如果没有 PR 身份,可以享受儿童的补贴吗?
  4. 工作之余会不会无聊?

安排

最近这段时间因为各种事情的干扰,没有继续看算法了。现在继续回到原来的路上:先把 grokking algorithms 这本书看完,然后继续开始学习 “数据结构与算法之美” 的课程。把整本书和整个课程坚持下来,然后把所有的内容都整理到我的 github 中。这个过程可能需要多长时间嗯?需要估算一下,给出一个排期和计划。

除了这个内容之外,还有个内容要看,就是 bilibili 上的 crash course ,计算机速成课,也是要完全看完的。这个也需要给出一个排期。

然后看下 BC 给我发的公众号文章,以及看自己有什么问题。可以给 wahyd4 提。
今天尝试用文件夹的方式组织了整个 github,效果还可以,但是每次都需要把原来的 react 组件改动一下然后才能有效果,所以在想要不要用 react 的方式组织一下。用 create-react-app 来尝试做自己的 d3 组件库。

今天需要看下什么时候还信用卡,然后还要看下回家要收拾的东西

今天随手搜了一下 product manager responsibilities 这个关键词,找到一些页面,觉得还是不错的,可以给 BC 看看
https://www.productplan.com/key-responsibilites-of-product-managers/

今天在水木又看到了一篇关于带孩子出国的文章,http://www.newsmth.net/nForum/#!article/QingJiao/471447 。然后之前和陈宇聊天,她说的也是觉得并没有什么不好,虽然去的并不是德国,非英语母语的国家。