Friday, April 8, 2016

How to Ace Software Interview - Misc



http://www.1point3acres.com/bbs/thread-144709-1-1.html
Big Data. 今年以来,我发现几乎所有公司的面试都不约而同的添加了大数据相关的问题,就连Walmartlabs的SDET职位的面试中都遇到了,不得不说大数据真是现在一个很猛的trend... 在面Bloomberg的时候就是因为大数据的问题不会而吃了亏挂了,回家以后恶补了很久... 
这里推荐这个blog,很多朋友都应该看过: http://blog.csdn.net/v_july_v/article/details/7382693
我很想知道写这个blog的是个怎样的人,真心膜拜... 他的总结几乎囊括了所有大数据方面的知识背景,实在赞叹. 对于这个帖子里面提到的知识点,他都有专门介绍的链接,全面又方便. 如果想面试无敌的话,每个知识点都要自己多查资料弄懂,每道题都自己过一遍. 对于里面提到的不同方法要多比较, 每种方法什么时候适用, trade off是什么都要清楚. 重中之重是Map Reduce和External sort.

Thread & Locks. 考得不多但是面ebay碰到了. 主要知识点: thread和process区别, multithread, lock, semaphore, 对resource分配, deadlock, 怎么解决/预防deadlock. 还有BlockingQueue 和 Producer-Consumer经典题要会implement.
这里有几个经典问题:
http://www.careercup.com/question?id=4783236498587648
http://www.careercup.com/question?id=5652784707796992

OOD. 老老实实实现了两遍Singleton, Factory, 还有MVC pattern. 设计一个class应该也算在OOD范围里: 写过无数遍LRU, Trie, Iterator, BST以及变种, BlockingQueue等等, 生怕被问到... 

System Design. 这个对不住大家,我最后没面到过系统设计,所以不太知道自己这点准备到底充不充分... 如果你要面Facebook几乎肯定是要考系统设计的,还是得好好准备. 一定要看FB的engineering blog, 看的越多越好. 基础的概念至少要会: load balancer, cache, memcache, consistent hashing, round robin, master slave, sharding, pre-computed, map reduce, difference with SQL/NoSQL.... 有很多牛人总结的系统设计帖,我就不多置喙了,这里推荐几个帖子..鐣欏璁哄潧-涓€浜�-涓夊垎鍦�http://massivetechinterview.blogspot.com/2015/06/itint5.html
http://www.mitbbs.com/article_t/JobHunting/32777529.html-google 1point3acres
http://blog.csdn.net/sigh1988/article/details/9790337. visit 1point3acres.com for more.
还有这个公开课,太棒了,新手入门必备,谢谢成哥推荐~ 
https://www.udacity.com/course/viewer#!/c-cs253/l-48737165

Resume. 就一点,要把自己简历上每个项目都弄熟, 写下项目介绍背下来, 这样被问到的时候可以张口就来. 也要把你要面试的单位的简介自己总结一遍背下来, 还有你为什么想来我们单位, 如果你有工作你为什么想跳槽, 你觉得为什么适合这个职位等等. 其实这些都是标答, 只要好好准备过一次就能适用于各个公司...


这里有一个我总结的软加分项. 尤其对妹子, 说实话妹子是可以很占优势的, 特别如果你是个漂亮妹子~ 你的性别,说话的态度,眼神,都可以成为你的加分项, 一定要利用这一点. 为什么我突然说这个,不是说这只是个锦上添花的事情,而是因为这个点非常重要,其实男生也一样. 一个面试官想要找的不仅仅是能够做出题的人,更需要的是找到一个合适的teammate. 你是不是好说话,是不是能聆听而不是一味反驳别人坚持自己,是不是能马上接纳别人,接受别人的idea并且有接受新知识的能力,从某些方面来说,比仅仅能做出来这道题重要得多. 所以面试的时候, 那天早上就告诉自己今天是去跪舔的,别耍态度,如果你是大神可以除外... 最好全程微笑,遇到不会的题的时候更要微笑. 把想题的过程全部说出来, 不能成为心理活动, 让对方知道你在非常努力的思考, 而且态度很好, 所以就算你没有完全想出来, 他是非常愿意给你hint的. 态度决定很多事,甚至人生. 


首先电面一般要简单些, 你leetcode才刷完一遍的话, 最好在这一周里多刷几道题, easy和medium为主, 不是说要背答案啥的,而是把这个手感维持下去,大脑处于勤思考的状态, 对面试帮助比较大.
最重要的是千万别紧张,就当做今天只是跟一个人一起做道题的这种心态就对了. 千万别学我,那么简单的题就是因为紧张,啥都不会了.... 涓€浜�-涓夊垎-鍦帮紝鐙鍙戝竷
面试的时候遇到新题,首先肯定是不会的...但是我的话一般会重复一遍这个问题, 问他这个问题和return值我的理解对吗? 这个过程就是找思路的过程,需要你对数据结构很熟悉(这里又要强调数据结构了咳咳...),题目无非就是用相关的数据结构解决. 你要看这道题给了你什么条件, 要求得到什么, 这时候你在脑子里就过一遍所有数据结构的特性, 哪种数据结构有一样的特点能用于这道题. 心里想了一遍之后, 一定要跟他说出来你刚才的思想过程, 即使不对他也会知道你在积极思考,而不是傻等着什么也不会. g家面试官是水平最高的, 看的就是你聪不聪明基础扎不扎实, 所以多说话总没错.
等你LC刷到第四遍你就懂了~ 在一次次因为小bug而run不过case以后,很多bug自己就都能发现了... bug free我觉得基本谁都做不到,但是自己快速发现并且解决它是很关键的.
刷到第四遍开始投简历. 因为是在职找工作所以只能准备的非常充分了才开始面的. 这样我保证了每一个phone interview都有onsite, 不会错过机会. 后来发现以赛代练效果也很好, 建议先拿一两个小公司练手, 因为第一次面试还不适应,很大可能会比较糟糕
http://www.1point3acres.com/bbs/thread-184804-1-1.html
如果面试的烙印问你简历里列出的最强的skill,那很有可能确实是想看看你的水平,
如果越问越深,那很有可能是好事情。这种情况下人家是想看你的水平到什么地方。你
不会的,就赶紧记下来,那怕这次废了,下次面试也用的上。

相反,如果烙印问你会什么技术,然后开始问你简历里面没怎么提到的,或者明显是你
在谈话中避免提及的弱项,那就要小心了。八成这是想要拿这个当作拒你的理由。

我的对策:对第一种,要详细的说,即使他好像已经听明白了你懂,也要继续详细的说
,把你懂的东西掰碎了,唾沫星子乱飞的对他喷。这样的好处有两个:第一,你懂的细
节他不一定懂,他没法说你在这方面欠缺什么。因为他自己都不知道。第二,少留给他
把你往沟里带的机会和时间。

对第二种,反问他你们是怎么用这个技术的?反问他细节。这种拿某种偏门技术为难人
的二货一般水平不怎样,你问的多了,他自己也会不自在。
然后你可以说我们的产品用类似的东西,blablalbabala.....
你做过***吗?奥,没有?我做过,我们是这么做的balabalbabalba......
你做过什么什么吗?做过?好啊,你们是怎么实现***的?你不知道?奥,没事,这种
应该这样实现,blablalbabala....

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts