Showing posts with label UCSD. Show all posts
Showing posts with label UCSD. Show all posts

Thursday, March 12, 2015

压力很大

刚才收到老师邮件让我延期交report,

因为我的英语表达不好,他觉得我还得大改。。

我觉得好郁闷,也有点委屈。

早早就开始写了,可是老师到最后才帮我改。

我自己也有问题,英语不好,怎么改都改不出好点的样子。

无能为力,怎么办啊。。

明天就是deadline,却不能交。

最近压力真大,驾照OPT一点消息都没有不说,H1b可能不能抽Master学位不说,毕业设计和课程也把我弄得非常累。

常常睡眠不好,早上起来也是无精打采,很难受。

大前天流鼻血。

今天嘴角起了很多脓包,张不开嘴,还疼。

哎,不知道坚持到下周二我能不能解放。

真的好郁闷。
read more ››

Wednesday, March 11, 2015

守时的重要性

想要守时有多难呢?

无力吐槽

昨晚睡眠质量不好,今天早上起来还有无力感,一看fitbit发现昨晚居然翻身20次!对比前天晚上的4次,差太多。。

附图对比图2张

March 9th, 2015

March 10th, 2015

晚上和ct, dyp, xcf, xy, zf, wizard吃了顿饭,段神买了个37k的JEEP真是贵啊~好像是牧马人?席间zf说到他收到OPT approve的信件了,我也开始着急了。。怎么办?驾照还没寄到,OPT也没消息。。等H1b肯定也抽不中了,这人品。

这周和下周good luck吧~
read more ››

Monday, March 9, 2015

赞LinkedIn的人文关怀

今天把退税的单子寄出去了,静候佳音。

快要春假了,收到LinkedIn包裹一个,大致是说对春假和期末的祝福,嘿嘿。

收到这样的包裹还是挺暖心的!



卡片



书包+音箱+墨镜

希望这是好的开始,祝我接下来顺利毕业!!
read more ››

Sunday, March 8, 2015

今天争取把TRIGGER做出来

今天周日,不出意外还有10天就要结束本学期乃至学生生涯。

本周五



周五将有一堆事


  1. master project report和slides的due


  2. CSE132b的milestone4和milestone5的due


  3. 体检




下周




  1. master project的presentation


  2. CSE132b的final的due




CSE132b



争取今天把132b的milestone4和5做完。

这个是比较好的TRIGGER讲解LINK

英文原版LINK

Master Project



report草稿写的差不多,不过slides还没开始做。等老师答复。

自勉



本周要把project收尾,132b收尾,退税搞定,体检搞定。自勉,加油!
read more ››

Friday, February 27, 2015

昨夜没失眠

不知最近受了什么刺激,闲暇时间越来越喜欢自己一个人待着。独自玩玩游戏机,看看电影。

昨晚躺在床上,关着灯,听着秒针跳动的声音,心里不平静。

想到白天表哥发来姥爷过生日的照片,缺少移居上海的舅舅一家和我。看着照片中的姥爷,我好难过。曾经姥爷身体很好,但是一次大病,腿脚就不灵便了,情绪也容易激动,身边不能没人陪着,就算姥姥出去买菜,也要找人看着姥爷。可是姥姥的年龄也大了,耳朵不好,常常听不清我们在说什么。本来今年过年说要全家去海南玩,因为姥爷的身体不好,必须有医生的证明才能坐飞机,但哪个医生敢担保姥爷的身体能承受住气压变化和飞机的颠簸呢。大过年的,姥姥姥爷身边也就我爸妈和大舅一家人,我心里很不是滋味,下次全家团聚是什么时候呢?当哥哥发来全家福照片时,我忍不住留下了泪水。我真的希望他们远离病痛,健健康康的。

再说说其他的事情,这一周是第8周,离毕业还有两周。每天自己就一个人泡在图书馆做作业,享受在学校剩余的时光。最近听到一些别人的故事,有些讽刺却不乏感动。翻看几年前的日记,忆起自己那些年的故事,觉得自己毫无长进。时间能改变很多,却无法磨平一切。我一直不相信一见钟情也不相信天生一对,我只相信当时的感受。可是当热情褪去,剩下的是什么呢?责任么?我不敢想,我没有准备好。

想了那么多,幸好没失眠。生活中一定要有很多的无奈么?是我想的太多还是想要的太多?我感到深深的孤独,我希望别人能懂我,却连我自己都读不懂我自己。
read more ››

Thursday, February 26, 2015

PostgrSQL的backup和restore

今天做132的project有个小小的发现,

对当前以后的数据库备份有不少帮助。

以前总是用手动备份数据库,到另一台电脑上还要CREATE TABLE手动加数据。

project本身做起来颇为麻烦,若再因为备份和迁移伤神,岂不痛苦?

就找到了一个backup所有数据库信息和restore的方法。

看这里

backup的时候把后缀名改为.backup,在新机器中写好数据库名在tools中选restore刚才的.backup文件即可。
read more ››

Wednesday, February 25, 2015

CREATE VIEW

CREATE VIEW



今儿上课讲CREATE VIEW

PostgreSQL 8.1 中文文档

Schema

employee(ssn, name, salary, s_ssn, deptNo)
dept(dno, dname, address)

Naive SQL

[code language="sql"]
SELECT d.dname, max(e.salary) AS sal
FROM employee e, dept d
WHERE e.deptNo = d.dno
GROUP BY d.dno, d.dname
[/code]

Materialized View

[code language="sql"]
CREATE TABLE V (dno, sal)
populate table offline
INSERT INTO V (dno, sal)
SELECT e.depNo as dno, max(e.salary) as sal
FROM employee e
GROUP BY e.deptNo
[/code]

Get deptname

[code language="sql"]
SELECT d.dname, v.sal
FROM V v, dept d
WHERE v.dno = d.dno
[/code]

When update or delete...

If new employee has more salary that max salary?

Need to look into the base sql. second highest salary?

How to do better?

[code language="sql"]
CREATE TABLE V’(dno, maxSal, mSalCnt, secondSal, sSalCnt)
[/code]

To be continue..
read more ››

Monday, February 23, 2015

Precomputation and Materialized Views

今天132b上课讲DB的preocomputation。

Materialized Views



Wiki Page


 In computing, a materialized view is a database object that contains the results of a query. For example, it may be a local copy of data located remotely, or may be a subset of the rows and/or columns of a table or join result, or may be a summary based on aggregations of a table's data.The process of creating a materialized view is sometimes called materialization. It is sometimes described as a form of precomputation. As with other forms of precomputation, materialized views are typically created for performance reasons, i.e. as a form of optimization.

 In any database management system following the relational model, a view is a virtual table representing the result of a database query. Whenever a query or an update addresses an ordinary view's virtual table, the DBMS converts these into queries or updates against the underlying base tables. A materialized view takes a different approach in which the query result is cached as a concrete table that may be updated from the original base tables from time to time. This enables much more efficient access, at the cost of some data being potentially out-of-date.


What is the difference between Views and Materialized Views


 Materialized views are disk based and update periodically base upon the query definition.

Views are virtual only and run the query definition each time they are accessed.

 Also when you need performance on data that don't need to be up to date to the very second, materialized views are better, but your data will be older than in a standard view.


Precomputation



Precomputation是和Materialized View对应的。

[code language="sql"]

SELECT e.deptNo, max(salary) AS sal
FROM employee e, dept d
WHERE e.deptNo = d.dno
GROUP BY e.deptNo

[/code]

可先precompute

[code language="sql"]
CREATE TABLE Q’
INSERT INTO Q’
(
SELECT e.deptNo, max(salary) AS sal
FROM employee e, dept d
WHERE e.deptNo = d.dno
GROUP BY e.deptNo
)
[/code]

一些SQL巧用



text转时间



在数据库中我以text存储时间,但是这样不能直接比较时间大小,故寻得此法:

[code language="sql"]
SELECT *
FROM table
WHERE CAST(StartTime As Time) > CAST(EndTime As Time)
[/code]

感觉就是强制类型转换,将类似13:00的text转化为time。

SQL中的for循环



决定暂时不用for循环,for循环打算写在jsp里。我还有一些其他需求,基本也都找到了方法。

date BETWEEN



在数据库里我以text ‘YYYY-MM-DD’形式保存时间,但是遇到在两个时间区段取时间的问题。PostgreSQL可以照常使用BETWEEN来检查。

[code language="sql"]
SELECT *
FROM review
WHERE review_date BETWEEN '2014-01-01' AND '2014-03-01'
[/code]

get day of week



PostgreSQL内部也有取已知日期是星期几的功能。

[code language="sql"]

SELECT review_date, extract(dow from review_date::timestamp)
FROM review
WHERE review_date BETWEEN '2014-01-01' AND '2014-03-01'

[/code]

这么一来,我在review表里存的星期信息就多余了,还得改表。

Getting date list in a range in PostgreSQL



还有,给起点终点,我想取出一段连续的日期,如下。

[code language="sql"]

SELECT aval_date::date
FROM generate_series('2012-06-29',
'2012-07-03', '1 day'::interval) aval_date

[/code]

代码不难,我卡住了。我想把这个aval_date作为大SQL语句WHERE的一部分,结果愣是想不出怎么写。后来测试一下SELECT * 发现默认的attribute就是aval_date。这下直接去大SQL把WHERE中写成aval_date=...就行了。

这个review的available的date time的SQL算是写好了,可能对另一个题也有启发。继续!

Getting date list in a range in PostgreSQL

关于临时表



之前对TEMP TABLE的理解就是中间变量。后来Wizard告诉我,TEMP TABLE多用在建出来一个马上要访问很多次取结果的或者中间结果太大放不下内存的。看来需要改动一些,放在同一个query语句中会更好,就用nested query吧。

更新:目前nested query果然好用,不理temp table了!
read more ››

Thursday, February 19, 2015

PostgreSQL临时表(in progress)

以前上135时学过临时表,奈何忘了大半。现如今做132要用,现来回顾一下。


 临时表在会话结束时自动删除, 或者是(可选)在当前事务的结尾(参阅下面的 ON COMMIT)。 现有同名永久表在临时表存在期间在本会话过程中是不可见的, 除非它们是用模式修饰的名字引用的。 任何在临时表上创建的索引也都会自动删除。


PostgreSQL文档

PostgreSQL 8.1 中文文档

还在学习中,回头补充。

最近肯定要经常用temp table和trigger咯。

In Postgres, temporary tables are deleted when connection to the database is closed. Therefore, there is no need to drop the temporary table explicitly.

一直弄不清check
read more ››

Wednesday, February 18, 2015

CREATE TRIGGER

今天132B上学了点新东西,CREATE TRIGGER



[code language="sql"]CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER |CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE funcname ( arguments )
[/code]

name
赋予新触发器的名称。它必需和任何作用于同一表的触发器不同。

BEFORE
AFTER
决定该函数是在事件之前还是之后调用。

event
INSERT,DELETE 或 UPDATE 其中之一。 它声明击发触发器的事件。多个事件可以用 OR 声明。

table
触发器作用的表名称(可以用模式修饰)。

FOR EACH ROW
FOR EACH STATEMENT
这些选项声明触发器过程是否为触发器事件影响的每个行触发一次, 还是只为每条 SQL 语句触发一次。如果都没有声明, FOR EACH STATEMENT 是缺省。

funcname
一个用户提供的函数,它声明为不接受参数并且返回 trigger 类型。


 允许你为 "old" 和 "new" 行或者表定义别名,用于定义触发器的动作(也就是说, CREATE TRIGGER ... ON tablename REFERENCING OLD ROW AS somename NEW ROW AS othername ...)。


PostgeSQL触发器写法

> 一个触发器是一种声明,告诉数据库应该在执行特定的操作的时候执行特定的函数。触发器可以定义在一个 INSERT, UPDATE, DELETE 命令之前或者之后执行,要么是对每行执行一次,要么是对每条 SQL 语句执行一次。如果发生触发器事件,那么将在合适的时刻调用触发器函数以处理该事件。触发器函数必须在创建触发器之前,作为一个没有参数并且返回 trigger 类型的函数定义。触发器函数通过特殊的 TriggerData 结构接收其输入,而不是用普通的函数参数方式.


> PostgreSQL 提供按行按语句触发的触发器。按行触发的触发器函数为触发语句影响的每一行执行一次;按语句触发的触发器函数为每条触发语句执行一次,而不管影响的行数。特别是,一个影响零行的语句将仍然导致按语句触发的触发器执行。这两种类型的触发器有时候分别叫做行级触发器和语句级触发器。触发器还通常分成 before 触发器和 after 触发器。语句级别的"before"触发器通常在语句开始做任何事情之前触发,而语句级别的"after"触发器在语句结束时触发。行级别的"before"触发器在对特定行进行操作之前触发,而行级别的"after"触发器在语句结束的时候触发(但是在任何语句级别的"after"触发器之前)。


PS: 还是不是很明白,我再想想吧。

PPS: 今天project meeting让我也松懈不得啊。requirement一直在变,我除了想法子debug,还要满足需求。哎好累。

read more ››

Tuesday, February 17, 2015

MVVM和其他JS的学习笔记

MVC和MVVM





  • AngularJS与MVVM



  • 简单说来,view负责UI逻辑,viewModel负责表现逻辑和状态,model负责业务逻辑和数据。

    看图便知

    回调函数



    JS的callback一直弄不太清楚,选几个帖子看看吧。

    JavaScript - 回调函数

    知乎 - 回调函数(callback)是什么?


     回调函数并非是一种特殊类型的对象,其实就是普通的函数,但是被作为其他函数的参数传递,在某个时刻才会被选择性地使用。

     由于回调函数会在什么时候被执行,可能是不确定,甚至也可能永远不会被执行。而且在上面的这种情况下,这个回调函数甚至要在未来的某个时候才会执行,这就有了一个“异步”的感觉,也就是说代码不是从上到下依次执行,前面的代码执行完毕后面的才会执行。


    JSON to js object



    有两个eval()和JSON.parse()。

    [code language="javascript"]

    JSON.parse(text[, reviver]);

    [/code]

    js跳转页面方法



    js跳转页面方法

    我在用的是这个,

    [code language="javascript"]

    self.location='abc.html';

    [/code]

    感觉比较常用的是window.location.href()

    js的string里消除space或者hyphen



    remove hyphen

    比如消除hyphen(-), 用replace比较好。

    [code language="javascript"]
    var str="185-51-6 71";
    var newStr1 = str.replace(/-/g, ""); //hyphen
    var newStr2 = str.replace(/\s+/g, ''); //space
    [/code]

    "\s" is the regex for "whitespace", and "g" is the "global" flag, meaning match ALL \s (whitespaces)

    至于加号"+",这个会使转换更快。原因看这里difference between /\s/g and /\s+/g


     In the first regex, each space character is being replaced, character by character, with the empty string.

    In the second regex, each contiguous string of space characters is being replaced with the empty string because of the +.


    [code language="javascript"]
    var str = ' A B C D EF ';
    var a = new Date().getTime();
    console.log(str.replace(/\s/g, '#')); // ##A#B##C###D#EF#
    var b = new Date().getTime();
    console.log(str.replace(/\s+/g, '#')); // #A#B#C#D#EF#
    var c = new Date().getTime();
    console.log(b-a); // 8ms
    console.log(c-b); // 2ms
    [/code]

    Regex



    以上又引出了正则表达式,regex几天不看必忘。

    在这里简单复习下,




  • w3shool-JavaScript RegExp 对象



  • 用时再看吧。

    JS时间戳



    获取当前时间,

    [code language="javascript"]
    var a = new Date().getTime();
    [/code]

    好像没有直接从时间戳转到某个格式的日期时间,只能分别get到年,月这种。倒也无妨,自己写个function也可以。对于时间戳转换,w3school讲的比较清楚。
    read more ››

    Monday, February 16, 2015

    JS的事件监听

    事件监听

    setTimeout

    addEventListener vs onclick

    我想做一个点击某个按钮,变量开始每秒加一的事件。

    好多东西要学。
    read more ››

    Sunday, February 15, 2015

    毕业无望TAT

    又宅一下午图书馆,Project的要求好难啊。。求毕业!

    看到之前写的新学期任务清单,就差132B和毕设了。。好难好烦躁。

    每天宅着图书馆不知道能不能憋出来。132B的milestone3还没开始做。今晚开始做吧!

    AngularJS也好难。

    关于google chart,它的API比较强大。本来以为设置点击事件无望,看到google group有人提及一个方法,果然有效!


    • 问题描述:我想用getSelection()来获取点击的元素,不同于普通的geoChart,而是dashboard里的。结果单单用



    [code language="javascript"]geoChart.getSelection()[/code]

    不行,debug不出。


    • 解答 。因为在dashboard里,




     When using dashboards, you wrap the actual charts (the map, the table) in google.visualization.ChartWrapper instances.


    所以需要写成

    [code language="javascript"]geoChart.getChart().getSelection()[/code]



    Problem solved。我可以用它进行拓展了。

    接下来要把geochart的动态图实现了,搞了一天没弄成TAT。没有成就感!

    以后还需要学习AngularJS的$route。
    read more ››

    Saturday, February 14, 2015

    HTML5中的local storage

    最近做project发现一个非常神奇的东西 - local storage。


    HTML5 的local storage 是通过浏览器在本地存储的数据。


    这里讲解的比较清楚。

    [code language="javascript"]

    window.localStorage.name='yingyan'; // option1

    window.localStorage['name'] = 'yingyan'; //option2

    [/code]

    因为local storage有5M容量,而且没有保质期。基本能满足我们的大多数需求啦!

    这个Markdown网站DILLINGER  和快速学习mvc网站TodoMVC都用了local storage。

    用到了自己的project上真真省事不少。

    local storage搭配angularjs简直神器!

    顺带吐槽geo chart 对城市名的识别真是相当慢。还好有神队友帮我把城市名改成了经纬度,瞬间能刷出地址。不过看到地图上密密麻麻的点点,顿时食欲全无啊。
    read more ››

    Tuesday, February 10, 2015

    搞了一下午angularjs的date

    Date格式真是很讨厌的存在。

    在json里string要转成git。

    比如

    [code language="javascript"]

    string a = "2010-06-25T08:00:00.000Z";

    var milliseconds = Date.parse(a);

    var result =  new Date(milliseconds);

    [/code]

    这时result才是真正的date格式。

    搞了一下午,虽然进展太慢,好歹看出点成果。。
    read more ››

    Saturday, February 7, 2015

    驾照

    昨天驾照终于pass



    感谢



    第六次路考,终于在完全新路线+中途看到车祸堵车的情况下拿到了驾照。

    在此谢谢那个帅帅的华人考官,扣了5分,有一个是转向灯忘记复原。

    也谢谢liyang可爱的小车车助我一臂之力,超级好开。

    挂的经历



    之前每次挂都是critical error,每次都被考官提醒才知道不安全。虽然郁闷,不过长了不少经验教训。


    • 第一次路考,速度过低(40迈的地方我开到25迈)挂了。


    • 第二次路考,STOP SIGN停留过久(我跑神了),挂了。


    • 第三次路考,下坡忘记减速,挂了。


    • 第四次路考,变道没有看到盲点有车,挂了。


    • 第五次路考,右转入道在STOP SIGN处急着转弯没有看车,挂了。




    消费



    此次考驾照,共计消费


    37+37(笔试)+6+6(2,3次补考)+7+7(5,6次补考)+210(教练练车)=310刀


    还是比国内便宜一些。

    长舒一口气,终于不用练车,不用考笔试,不用在湾区考驾照了!
    read more ››

    Friday, February 6, 2015

    很烦!

    没有心思做作业。

    一天24个小时,我睡过去8小时,你睡过去8小时,

    还有几个小时你在吃饭出去玩,留给我几个小时?

    太自私了。
    read more ››

    Thursday, January 29, 2015

    习惯太恐怖

    感觉刷微博不是什么好习惯,特别浪费时间,怎么戒?

    好想减肥,怎么坚持?

    想开始保养皮肤,怎么坚持?

    我就是那种半吊子,不被逼一下,就不知道上进!

    总要吃点苦头才知道努力。
    read more ››

    Sunday, January 11, 2015

    尔湾和小肥羊

    伙食太好



    周五去Irvine玩了两天,非常喜欢那个城市。城市很新,很空旷,华人聚集,很多美食。

    到达第一天的中午吃半亩园。记得同济本部也有个同样名字的餐厅,加之Irvine的半亩园主营北方面食,果断尝之,还是很不错的。

    当晚学妹带着去吃鼎泰丰,比我想象便宜,犹记得在Taipei囊中羞涩感觉实在吃不起。。

    然后去吃鲜芋仙,据说是全美唯一一家,瞬时勾起我不少上海的吃吃喝喝回忆。

    住在Embassy Suite,不贵而且是套间还有afternoon happy hour和free breakfast,非常舒适:)

    第二天中午去吃了“沸点”臭臭锅,我觉得巨好吃,比大华那个赞不少呢。

    下午打道回府,晚上吃小肥羊,伙食实在太好。

    消极怠工



    说好的好好学js做project总是一拖再拖,对自己无语。

    唯一的进展就是考出driving permit(再次!),最近每天都在练车,希望早日考出驾照!

    各奔东西



    Winter Quarter开始了,不少人也已经毕业。我也在办H1b和OPT各种材料,希望一切顺利。

    昨晚的小肥羊,送走了段神。我觉得在我们这届中他的智商最高,玩24点分分钟秒杀。人家的电脑桌面还写着勤能补拙,我觉得我才更需要这个词!他拿到Pure Storage的offer,等到IPO,又是个大富翁了。

    好了废话不多说,自勉共勉吧!
    read more ››

    Tuesday, December 23, 2014

    2014小结(找工作)

    2014北美CS找工作小结



    背景



    13fall cs master, 14年暑假Twitter实习(无return offer)

    结果



    简历 reject:Lyft, MongoDB, Pandora
    电面 reject:Airbnb, Snapchat, Medallia, Shopkick
    onsite reject: Palantir, Youtube, Bloomberg, Dropbox, Quora, Pinterest
    offer: LinkedIn, Facebook, Uber
    withdraw: Microsoft,Hulu,Yahoo, Amazon, 2sigma, Infomatica, epic
    面了石沉大海:Turn,Tesla

    两个月的面试



    10月,14fall开学前就开始改简历,从国内来美国继续14fall的学习,还积攒了一堆面试,有Youtube, Palantir, Dropbox, Airbnb, Medallia。在job fair上疯狂扔简历,又拿来一堆面试,有Turn, Quora, Facebook, Informatica, Microsoft, Yahoo。snapchat和LinkedIn是内推的,其他全是网申的。从一开学开始,基本一到两天一个电面的节奏,幸亏课不多,还算可以承受,慢慢就是麻木了。那时面试最大的动力就是收到onsite的好消息,所以10月面试结束时,已经有近10家要onsite了。

    11月,接下来四周就是每周飞湾区一次面1到2家的节奏,偶尔还有飞New York的onsite,真是疯狂啊。。极累无比。还好在Palantir, Dropbox, Bloomberg, Quora的拒信后,收到了LinkedIn的好消息,否则心理压力真是太大了。没想到坐飞机会那么累,进机场,安检,候机,登机,起飞降落的难受,出机场,叫Uber,很费时间和精力。有时到了酒店都到半夜了,洗洗睡第二天就要去面试,相当辛苦。但是相对于onsite当天的辛苦,飞机上的劳顿就不算什么了。onsite常常让我感觉面不下去了,两场面试中间基本上没有休息的时间。

    onsite的各公司



    Palantir



    一轮电面直接onsite。电面一下面了三道题,小哥对我挺满意的。人生第一个onsite献给了Palantir,这是个做大数据的公司,据说bar特别高,所以当时自己也不抱太大希望。不得不承认Palantir真有钱,专人机场接机,住公司门口hotel,服务周到,不愧是与政府相关的企业。hotel也是我面过的公司订的最好的hotel。面的职位是full-stack engineer,上午三场分别是Algorithm,UI-Design和Coding。据说上午面的不好会在中午公司demo完被轰走,下午面完见着公司VP才 有可能 拿offer。我没被轰,但也好不到哪里去,下午hr告诉我说或许full-stack不适合我,又让我加面一场backend的面试。System Design相关,自己答得也不好,面完过一会hr就过来送了我一件Palantir的衣服然后跟我说掰掰了。。整体感觉Algorithm难度很高,Coding难度不高,UI-Design灵活性比较大,得和面试官想到一块去。一周后,hr约时间打电话,我激动了一下可惜hr打电话说不好意思我们不能要你,我说我能知道反馈吗,她说不好意思我们只告知结果。总之这是我面过的最难的公司之一。Palantir是挺好的,有专门的食堂,里面居然有担担面!在Palo Alto,阳光好,也很繁华,又安全,适合生活。他们很看重design,有专门的design的office楼。可惜这是个和政府相关的公司,我们进去估计比较敏感,而且据说工作压力超级大,有个engineer结婚度个蜜月回来就被辞退了。

    Youtube



    一轮电面直接onsite。当时电面面的不好以为要挂,没想到还是给了onsite。面完Palantir第二天就去Youtube面试,但是我觉得他们的hiring的流程不太好,我到了Youtube登记之后,等了半个多小时才有人下来接我,因为已经过了面试开始时间,我一度以为他们把我忘了。四轮纯coding,题目很灵活,有点后悔把Youtube面的那么早,经验不足挂了。Youtube在San Bruno,整个office火红火红的,挺不错。第二轮面试官是个印度哥,第三轮面试官是个印度姐,他们态度都比较冷淡,不过也没办法。面完就感觉第二轮答得不好,给了hint才有最优解,因为心情不好,之后午饭吃的都感觉没有味道了。午饭是和一个另一个印度哥吃的,他比较内向我心情又不好,我们也没怎么聊。饭还是一如既往难吃。四周后的一天SD下着雨,我正在去机场的路上要飞SFO去面Uber,hr打电话说不好意思我们不能要你,你提升一两年后再来申请吧。hr把每一轮的feedback也告诉我了这个还是不错的。当时看着车外淅淅沥沥的雨,内心倒是很平静。

    Bloomberg



    一轮电面直接onsite。电面题很常规,有coding有基础C++知识。面完Palantir和Youtube过了个周末,就去NY面bb,这个感觉最不值了,飞了6个小时过去,顶着时差面了一整天,面够四轮(据说面够四轮offer机会很大)还是挂了,然后从纽约回来就感冒咳嗽流鼻涕(持续了一个学期!)。感着冒第二天一大早就收到Bloomberg拒信,状态真是糟糕。题目难度一般,面试官感觉特别非常规,总之跟IT公司面试还是很不一样。什么都问,C++,数据库,OS什么的。公司在曼哈顿,大楼很fancy,不过总觉得不适合cs的在那工作,也是仁者见仁智者见智吧。住在Bloomberg旁边的hotel,三百多刀一晚但是不如在湾区一两百一晚的酒店,果然曼哈顿消费高!

    Dropbox



    面Bloomberg的当周拿着两封拒信带着郁闷的心情就又飞去Dropbox onsite了。这个公司要求好高,找人内推,然后做online challenge,然后两轮电面才给的onsite,扔箱子的office确实不错,旁边就是AT&T PARK,码头,大海,上班上累了,去海边散散步,看看比赛还是特别爽的。公司里面也很赞,尤其是食堂,吃的特别好。听说主厨是米其林三星厨师,每天菜单不重样,精致的牛排什么的,还有Dropbox自制的各种口味的冰淇淋。面试难度还好,题目重复率高,注重多线程。面试官都很友好,有个是USC的中国妹子,人挺好的。可惜还是挂了,可能他们觉得我多线程写的不好吧。另外,我感觉Dropbox里美女好多。。两个面试官都是美女(有abc也有中国同胞)。午饭后看Dropbox的demo发现他们也在做类似google doc共同编辑的东西,但我不知道他们是否能干的过google或者分一杯羹。Dropbox现在有三个主要产品,传统Dropbox,相册Carousel和刚刚收购的Mailbox,我不确定后两样能吸引到多少新用户。关于盈利模式,面试官告诉我说他们主要是靠Dropbox pro和Dropbox for business赚钱,好像很多公司都在用Dropbox。

    LinkedIn



    一轮电面直接onsite。电面是个印度哥,面的不难,虽然有小错还好他还说放过我了。面完Dropbox过了个周末就又飞去湾区连面Linkedin和Facebook,要知道那时候我基本上在San Diego连续待不到3天以上,天天飞,还有一堆事。。。LinkedIn是invitational day,所以也是社交的好机会,认识了好几个一起来面试的中国小伙伴。感觉这个invitational day活动做的挺好的,机场接机直接送到酒店,第二天一大早把大家一起送到office吃早饭,发了一些小礼品,cookie,Tshirt什么的挺多,还会发一张大图,是你的LinkedIn的关系网,比较有意思。然后有一些warmup小活动让candidate来认识一下LinkedIn,拼拼乐高,大家再互相介绍一下这样。然后就是上午两场面试,behavior,coding。(2hr)behavior是个中国的manager大哥,他人很好,说随便聊聊这个面试就是让我放松放松不要太紧张。另一个coding面试是个美国小哥和印度小哥,确实在LinkedIn面试不遇上印度面试官很难。中午hr带着大家一起吃饭,再有一些小活动放松下。下午还有两场面试,coding,design。(2hr)coding有点让我困窘还好他们放过我了。design设计的东西不难,面试官也挺满意。结束后LinkedIn统一开车带着大家去吃寿司,还有LinkedIn的员工一起,感觉氛围很不错。面试后的第二天晚上就收到LinkedIn hr邮件说要给我打电话,神速啊。不过给offer特别拖,因为要安排manager聊天和感恩节拖了两周才给的offer。第一次这么不爽感恩节。。

    Facebook



    一轮on campus直接onsite。我参加的是Facebook的university day,所以也能和很多candidate一起,也是认识了一些人,包括面试0跪的wizard浙大同学俞t大神,还有扎实稳重的王c。感觉强度没有LinkedIn高,只有一上午三场面试,每场45min。面试分别是coding,coding,behavior(包含coding)。上午面完,一起吃饭,逛campus,吃冰激凌,听讲座,发T-shirt,还是挺和谐的。就是面完觉得自己要跪,第二场面试没有给到最优解,欧洲小哥面试官直接move on到了下一题。过了两周(中间感恩节)的晚上,Youtube给拒信的同一天,hr说发了邮件给了好消息。

    Quora



    一轮on campus直接onsite。Quora on campus面试官是个小美女,第二题我没想到更好方法,她就各种指引,还好最后红着脸写出来了,她居然让我onsite了。Quora和Pure Storage在同一层,在mountain view的Castro street上。很喜欢那条街,暑假实习的时候在那吃喝很多家,哈哈。我感觉这个面试难度好高,中午开始面,四场连面4小时,全是coding。第一轮Practical Interview,给个开源项目和一些需求,让在1个小时内改完。自己看文档看了半天,哎太弱。第2,3,4轮都是coding,我觉得题目难度比较高。题目全部没见过(可能是我见得少= =),都是现想,有的给了hint才知道咋做。而且一下午连面4场确实特别累,面着面着就饿了。意料之中很快就收到邮件拒信了。我感觉这种公司geek很多,都是智商超高的人。面完第一轮就知道要跪了。

    Pinterest



    一轮on campus直接onsite。面Quora的第二天面的Pinterest,挺喜欢这家公司,公司氛围,装修什么的都很不错。上午1轮,下午3轮。可以因为前一天面Quora太辛苦了,面Pinterest不在状态。上午是oo design面试,他们叫做software architecture面试。午饭和一个abc妹子吃饭,时间很赶没吃完就到点了,那时候自己巨困。。下午是coding,culture fit,coding三场。最后一场coding是个中国姐姐,几年前在facebook干了几年,然后去了小于10人的小公司,现在跳到了pinterest。coding完我们聊到了职业选择的问题,我还挺佩服她的气魄的。Pinterest整体比较均衡,这样不会像Quora那样特别累,就是自己太困了。。面试官普遍很年轻,大多数都是刚入职不到一年的。

    Uber



    一轮电面直接onsite。Uber office整体感觉就是比较低调奢华的黑色的样子,楼上是Square总部,旁边是Twitter大楼(有种故地重游的感觉= =)。这家公司的结果让我出乎意料,居然给了offer。他们家的处理速度也很快,电面题目难度不高,主要聊聊天,上午电面,下午就给onsite了。onsite时我分到了infrastructure组面试,所以三个面试官都是infrastructure的人。因为behavior面试的manager那天有事,hr说等到我回sd再跟我打电话继续面这轮。其他三轮是coding,杂七杂八,coding。那个“杂七杂八”是面试官什么都问,从“在浏览器输入url发生什么”开始无限拓展,很多网络的东西我也不太懂,我只好多次说“sorry I don't know”。面完第二天hr打电话补面manager面试,第三天打电话给offer。说实话我非常喜欢Uber,office里面的装修感觉非常稳重,我也觉得公司发展很有潜力,我拿offer的时候Uber估值已经到40billion了。可是我觉得自己不能冒这个险,过两年等自己有本事再来吧。一想到自己放弃了这么难得的机会,就有点难过(= =)。不过既然选择了,就好好坚持吧。顺便吐槽下Uber的报销,真够慢的。

    电面的其他公司



    Airbnb



    曾经是我最想去的公司,可惜电面挂掉了。认识的很多人都是同一道题,可惜自己当时没做好。。哎

    Medallia



    这个公司比较奇怪,先是online challenge比较有难度,然后电面,我面试题不记得了。。就是感觉hr回邮件很慢,不怎么上心,还把我的邮编看成了电话号码。。

    Shopkick



    这个公司做的东西比较有意思,就是进超市收集点数然后换gift card那种app。题目不难,问的拓展难。问着问着我也怂了。第二天就收到了拒信。

    Snapchat



    这个公司据说给的offer股票超级多。印度哥面我的,主要是我答得不好,悲剧意料之中。

    Yahoo



    面试题非常简单。在jsfiddle上共享code,很奇怪的面试方式。和面试官聊的还挺愉快。就是消息给的太慢了。

    2sigma



    纽约一家金融技术公司,安排店面时间时我忘记了他们是东部时间,安排在了我这边早上7点。。面的code题不难,但是别的OS,算法什么的挺多。面完直接回笼觉。

    epic



    被很多人吐槽的公司诶。。online assessment纯看面经,然后电面不难。做online assessment挺费时间的。不过他们公司很友好,给我感觉不错。

    Microsoft (on campus)



    面试题很简单,面试官很nice。

    Infomatica(on campus)



    面的非常诡异。那也是面试官的第一次面别人的经历。。搞得我也很尴尬。后面的加锁的题答得很不好居然让我onsite了。

    关于面试官



    电面时中国面试官很少,印度人很多。只有Dropbox是中国面试官,一开口就是中文,还挺亲切的。onsite时中国面试官多起来了,虽然都说英文,但都非常友好。表示感谢!

    关于性别



    很多人说女生找CS工作有性别优势,我感觉比较赞同。

    先写这么多,想到什么再补上吧。面试经历还是挺有意思的,也借此机会去过这么多的有名的公司,拿到拒信也值得了。
    read more ››