Sicheng’s blog

The Sicheng's blog

在 macOS 上利用 FreeFileSync 自动同步网盘文件夹

在德国生活,很多文件都是用信件的方式来通知的。哪怕是我家的房本,买房的合同,都是几张 A4 纸。所以我习惯把重要文件扫描以后放到网盘里面。由于不愿意花钱买 NAS ( 穷 ),所以研究了一下如何自动在不同厂商的网盘之间进行备份。这样即使一个网盘丢文件了,另外一个也有备份。 我的主力网盘是微软的 OneDriver,免费容量是 5GB,存放一些扫描文件和电子书足够了。我的备份网盘是 iCloud 每个月花 6 人民币买了 50 Gb 的空间,主要用来共享给我家里人存放照片。

Continue Reading

记录一下我战胜新冠的过程

感染过程 3 月初的时候,为了🎉国际妇女节我全家去捷克体验了一下滑雪。滑雪场是人山人海,而且也没有人戴口罩。 滑雪完的第二天起床发现喉咙有点疼,脑袋有点晕乎乎的。于是拿体温计一测,37.2度。我心里一沉,该来的还是要来,我不会是得新冠了吧?正好家里有抗原检测剂,我自己捅了捅鼻子,过了 5 分钟,果然结果很 positive(阳了)。

Continue Reading

推荐一个系统建模常用的模型 C4

  那天我之前的同事突然在领英上给我发消息:   他说的是指我一直在前东家的组里面推一种叫做 C4 的模型。   什么叫做 C4 模型? C4 模型是一种描述软件系统的建模方式,其中的 C4 指的是 Context(系统上下文),Container(容器),Component(组件),Code(代码)。这四个层级从高到低,从全局到局部,从不同的层级来描述一个软件系统。

Continue Reading

工作内推 2022-02

上周和经理 1:1 的时候,他提到了还想在德国和爱尔兰招人的事情,问我有没有可以推荐的。我一来想赚内推费,二来希望和我同时区的同事多一点,这样我可以不用跨时区开很多会。于是就写了这篇文章。在博客首页能找到我的联系方式。 注意:虽然职位都是远程,但是由于税务法律的关系,我们组只考虑已经在德国或者爱尔兰的候选人。因为是小公司,HR 在英国,他们也不愿意提供 Visa sponsorship,因为不熟悉各个国家的法律政策。我们公司还有其他组在其他地区招人,也欢迎同我联系。   我们是谁 来自于维基百科: Netskope is an American software company providing a computer security platform. The platform offers cloud-native solutions to businesses for data protection and defense against threats in cloud applications, cloud infrastructure, and the web. Netskope is considered a “leader in its field” status for its Cloud […]

Continue Reading

面试算法,面试官都在考察些什么?

经常有人问我: “请问我 LeetCode 刷了多少道题就能去某某公司了” “我 LeetCode 刷多少道题是不是就能去 xxx 公司了?” 这种思路其实特别像我们高三时候讨论的: “我高考考了多少多少分就能上一本?” “去年清华的录取分数线是多少分?” 我国的做题教育已经深入我们的脑子里面了,以至于很多人在工作以后还是这种思路。LeetCode 是一种非常好的练习自己算法能力的方式,如果没有任何解题能力是肯定通不过算法轮的面试的。但是算法轮是不是就是在考察候选人的 LeetCode 能力?其实算法只是一种比较容易标准化的面试方式,真正考察候选人的理解问题的能力,通过和面试官交流去沟通去搞清楚需求的能力,编码能力以及算法和数据结构知识。     上面这个视频是我帮一个同学 mock interview 的视频,我出了一个算法题: 假设一个公司每个员工都会汇报给经理,员工之间有时候会有矛盾或者不同意见,这种时候我们需要找到这两个员工共同的经理来解决这个问题。所以我们需要写一个函数,找到两个员工的共同经理。 这个时候,有 LeetCode 高手已经在说了,这道题我刷过,这不就是 LeetCode 235 Lowest Common Ancestor of a Binary Search Tree 吗?来,看我给你 30 秒给你秒了这道题,接着迫不及待的开始写代码了。 做为面试官我当然知道这个题目的本质就是 LCA。但是我期望的并不是仅仅是候选人把代码写出来,我期望的是,他能先搞清楚这个需求。这是我假想中的对话。 Q: 员工只会汇报给一个经理还是多个吗?(我描述的时候特地漏掉了一个) A: 对,只汇报给一个经理。 Q: 请问什么是共同经理? A: 共同经理是两个员工汇报线上层级最低的经历,这个经理同时管理或者同时间接管理这两个员工。 Q: 假设这两个员工中,一个已经向另外一个汇报了,那么共同经理是谁? A: 这种情况下我希望返回经理的经理,否则就不公平了。(LeetCode 上是返回两个节点中做为祖先节点的那一个。很多人也会这么实现,这个时候等他写完代码我就会把这个 corner case […]

Continue Reading

我所经历的欧美科技公司的面试

从 17 年 10 月份到德国工作,到现在 2022 年,四年期间我面试了很多家公司。作为程序员,时不时的去面试一下是非常好的习惯,这样你可以了解一下市场上的薪资水平如何,也可以了解市场上对于程序员的技能需求是怎么样的,毕竟软件工程师是一个需要不断学习的职业。还有一个好处是,面试需要的技能其实并不完全和你平时的工作紧相关,偶尔面试能让你不要完全忘记面试的技能。 每个科技公司的面试大致都由 4 – 6 轮构成,每一轮的内容各个公司都大同小异,但是各个公司,甚至不同的组侧重点都不一样,有些公司喜欢考算法多一点,有些公司喜欢问项目经验多一点。但是总体而言,基本上各轮面试都可能会有下面说的几种形式之一。 home work 有些公司在和HR聊完以后,在正式的技术面试之前会发一个 home work 给你做。往往是要求你完成一个小项目,完成以后把项目代码发过去。这种项目往往说不希望你花太多时间,最多也就两个小时,但是期望你的代码是 production ready , 并且有完善的测试。个人非常不喜欢这种技术面试的方式,因为不同于其他的面试方式,因为你不知道面试官的标准在哪里,所以这种小项目理论上你可以无限打磨的你的代码。 我要不要写这个测试?恩还是写吧,万一因为没有测试挂了呢。 我要不要写一个运行指引?恩还是写吧,万一面试官不知道怎么运行呢。 我还见过的 home work 里面给的代码有注释 this is just an toy project, so we take a short cut,但是给你的要求是 you should right production-ready code. 我曾经花了一个星期写了一个作业,最后倒在了谈薪资的那一轮。 所以我的建议是 如果不是非得找工作,尽量避免这种面试。如果决定面试了,就尽可能的把作业做的尽善尽美。花两三个小时搞一个半吊子的方案是肯定过不了面试官的 review,而且你还是浪费了时间。 算法 这种面试形式是经常见到的,也是被讨论最多的,关于如果准备算法面试我之前的博文了提到了。这种面试形式也是被讨论最多的,因为美国的科技公司的标准化面试都有 3 – 4 轮的算法题。我强烈推荐一个叫做花花的博主,他的题解是我见到的做的最好的。在这里我就不在累述了。 […]

Continue Reading

我的肉翻记录-下

上一篇说了一下面试准备和 behavior question 的准备方式,这篇说一下面试过程中各个阶段的准备方法, screen interview general question 这些是第一轮 HR 给你说的,无法就是你对他们公司有什么了解,为什么想换工作,如果 relocate,会不会把家人带过来。我觉得最重要的一点就是你的动机,也就是你为什么要来面试?以下是几点千万不能说的 1.  因为你们是大公司,我就想来大公司。我面试 facebook 的时候就这么说过,HR 直接说不希望你来只是因为我们的平台。 2. 我就想出国。。。 每个人的情况都不一样,但是一定要想个好的说辞,反正可以反复用的。 算法 这个算是一个比较大的障碍了,因为确实工作中很少用到算法,虽然去刷题有应试之嫌,但是这就是游戏规则。刷题的话,我一般都是去 www.leetcode.com,刷题的方式没个人都不一样,有人喜欢按照 topic 刷,有人喜欢按照难度刷,我的方式是 easy 和 medium 全部写完(hard 级别的因为我不是去硅谷的公司,所以就放弃了),以下是我的建议: 0. 总结出常用的模板,例如这个帖子就是一个用双指针来解字符子串题目的模板,https://discuss.leetcode.com/topic/30941/here-is-a-10-line-template-that-can-solve-most-substring-problems。这样的模板还有很多,多看看 leetcode 上每个题目的 discussion 版块,看看其他人的思路。 1. focus,有人写题的时候,还听歌,时不时刷刷朋友圈。但是实际面试的时候,会有压力,也有时间的限制,所以最好要有在高压状态下解题的能力。leetcode 上有个 mock 的功能挺好的,推荐试试。 2. 不要用 ide,有时候的面试是要求你的 code 能 compile 的,所以最好有徒手写代码的能力。 3. 注意代码格式。 4. 对于题目千万不要记代码,要记住原理。我曾经面试一个公司,on screen 的时候,出了一道原题,我取巧,就把之前写过的答案给敲上去了。但是面试官问我为什么这样解是对的,我突然就想不起来了,结果面试挂了。如果你要记录代码,还不如记录这个题目的思路,以后碰到了把思路想起来,现写代码,都比记代码强。 5. […]

Continue Reading

我的肉翻记录-上

这是刚刚出国的时候写的的老文了,搬移到新的博客来 前言 本人大龄程序员,一直想去国外工作,最近拿到了几个 offer。已经递交了辞呈,在办离职和等签证的阶段,所以写下这篇博客,记录一下这半年来的过程。 个人背景 末流 985 CS 小硕,BAT 大厂底层搬砖,工作 5 年。个人感觉背景重要性从大到小是,大厂背景(几乎所有的国外面试官都知道我厂),学校(国外的 HR 只知道 TOP2,但是申请签证的时候,有些国家会看你的学校),工作经验。 职位搜索 1. 100 offer 上的新加坡和澳大利亚专区,你可以勾选你想去的地区。我只接到过新加坡公司的面试邀请,新加坡的大厂 Sea Group,Grap 等基本上很多国内工程师过去的,所以面试的时候你会感觉面试国内互联网公司。也有一些小厂,面试都是英文面试,但是他们所需的人比较少,面试的人又多,所以会比较挑剔。 2. Stack Overflow 这个是我觉得很赞的,搜索功能可以根据公司是否提供 visa sponsor 过滤。像澳大利亚的公司,如果你没有工作签证,是需要雇主担保的。 3. 其他的例如,glass door,LinkedIn,个人感觉差不多。 简历准备和面试技巧 推荐 coursera 上的课程 https://www.coursera.org/specializations/english-interview-resume,里面详细说了如果搜索信息,简历如何写,behavior question 如何练习,推荐主要看 course 2,3,4 。 其实面试和 sell 的过程一样,都是需要把你做为一个商品卖出去,那么什么是一个好的销售?有一本书叫做《sell with story》,中文名字叫做《销售就是卖故事》。普通的销售是卖商品,好的销售是通过故事来卖商品的,这个和面试一样,当面对一些 behavior question 的时候,你可以干巴巴的说自己是什么什么样的员工,或者,拿一个曾经在工作中发生过的事情来证明你是他们需要的员工。 behavior question 的回答也可以参照 STAR 法则的,所以你要准备的 story,实际上就是 STAR […]

Continue Reading

2021年终总结

这是我的一篇博客,就从去年的年终总结开始吧 2021 真是魔幻的一年,回顾 2020 的年的总结,发现这一年真的发生了很多事情。这篇日记也是为给我 2021 年做一个总结。 1 – 2 月开始一直在断断续续面试,2 月左右拿到了一个满意的 offer。工作内容,待遇,职级都比较符合我心意,从那个时候就没有再刷题了。 4 月 1 号拿到了德国永居,从此不用担心因为工作没有就要滚回国了。 4 月底买了一套自己的房子,也算是有了个窝。 6 月正式入职新工作。因为是完全远程加上和团队有时差,onboarding 的过程还是压力有的,毕竟刚刚又成为房奴。 8 月份搬家,自己学会了组装家具,补地板,修水管,装洗衣机。还自己做了一个挂衣架。非常想念我爸爸,多希望我有爸爸动手的 10 分之一。 10 月份完成了德国南部自驾。10 月底通过了试用期,从此被裁就有 3 个月的通知期了,也算送了一口气。 11 月份开始去健身房,两个月瘦了 12 斤。 12 月打了第三针的疫苗,平安的渡过了 2021,没有得新冠 yet。

Continue Reading