摘要: 禁忌一:恶意缺席接到面试通知,如果不能或不想出席,都应该在前一至三天用电话婉转地通知对方。许多求职者可能会认为,反正我已决定不去这家公司上班,何必和对方有所接触?这绝对是错误的观念,留下恶意缺席的印象,对你日后要在这个行业中发展,一定有所影响。禁忌二:不守时面试时的守时十分重要,迟到是绝对不可原谅的行为,代表你对这家公司根本不重视。太早到也不好,面试官可能有别的事情,还要应付你的突然出现。禁忌三:穿着邋遢不管你应征何种类型的工作,穿着是给别人留下第一印象的机会。即使是所谓创意型的人员,邋遢、不修边幅的着装,还是不易令人亲近。是不是西装革履其实并不重要,要把握干净、整洁的原则,才能留下好印象。禁 阅读全文
posted @ 2011-05-01 10:07 ForA 阅读(435) 评论(0) 推荐(1) 编辑
摘要: 清晰是革命的本钱2011-04-25腾讯二面终笔试:笔试觉得做的还可以一面:凸显出写代码能力差,慌乱,没有整体清晰思路。对OS,linux不熟可能也是败笔二面:讲述自己做的项目,另问2亿张图片如何存储?如何将项目与此问题结合起来。说了一通,表现出天马星空,逻辑性差。凸显问题:把当前问题应用用该项目的解决办法并未最佳,在讲述之后应予以说明,另有更好的方法。第二,可以参考Facebook的图片存储方案。暴露:天马行空:表现出逻辑性差,讲述模糊晰,不能给对方一个清晰的认识基础不扎实:双链表的合并写出的代码乱七八糟,考虑问题不全面不自信,或者轻浮。真诚对待“你”时刻要体现出团队合作的意识解决:key- 阅读全文
posted @ 2011-04-29 23:04 ForA 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 最常用的设计模式设计模式通常是对于某一类的软件设计问题的可重用的解决方案,将设计模式引入软件设计和开发过程,其目的就在于要充分利用已有的软件开发经验。最常用的设计模式根据我的经验我把我经常用到的设计模式在这里做个总结,按照我的经验,它们的排序如下:1)单件模式、2)抽象工厂模式和工厂模式、3)适配器模式、4)装饰模式、5)观察者模式、6)外观模式 其他模式目前还很少用到。单件模式这是用的最多的模式,每一个正式的软件都要用它,全局配置、唯一资源、还有一个就是所有的工厂我都设计为单件模式,因此它的使用量大于工厂模式和抽象工厂模式之和。是用来创建一个需要全局唯一实例的模式。只是需要纠正一点。sing 阅读全文
posted @ 2011-04-29 15:20 ForA 阅读(35479) 评论(1) 推荐(4) 编辑
摘要: strok的实现,分割字符串char *xl_strtok(char *s, const char *dm) { static char *last; char *tok; if(s == NULL) s = last; if(s == NULL) return NULL; tok = s; while (*s != '\0') { while (*dm) { if (*s == *dm) { *s = '\0'; last = s + 1; break; } s++; } } return tok;} 阅读全文
posted @ 2011-04-28 18:22 ForA 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1. 给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)。 解:先选中前k个,从第k+1个元素到最后一个元素为止,以k/i(i=k+1, k+2,...,N)的概率选中第i个元素,并且随机替换掉一个原先选中的元素,这样遍历一次得到k个元素,可以保证完全随机选取。这个算法叫做蓄水池抽样,在某门课上听到的,证明起来也不是很复杂。 证:最后一个元素选中概率=K/N,倒数第2个元素选中概率=(K/N-1)*(1-(K/N)*(1/K))=K/N,以此类推……2. 阅读全文
posted @ 2011-04-26 20:48 ForA 阅读(497) 评论(0) 推荐(0) 编辑
摘要: C++代码,发现异常没那么简单,使用须谨慎。翻阅了《Effective C++》 《More Effective C++》《Inside The C++ Object Model》的相关章节,大概弄明白了一些东东,总结在本文。本文不是总结普适的C++异常机制,还没有这个内力哈! 主要是结合构造函数和析构函数,来总结异常对他俩的影响。构造函数和析构函数本来就很折磨脑筋,再叠加上异常机制,确实比较复杂。异常与析构函数本节内容较少,因此先说。构造函数放到下一节讨论。绝对不要将异常抛出析构函数这一条在《Effective C++》 《More Effective C++》中均被作为独立章节讲解,可见其 阅读全文
posted @ 2011-04-26 20:09 ForA 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 问的问题很多,以下是脑中还有印象的面试题。一面:为什么应聘测试开发的职位?介绍下你的keyvalue存储项目。这个项目有什么改进的思路,如何做?分布式!window进程间通信的方式WPF有什么缺点编程题:如何判断一个数组的前K大的数假设client与server的应用程序进行通信时发生故障了(原来没有问题,现在不能通信了),而client打开浏览器可以正常访问互联网,你是如何采取方法,最快找出问题的所在为什么要选嵌入式开发这个职位?看好它的前景曝露出的问题:在不了解面试官需求的情况下,多问几个为什么。二面:你给自己的C++水平打多少分(满分10分),为什么虚析构函数可能抛出异常吗?如果不可以, 阅读全文
posted @ 2011-04-26 19:48 ForA 阅读(1460) 评论(0) 推荐(0) 编辑
摘要: 以 ssize_t write(int filedes, const void *buff, size_t nbytes)和size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp)来讲讲自己对unix系统下带缓存的I/O和不带缓存的I/O的区别。首先要清楚一个概念,所谓的代缓存并不是指上面两个函数的buff参数,而是指unix系统在内核中所设的缓冲存储器。当将数据写到文件上时,内核先将该数据写到缓存,如果该缓存未满,则并不将其排入输出队列,直到缓存写满或者内核再次需要重新使用此缓存时才将其排入输入队列,待其到达对首,在 阅读全文
posted @ 2011-04-25 22:03 ForA 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 按层次遍历树中结点void LayerOrderTraverse(BiNode* T){ Queue<Node *> q; if(NULL == T) return; q.push(T); while(!q.isEmpty()) { T = q.pop(); printf("%d ",T->data); if(T->lchild) q.push(T->lchild); if(T->rchild) q.push(T->rchild); }} 阅读全文
posted @ 2011-04-24 23:09 ForA 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 淘宝开源Key/Value结构数据存储系统Tair技术剖析编辑点评:Tair在淘宝开源平台上正式对外开源,本文较详细地介绍了Tair提供的功能及其实现的细节,希望对大家进一步了解Tair有所帮助。 Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。 Tair于2010年6月30号在淘宝开源平台上正式对外开源,本文较详细地介绍了Tair提供的功能及其实现的细节,希望对大家进一步了解Tair有所帮助。 Tair的功能 Tair是一个Key/Value结构数据的解 阅读全文
posted @ 2011-04-23 20:51 ForA 阅读(406) 评论(0) 推荐(0) 编辑