Browsed by
Month: March 2011

新工作感受

新工作感受

已经在新单位工作两周了,感觉跟以前的工作的确不同,分这么几点说吧。 第一、没想到外企还有这么忙的,以前待的外企,基本上都是清闲得要命,基本上就没干什么事情,坐班车到单位,上上网,吃中饭,散散步,回来到单位打打台球,接着上上网,基本上就可以坐班车回家了。而现在这家单位,9点过到公司,基本上晚上9点才走,重要的是上班的时间也基本没有功夫上网开小差,都被繁重的工作压力压迫,不抓紧时间根本就完成不了。 第二、没想到工作几年后,又回到大学时代了。为什么这么说呢?公司的把办公的单位称为west campus,west很好理解就是在西边的意思,而campus通常是来描述大学的。公司内部,有自己的图书馆,有大小三个餐厅,每一层的茶水间里面,都有饮料和小吃,有娱乐休息时的xbox+kinect,还有台球+乒乓球。总之,就像一个小小的校园,当然,在Redmond的总部也叫campus,那里更是校园,虽然没有去过,但是据说里面走走都有可能迷路,可想而之设施更是齐全。除了硬件设置外,居然还有公司人搞的社团,一会儿有个什么网球社招人,一会儿什么瑜伽社招人;更绝的是,还有大学时代的那种某某人来讲座的事情,前不久还受到了一个摄影高手过来讲座的meeting request。简而言之,从软件上,都跟大学极其相似。 第三、感觉我母校毕业的人在这家公司还真少,当然不排除我初来驾到,还不甚了解。这件事源于我在搜索某某人参加的社团时,发现他有一个群组是叫什么什么大学校友会的,于是,我就搜索一下有没有我们学校的,结果是没有。而同事吃饭时,自我介绍,不是什么北大、中科院,就是什么北航、北邮的,倒是还没有遇到清华,不过肯定也不在少数。可怜的我还没有遇到校友。

c语言中函数参数的修改

c语言中函数参数的修改

惯性思维要不得。 void pointTest(Node* node){ Node* tmp = node; tmp = tmp->next; printf(“value is %d\n”, tmp->value); } 通常写代码是,我会在函数体加一个临时变量指向传递过来的参数,例如上面这个例子。 今天面试别人时,看到了这样的用法: void pointTest(Node* node){ node = node->next; printf(“value is %d\n”, node->value); } 这位兄弟显然直接就操作参数了,看到这种用法,感觉非常别扭。当时没有经过思索,就问了句你觉得你这样用能编译通过吗? 答案是显然的,是可以这么用的。 反编译后,输出如下内容 pointTest: .LFB2: pushq %rbp .LCFI0: movq %rsp, %rbp .LCFI1: subq $16, %rsp .LCFI2: movq %rdi, -8(%rbp) movq -8(%rbp), %rax movq 8(%rax), %rax movq %rax, -8(%rbp) movq -8(%rbp), %rax movl (%rax), %esi movl $.LC0, %edi movl $0, %eax call printf leave ret 可以看到,修改参数,就是修改栈上的内容,因此是没有问题的。下次要注意先思考再提问。

离开索尼爱立信

离开索尼爱立信

这周五就是在索尼爱立信的last day了。想想时间过得真快,一转眼三年多的时间就过去了。 索尼爱立信,是我第一次待这么长时间的公司。 第一次入职培训就被告知,一定要说全称索尼爱立信,索爱是深圳的一个厂商。 第一次接触大公司的process,原来干什么事情都有这么多标准。 第一次跟欧洲人近距离接触,原来他们也没有什么体味。 第一次带欧洲人去吃饭,居然想不起筷子怎么说。 第一次到北欧出差,原来国外的空气真的比北京好那么多。 第一次参加公司年会,巨大的会议厅里面坐满了人,公司同仁表演了精彩的节目,原来同事中卧虎藏龙。 …… 太多的第一次,太多的感悟和收获。 然而天下无不散之筵席。 去年,随着symbian淡出索爱历史舞台,我们原来symbian部门的同事们逐渐离开,看着饭团的人数越来越少,中午吃饭时能谈论IT业界话题的人越来越少,心中的失落却越来越多。 有人比喻离职就像分手,此话不假。越是想走,就越是想着它的好,熟悉的环境,熟悉的人群,熟悉的工作,一切都那么舍不得。终于,2011年做出的第一项重大决定,就是要离开公司,到外面看看。 机会源于某次接到猎头电话,问我考不考虑去美国工作,接着就是安排面试,跟对方大侃一通之后,拿到offer。陌生的坏境,我这时候反而犹豫了,到底去还是不去呢?终于还是决定去了,跟老板谈了想法,老板一番挽留,分析了一下去那儿的劣势,顺便请了他的老板来做思想工作,许诺加薪。 看来,去美国果然未必是最好的,家人也不支持,老板也不支持,自己也犹豫不决。开始启动找别的工作,年前接到微软电话,先是一轮面试,再是四轮复试,终于在年后不久拿到offer。这个时候,也开始yahoo的面试,跟微软很像,同样是一轮初试,四轮复试,pass,开始谈待遇。 结果呢?“被选择”去了微软。开始翻开新的一个篇章,一切都在继续……

各以1/2的概率输出0和1

各以1/2的概率输出0和1

在看CLRS中的第五章,发现课后的这道习题非常有意思。 题目:Suppose that you want to output 0 with probability 1/2 and 1 with probability 1/2. At your disposal is a procedure BIASED-RANDOM, that outputs either 0 or 1. It outputs 1 with some probability p and 0 with probability 1 – p, where 0 < p < 1, but you do not know what p is. Give an algorithm that uses BIASED-RANDOM as a subroutine, and returns an unbiased answer, returning 0 with probability 1/2 and 1 with probability...

Read More Read More

一个for语句的趣题

一个for语句的趣题

You should change one character to print “*” 42 times. You can replace, add or remove ONLY one character. Still i cant figured it, i’ve tried over and over again. #include main(){ int i,n = 42; for(i = 0; i < n; i--){ printf("*"); } } Answer 1. 改变循环变量符号。 #include main(){ int i,n = 42; for(i = 0; -i < n; i--){ //added a minus here printf("*"); } } 2. 改变循环条件 #include main(){ int i,n = 42; for(i = 0;...

Read More Read More