Category: 软件工程
坚持在 leetcode 刷题已经有近两年了, 刷着刷着就成习惯了, 就像每天刷牙吃饭一样, 不刷会很不自然. 刷题的收获还是有挺多的, 特别是对数据结构和算法有了进一步的了解. 还有一些设计题, OOP面向对象, 甚至是数据库SQL和BASH编程还有就是多线程类型的题都能得到温故而知新. 每天习惯了打卡, 早上起来喝杯咖啡刷个题, 特别是这几个月疫情在家, leetcode有那种每月Challenge, 刷一题得10积分, 还有就是会员题35分一题, 是快速拿积分的好方法(平时每天登陆才得1分, 一件T-shirt 得6000分换, 按照一天10分, 大概不到2年就能换衣服了) 为啥要刷题? 对于搞计算机的码农, 刷题是找到一份好的搬砖工作最廉价最有效的方法了. 很多屌丝能通过刷题进入Big4, 改变命运, 迎娶白富美. 亚麻就有很多年轻的小姑娘(听说狗家的也是), …
有一次, 在公司敏捷开发的例会上, 有一些测试用例在一些代码合到主分支上不通过了导致其他开发者需要等待处理, 这时候Scrum Master说 这是谁干的? 旁边的一个工程师立马说, 我们这是 “No blame culture…” 这时候 Scrum Master立马笑着说: “你说的对, 我们找出是谁干的 we find out who did it and…, 然后我们就继续前进(意思是说找出谁干的就好了) we move on…” 还有一次, 也是谈到这个 …
每次面试没通过就会有一个面试经历分享, 哎. 不过这次FACEBOOK伦敦终面的收获还是挺多的. FB简历筛选 记得是五月份左右的时候在LINKEDIN上看到FACEBOOK伦敦的招聘广告, 于是就投了, 当时不抱希望的, 因为我听说像FACEBOOK, GOOGLE这种顶级互联网IT公司每周收到的简历有数千封, 所以很有可能就直接被过滤掉了. FB的人才库(talent)世界大公司排名能前5. 大公司都有自己的猎头, 也就是 Technical Recruiter, TR的水平是相当高的, 很多猎头都有计算机背景, 并且读了心理学等, 所以看简历和HR是不一样的. 很多HR看简历就是过滤关键字…… 投了简历很快就接到FB猎头的联系了, 第一轮有一个电话, 只是互相聊了了解一下. 这里说一下FB很大, 猎头负责的阶段也不一样, 比如这个联系我的猎头了解情况后就把我介绍给另一个FB的猎头负责安排第一轮技术面试, 然后通过后又介绍给另一个FB猎头, 有点类似接力棒. FACEBOOK第一轮技术面 …
上周五拒了甲骨文剑桥 Data Cloud 的 Senior Software Engineer 的 Offer. 原因是给的 Package 较低, 不能和我当前在GE的 Package 相比, 而且低了不是一点半点, 不谈工资 (base salary), 甲骨文一年的带薪假期只有20天(GE的有26天), 当然大公司都允许你一年拿工资买一定的额度的. 为啥要申请甲骨文剑桥? 因为这家公司是去年刚被甲骨文收购的, 做的领域是互联网广告定向算法, 能接触到大数据(爬虫每天爬了数十TB的数据), 然后算法得分析页面, 建立语言模型, 给出最佳匹配的广告. 甲骨文在计算机领域还是相当有名的, …
码农职业上的终级目标就是 TOP 10 的这些公司, 比如谷哥, FACEBOOK, 微软, AMAZON, 甲骨文, PAYPAL, TWITTER等. 这些公司的软件工程师 (SE: Software Engineer) 都会有好几轮 Coding, 也就是算法+写代码, 还会有 Design 设计类的问题. 很变态, 所谓面试原子弹, 工作的时候茶叶蛋一点不夸张. 既然面试的技能(例如算法)并不一定需要在工作中用到, 那为啥大公司的面试还是一如既往的考算法+设计的套路呢? 平常写代码会需要知道如何反转二叉树么? 可能在工作中, 程序员一辈子都不需要去用到反转二叉树的算法. …
由于签了NDA, 所以还是把文章改了一下, 尽量不泄露重要的信息. NDA针对的是信息Information(例如公司重要的一些项目啥的), 而分享个人经验Experience应该不算违反规定吧. 9年前, 当我博士就要毕业时, 当时被美国Facebook的猎头联系上, 当时水平不够(也没有怎么准备), 第一轮技术面试都没有通过. 前几周, 投入Facebook伦敦软件工程师 Software Engineer职位, 很快就被FB的招聘猎头联系上了(大公司都有自己的招人猎头团队 Talent Acquisition). 先是第一轮电话互相了解情况后就安排了和一个在伦敦的FB工程师进行第一轮技术面(coding interview 筛选) 虽然说是电话面试, 但实际上需要在电脑上进行做题, 而且需要开摄像头, 这样和可以和FB的工程师进行更好的交流. 敲代码是在 浏览器中的网站: coderpad.io. 和微软的那次电话面试不同, 这次代码并不能直接在浏览器里编译执行. …
敏捷开发 Agile Development 是国外比较流行的软件迭代流程. 虽然有几个变种(稍微有点不同), 但是每天例会 Daily Standup 是必不可少的. 每天例会大部分是在早上的9点到10点, 也有的安排在下午 – 比如公司的开发团队比较大, 被分成了几个小组, 而开会的办公室不够用了. 敏捷开发的例会的长度 例会应该尽量控制在 15到20分钟内完成, 会不是越长越有效. 敏捷开发的例会怎么开? 在哪开其实无所谓, 甚至可以在厨房开, 大家也不需要很严肃. 我在GE开例会, 经常有开发人员拿蛋糕吃的放在桌上, 然后会后切着分着吃, 很和睦. 开例会有一点前提, 就是要站着, …