What to Expect from the DropBox Interview Process | Paysa



What to Expect from the DropBox Interview Process | Paysa

Dropbox jobs are some of the most coveted in all of tech, and it's no surprise. Not only does Dropbox offer some exceptional perks to its employees, it also ranks among Paysa's top companies for tech talent.


Read full article from What to Expect from the DropBox Interview Process | Paysa


(9) How does it feel to not get a return offer from the company you interned in? - Quora



(9) How does it feel to not get a return offer from the company you interned in? - Quora

For a company with a 85% return offer rate, I thought that I would get a full time offer for certain. But this experience has taught me that not to take anything for granted.

During my internship:

  • I sent long, sloppy code reviews to my mentor (~1000 lines of code/review)
  • I skipped some team meetings to work on my project
  • I didn't take the time to fully understand Amazon's internal build and deployment systems.

As you can see, I was, simply put, was not a "polished and ready" Software Engineer at the time. Like some others, I was lost in the company trying to find the information that I needed for my projects. For me, I know that there is a lot for me to improve and not getting an offer this time has actually helped me grow more than if I had gotten an offer.

Read full article from (9) How does it feel to not get a return offer from the company you interned in? - Quora


Interview Notes - Dropbox – Dropbox Paper



Interview Notes - Dropbox – Dropbox Paper

  • Some examples of things that greatly help us understand your technical abilities are
  • Github projects
  • Open source contributions
  • Apps, websites, or other side projects that you built for fun
  • Papers that you have published
  • Products that you have worked on in the past
  • Links to your blog or any other technical writing
Our interviewers will try to make time in every interview to chat about your achievements
so that we can understand your unique strengths as an engineer. We hope you'll be
excited and ready to tell us about your past work.


Read full article from Interview Notes - Dropbox – Dropbox Paper


RocketReach Chrome Extension



RocketReach Chrome Extension

Install the chrome extension. Get 5 additional lookups.


Read full article from RocketReach Chrome Extension


Technical Program Managers vs Product Managers vs Product Managers - Technical vs Engineering Managers - Technical Program Management



Technical Program Managers vs Product Managers vs Product Managers - Technical vs Engineering Managers - Technical Program Management

Engineering Manager (EM)

Goal: a) Architecture and upkeep the service, b) Hire and build the best possible team. (UpKeep translates to having a highly scalable and reliable service that has not downtime)

It's a three-dimensional thinking of keeping technology, people and the organization in mind. The development team reports to the engineering manager. The EM in conjunction with the technical architects on the team come up with coding standards, technologies that need to be used, architectural patterns, heuristics of the services and finally the vision for the microservice(s) as it evolves.

An Engineering Manager also focus a lot of their time on hiring for their team especially in recent days when devs move around quite a bit. Basically hiring, firing and performance and expectation management. A great deal of effort is also spent in coaching and honing the talent you already have.


Read full article from Technical Program Managers vs Product Managers vs Product Managers - Technical vs Engineering Managers - Technical Program Management


email - Why can't I POP from one Gmail account to another? - Super User



email - Why can't I POP from one Gmail account to another? - Super User

I guess Google considers their own client 'insecure'. Try allowing access for 'less secure apps': https://www.google.com/settings/security/lesssecureapps


Read full article from email - Why can't I POP from one Gmail account to another? - Super User


【新提醒】在职跳槽薪资谈判的一些心得【一亩三分地求职版】 -



【新提醒】在职跳槽薪资谈判的一些心得【一亩三分地求职版】 -

第一次跳槽我没有competing offer
没有刷题太多,面了三家公司只拿到一个offer
但是我还是谈到了还不错的包裹
我觉得谈判这件事,越不在乎的人才会赢
有一个词叫做BATNA
Best Alternative To a Negotiation Agreement.
简单来说就是当谈判破裂时的最好结果是什么?
假设谈包裹的时候谈崩了,后果是否可以承受?
例如手上有两个offer,一个就算被收回. 1point3acres
你还有另一个
而在职跳槽时,你的BATNA就是你现在的工作

我去年跳槽的时候,只有一个offer,但是我谈判时底气很足,因为我当时在亚麻的工作就是我的BATNA
我手上还有的unvested RSU是我的底牌
要我放弃亚麻的工作跳槽,当然至少要超过我现在的收入
而recruiter唯一的目标是让你接受offer
至于包裹如果能压低,当然对他们而言是最好
但是就算要给出高球包裹,对于recruiter来说,也没有任何损失. From 1point 3acres bbs
除非你要求的数字远高于改级别能到的级距

当你通过面试,recruiter要给你数字之前
他们一般会想要你先提出期望值
这时候先出手的会居于弱势
你应该要避免提出一个详细的数字
原因自然是避免低球自己,或是高的不合理的数字,可能会导致对方直接放弃
站在应征者的立场,你要想办法堆高对方的成本,成本越高他们越难放弃
如果你经历了电面,昂赛,谈判好几轮
他们放弃你要面对的成本损失越来越大
所以对你的要求就越来越难以拒绝

Read full article from 【新提醒】在职跳槽薪资谈判的一些心得【一亩三分地求职版】 -


涤生的博客



涤生的博客

这篇文章讲的是百度在数年前要求每个入职的工程师必须被灌输的六个职场意识,这六个意识非常有价值,不管对技术 leader 还是职场小白都应该非常有指导意义。 

Read full article from 涤生的博客


Apache Spark 社区期待的 Delta Lake 开源了 – 过往记忆



Apache Spark 社区期待的 Delta Lake 开源了 – 过往记忆

2019年4月24日在美国旧金山召开的 Spark+AI Summit 2019 会上,Databricks 的联合创始人及 CEO Ali Ghodsi 宣布将 Databricks Runtime 里面的 Delta Lake 基于 Apache License 2.0 协议开源。Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来可靠性。Delta Lake 还提供内置数据版本控制,以便轻松回滚。目前 Delta Lake 项目地址为 https://delta.io/,代码维护地址 https://github.com/delta-io/delta


Read full article from Apache Spark 社区期待的 Delta Lake 开源了 – 过往记忆


都是脏数据惹的祸 – ThoughtWorks洞见



都是脏数据惹的祸 – ThoughtWorks洞见

"小光,今天那个诡异的生产环境问题找到原因了吗?"

"还是数据问题!之前做的一个功能有一部分数据迁移工作没有做好,导致生产环境有脏数据,委托人的联系人已经不为该委托人服务了,应该移除掉的……"

"又是脏数据……"

"嗯,好在不是代码问题。"

这是在蓝鲸项目发生的真实对话。其中提到的脏数据(Dirty data),也叫坏数据(Bad data),通常是指跟期待的数据不一样、会影响系统正常行为的数据。

蓝鲸项目的QA会定期分析生产环境的缺陷,当定位某个缺陷为脏数据引起之后,往往就到此为止了。生产环境下的缺陷分析流程是这样的:


Read full article from 都是脏数据惹的祸 – ThoughtWorks洞见


算法:零钱兑换 | Beck's Blog



算法:零钱兑换 | Beck's Blog

给定不同面额的硬币(coins)和一个总金额(amount) 。写一个函数来计算可以凑成总金额所需的最少的硬币个数,如果没有任何一种硬币组合能满足,返回 -1。


Read full article from 算法:零钱兑换 | Beck's Blog


How Do I Remove A Saved Autocomplete URL From Chrome For Mac?



How Do I Remove A Saved Autocomplete URL From Chrome For Mac?

Removing an autocomplete URL from Chrome for Mac can be done in two short steps. First, highlight the URL in your address bar at the top of Chrome. Next push the following three keys: FN + Shift + Del. The URL should then be remove from the autocomplete list. If the URL still appears in your browser history, try restarting the browser.


Read full article from How Do I Remove A Saved Autocomplete URL From Chrome For Mac?


【新提醒】Google内部换组经历 + AMA【一亩三分地求职版】 -



【新提醒】Google内部换组经历 + AMA【一亩三分地求职版】 -

可能要升职,升职后的第一个rating一般都会默认拿meet。换组之后的第一个rating也一般都会拿meet。所以这个时候留下或走对rating没有区别。很多人会在这个时候换个自己更喜欢的组。LZ准备从SETI组换到SWE组。

Q:关于要换组走人的事,和现任manager怎么沟通?
理论上公司推荐从一开始就告诉现任manager,但考虑到不想让performance review受到影响,大多数人还是先联系好新组,在最后才告诉现任manager。

Q:提前多久开始联系新组比较合适?
至少两个月,一个月挑挑拣拣,一个月transfer knowledge。建议提前三个月。

Q:联系了多少组?都是什么组?
30+个组,从Cloud, Geo, shopping,Android, Search 到 Ads。除了最火热的ML和无人车,把其他部门都了解了一遍。也聊了两个苏黎世的组。

Q:具体怎么联系各种组?
在内部hiring网站上看各种招人的post,直接给hiring manager发邮件要求1:1,同时在内网上把performance history share给hiring manager。

Q:怎么1:1?
在Calendar开个半小时的private的session。我一般每天聊1到2个组。聊完经理,如果感兴趣,继续聊经历底下的tech lead。

Q:hiring manager招人看什么?
我这里只能谈谈个人感觉,可能不准确。一般来说是看过去的rating。Exceed会达标,Strongly exceed及以上会抢着要。
但有的需要特别技能的组就会看你会不会它的那个技能,比如IOS,ML。

Q:SETI换SWE难吗?
只要rating好,大多数没障碍,毕竟做的东西很相似。
一大半的组有positive signal,会不断来问我的状态。有一些manager明确的跟我说随时可以proceed。
我也遇到一个manager跟我说不愿意收SETI。这毕竟是个双向选择,不愿意给机会的组也不应该去。

Q:在年终bonus和refresh之前换组,compensation有没有收到影响?
感觉有一些,在同rating的人里面没有见到比我拿的低的,但也只是低几千,个人不很在意。compensation的一大部分都是由rating决定的,manager只有很小的influenc。

Read full article from 【新提醒】Google内部换组经历 + AMA【一亩三分地求职版】 -


【新提醒】上岸撒花and在职跳槽时间线【一亩三分地求职版】 -



【新提醒】上岸撒花and在职跳槽时间线【一亩三分地求职版】 -

18年6月仓促中入职湾区某养老院,进去才发现里面的developer都是40+yr,relaxed,no ambition,mediocore and everyone is happily lowballed. 第一天就决定跳槽。

18年12月面狗家,再次被fail,决心认真刷题

19年1月16号L家recruiter intro call. 申请ML/Data miniing track

19年2月20号电面,经典unfair coin sampling+ML基础问题。

19年2月26号postive feedback, move forward to oniste.. check 1point3acres for more.

19年4月3号onsite,6 rounds:
1.Host manager round:Previous ML projects+BQ. 上天眷顾,楼主刚好有一篇nature communication的ML paper三天前accepted,拿来刚好用来impress host manager. 后来事实证明,host manager这一轮是所有面试中最最最重要的一轮。因为之前没有任何在大厂工作的经验,加上当时的公司非常偏silicon,所以HC在review的时候有非常多的concern(尽管所有6轮面试都基本上很顺利的crack了)。最后Host manager最后strongly vouch for楼主, 得以最终顺利过关。

2.Coding轮,一道string replacement,一道max stack。一位香港大哥,一位同学校的学弟shadow。没记错的话我应该还TA过他....

3.吃饭。白人小哥和同学校学弟again.....闲聊扯淡顺利结束。. check 1point3acres for more.

4.Data coding. 法国小哥, MIT PhD at Pure math,各种概率统计问题, 时间有点久我已经忘了具体问了什么了,反正就是各种推导证明,完全无coding

5. ML System Design, 国人姐姐加国人小哥shadow。基本就是google wide+deep model的推荐系统

6. Data mining. 香港小哥,Bayesian Optimization, Bayesian Inference, Gaussian Process Regression, SVM, Generalized Linear Model, exponential family,  Logistic Regression, Tree model and emsembles. CNN, RNN, DNN. How to tune each of them, regularization, why it works, lagrange multiplier,  etc.....非常杂非常多。建议面ML的小伙伴,一定要把所有常见的model全部都手推一遍。特别是有probabilistic interpretation的,一定要知道是如何推导的。

所有面试的提问环节,最好根据每位面试官的team不同,提出不同的specific的问题。听起来很难,但是实际上稍微跟一跟这些大厂在KDD,NIPS,ICML这几年的pape, talk以及linkedin的engineering blog仔细翻一遍,想几个比较relevant的问题,就很容易impress面试官。比如MIT小哥做optimization, 刚好KDD18 linkedin有一篇multi-objective optimization的paper用gaussian process regression的,针对自己没看明白的几个部分随便问问,小哥开心的不得了。host manager做search的,KDD16/17 Linkedin做了deep personalized search的tutorial然后host manager之前也有search quality的talk,看一遍把主要idea和问题熟记在心,交流起来顺畅无比。总结下来就是要真的跟一跟ML这个领域最新的progress才真的能应付的得心应手。

19年4月15号过HC开始team match

19年4月19号match到三个team

19年4月23号三轮team matching chat-baidu 1point3acres

Read full article from 【新提醒】上岸撒花and在职跳槽时间线【一亩三分地求职版】 -


(29) Out of Linkedin Invites? 3 Ways to Get More | LinkedIn



(29) Out of Linkedin Invites? 3 Ways to Get More | LinkedIn

1, Withdraw Requests From Your  Sent Box

This is a manual process and takes quite a bit of time. However, it's worth it to "free up" those invitations that aren't being accepted.

To do this: Go to Contacts > My Connections. Then at the bottom right hand corner of your connections box, you'll see a link for "unsent invitations".


Read full article from (29) Out of Linkedin Invites? 3 Ways to Get More | LinkedIn


【新提醒】如何利用信用卡度过难关 经验贴【一亩三分地生活版】 -



【新提醒】如何利用信用卡度过难关 经验贴【一亩三分地生活版】 -

1. 通过已有的信用卡的低利率活动来消费或还钱
如字面意思,一些信用卡会时不时开一些低利率转账活动,也就是balance transfer来鼓励消费,目前已知的两个常用卡有discover和chase freedom。

Discover: 给了两个选择,3%transfer fee,0%年利率12月还清,0%transfer fee, 5.99%年利,18个月还清。根据个人情况选择,比如你确认半年内能还清的话,第二种就会划算些,因为没有transfer fee,只要半年内给清,利息给的肯定比3%少。discover的额度可以直接转到存储银行里。

Chase: 0%年利,3%-4%transfer fee,这个比较水,只能还其他信用卡,不能直接转到debit卡上。如果有正常信用卡还不完的情况下,用这个也是不错的。
. 1point3acres
另外还有citi AAdvantage Platinum里程卡的2%年利息加上3%transfer fee,不过这卡比较少见福利也不咋地还有年费,不建议申请。

Read full article from 【新提醒】如何利用信用卡度过难关 经验贴【一亩三分地生活版】 -


Atom is the best Markdown editor for me – Naoki Takezoe – Medium



Atom is the best Markdown editor for me – Naoki Takezoe – Medium

I think that editing tables is the most troublesome work in markdown editing. atom-csv-markdown was made by me. It can convert selected region of CSV in the editor to markdown table.


Read full article from Atom is the best Markdown editor for me – Naoki Takezoe – Medium


成为技术领导者



成为技术领导者

最近在帮测试组招人,所以想聊聊面试相关的一些心得。


对于管理者来说,打造一支优秀的团队需要做的东西实在太多,而选好人是第一步,选人最好的方式当然是内部推荐和提拔,但是最主要的渠道还是要靠招聘,所以如何在面试中挑选优秀的人才,是作为管理者必须学好的一个环节。


我当管理这几年面的人也不少了,坦白说,面试这个东西也挺讲究运气,短短几十分钟、甚至十几分钟要成功判断一个人是否合适真的很难,特别是我们这些专业技能性的人才选拔,需要管理者自己本身就具备一定的功底以及技巧,然而即使这样,很多时候也还是会有"凭感觉"、"靠眼缘"这些碰运气的成分。但运气也是有概率的,面试的时候,管理者的经验和技巧能大大提高这种概率。


Read full article from 成为技术领导者


成为技术领导者



成为技术领导者

最近在帮测试组招人,所以想聊聊面试相关的一些心得。


对于管理者来说,打造一支优秀的团队需要做的东西实在太多,而选好人是第一步,选人最好的方式当然是内部推荐和提拔,但是最主要的渠道还是要靠招聘,所以如何在面试中挑选优秀的人才,是作为管理者必须学好的一个环节。


我当管理这几年面的人也不少了,坦白说,面试这个东西也挺讲究运气,短短几十分钟、甚至十几分钟要成功判断一个人是否合适真的很难,特别是我们这些专业技能性的人才选拔,需要管理者自己本身就具备一定的功底以及技巧,然而即使这样,很多时候也还是会有"凭感觉"、"靠眼缘"这些碰运气的成分。但运气也是有概率的,面试的时候,管理者的经验和技巧能大大提高这种概率。


Read full article from 成为技术领导者


系统的请求量突然增大数倍怎么办? - 简书



系统的请求量突然增大数倍怎么办? - 简书

一般的业务服务系统大体上就是通过网络远程对DB进行读写。如果流量突然飙大,总有一个资源会遇到瓶颈。按照经验大概出问题地方是DB磁盘io、CPU、带宽、连接数、内存其中的一个或几个。不同的业务,不同的系统设计,出问题的地方会有所不同。如果流量增大数倍,势必某个资源会在瞬间被榨干,然后所有的服务都会"开小差",引起用户的抱怨。而解决问题的关键,是在问题发生时,尽量减少出问题的资源被访问。


Read full article from 系统的请求量突然增大数倍怎么办? - 简书


比昂日记



比昂日记

在《Growth Hacker is the new VP Marketing》中,Growth Hacker开始引起关注,在文中增长黑客试图用更巧妙的方式解答产品得以增长的奥秘,建立帮助产品增长的长效机制。他们常用的手段包括A/B测试、搜索引擎优化、电子邮件召回、病毒营销等,在此基础上,他们依赖直接营销,量化指标,场景建模,和大量的数据查询。这是一群以数据驱动营销、以市场指导产品,通过技术化手段贯彻增长目标的人。他们既了解技术,又深谙用户心理,擅长发挥创意、绕过限制,通过低成本的手段解决初创公司产品早期的增长问题。


Read full article from 比昂日记


姜胡说



姜胡说

如果有现成的书籍最好,课程也可以。没必要真上,扫一眼差不多就八九不离十了。

刚才我在网上看到一个增长黑客的课程。咱就以它为例吧。

直接去亚马逊上搜一下关于增长黑客的书。

如果有创始人写得最好。

如果没有就找几个评价五星的书籍。

不用买,只看目录就好。


一本书的目录基本上就是该书作者对这个知识体系的解构。

如果不是,

那这本书就不用看了。

太水。


如果有好几本,那就更好了。


Read full article from 姜胡说


机器之心



机器之心

找到并加入你感兴趣的社区——freeCodeCamp、CodeNewbies、100DaysOfCode 都不错!你还可以参加一些你所在城市的线下聚会。详情见 meetup.com。


这也可以让你建立关系网。这个网络基本是由你所在行业认识的一群人组成的。为什么关系网很重要?假设你想跳槽。通过网络,别人可能会推荐特定的职位给你,甚至可能向一些公司推荐你。这让你在面试中有了坚实的优势,因为有人为你担保,这样你就不再只是「一叠简历中的一个名字」。


Read full article from 机器之心


Dealing with Solr's "404 Not Found" response - makandra dev



Dealing with Solr's "404 Not Found" response - makandra dev

When your Solr seems to be started properly (a process is running with the correct data directory) but never responds properly and replies (via the API or web interface) with…
404 "Not Found"

… check if Solr's log directory is actually writable for the user running it.


Read full article from Dealing with Solr's "404 Not Found" response - makandra dev


Uber's RIB中文翻译 – XuYanci



Uber's RIB中文翻译 – XuYanci

Uber基于一个简单的概念:按下按钮,乘坐。一开始是请求优质黑车,现在提供一系列的产品,协调着每天成千上万的搭车在上百城市的车。我们需要重新定义我们的移动框架来响应和支持2017以及将来的真实情况。

但是从哪里开始呢?很好,我们回到我们开始的时候2009:一无所有,我们决定完全重写以及重新设计我们的app。不被我们以前的庞大代码库以及设计来约束我们,我们有了很大的自由,而不需要妥协。结果就是你现在看到的新app,同时实现了跨iOS和android平台的移动框架。来学习我们的框架,看我们为什么需要它,来看它怎样达到我们的目标的!


Read full article from Uber's RIB中文翻译 – XuYanci


深夜里的程序猿



深夜里的程序猿

老王是某公司的苦逼Java开发,在互联网行业中,业务总是迭代得非常快。体现在代码中的话,就是v1.0的模块是单线程执行的,这时候使用HashMap是一个不错的选择。然而到了v1.5的版本,为了性能考虑,老王觉得把这段代码改成多线程会更有效率,那么说改就改,然后就愉快的发布上线了。


Read full article from 深夜里的程序猿


面试题61:斜率最大的那条线通过的两个点 - tianya_team - CSDN博客



面试题61:斜率最大的那条线通过的两个点 - tianya_team - CSDN博客

平面上有N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点,斜率不存在的情况不考虑。

思路:

可以先将N个点按x进行排序。

斜率k最大值为max(斜率(point[i],point[i+1])) 0<=i<n-2。

时间复杂度:O(nlgn)


Read full article from 面试题61:斜率最大的那条线通过的两个点 - tianya_team - CSDN博客


【   】脸家店面+昂赛【一亩三分地美国面经版】 -



【   】脸家店面+昂赛【一亩三分地美国面经版】 -

1. 设计一个搜索的auto completion功能(这轮没答很好,感觉如果挂的话这个是主要挂点)
2. BQ + 一个很简单的已知收入和税率表,求个人所得税的问题,一遍循环就好了
3. 第一题撕遛散。第二题感觉做过但找不到了,就是给k个sorted list,让做一个iterator,实现next和hasNext功能,用一个heap做,时间logK
4. 第一题 抛硬币,直到抛出三个连续的正面就停止,求一个所需要抛的次数的期望。这题有点诡异,我心说这是数学题啊,面试官紧接着就说你不用按数学方法解,我只要求你给一个简单的程序的解法。我说那我模拟一千次求个avg?他说可以呀。我就写了一下。写完之后他说看起来没问题,那我有个小问题,为啥是一千次。我有点懵,没啥理论依据就觉得n=1000差不多足够大了?他说怎么知道他足够大了呢?我卡了一下,给画了个函数图像,分析了一下这个样本容量跟结果之间的关系,越大越趋近于数学结果,足够大之后再做更多尝试的意义就没有那么明显了。他说如果我们有个精度,要求误差控制在精度以内,你怎么确定这个数是ok的?我又卡了,然后写了第二个方法调用之前的方法,跑十遍求最大最小值的差值是否小于精度的两倍,如果不是的话就尝试把那个n*10再来一遍直到满意为止。他开始理解错了,解释了五分钟然后发现自己理解错了,说哦那可以可以这样应该是work的,就是可能不那么高效。然后还没等我反应他就说那好咱们来看下一题。。。
第二题,伞玲死变形,数字只有01没有别的,不过做法是一样的。这题他纠结了一下我写java的有的地方没写public,可能也是一个潜在挂点?

Read full article from 【   】脸家店面+昂赛【一亩三分地美国面经版】 -


(99+) Explanation for Java O(n) time & O(1) space solution - LeetCode Discuss



(99+) Explanation for Java O(n) time & O(1) space solution - LeetCode Discuss

To have O(1) space solution, we have to drop the stack. To see why we can drop it, we need to reexamine the main purpose of the stack: it is used to hold temporary results for partial expressions with lower precedence levels.

For problem 224. Basic Calculator, the depth of precedence levels is unknown, since we can have arbitrary levels of parentheses in the expression. Therefore we do need the stack in the solution.

However for the current problem, we only have two precedence levels, lower level with '+' & '-' operations and higher level with '*' & '/' operations. So the stack can be replaced by two variables, one for the lower level and the other for the higher level. Note that when we are done with a partial expression involving '/' & '*' operations only, the result will fall back to the lower level.

Now let's look at each level separately.

First of course we will have a variable "num" to represent the current number involved in the operations.

For the lower level, we use a variable "pre" to denote the partial result. And as usual we will have a variable "sign" to indicate the sign of the incoming result.

For the higher level, we use a variable "curr" to represent the partial result, and another variable "op" to indicate what operation should be performed:

  1. If op = 0, no '*' or '/' operation is needed and we simply assign num to curr;
  2. if op = 1, we perform multiplication: curr = curr * num;
  3. if op = -1, we perform division: curr = curr / num.

The key now is to figure out what to do depending on the scanned character from string s. There are three cases:

  1. A digit is hit: As usual we will update the variable "num". One more step here is that we need to determine if this is the last digit of the current number. If so, we need to perform the corresponding operation depending on the value of "op" and update the value of "curr" (It is assumed that we are at the higher precedence level by default);
  2. A ' * ' or '/' is hit: We need to update the value of "op" and reset "num" to 0;
  3. A '+' or '-' is hit: Current higher precedence level is over, so the partial result (which is denoted by "curr") will fall back to the lower level and can be incorporated into the lower level partial result "pre". And of course we need to update the "sign" as well as reset "op" and "num" to 0.


Read full article from (99+) Explanation for Java O(n) time & O(1) space solution - LeetCode Discuss


(13) What is the best answer of the question 'why do you want to join Facebook?' while you are interviewed at Facebook? - Quora



(13) What is the best answer of the question 'why do you want to join Facebook?' while you are interviewed at Facebook? - Quora

For Technology people: I love being able to implement the newest possible technoloies or even come up with my own development language by working on some problem that will help entire tech community. I would suggest reading "Chaos Monkey" by Antonio Garcia. It hits on the culture of Facebook. Who ever thought that Facebook will ever reach more than million facebookers. It is all about thinking fast and acting faster on it.


Read full article from (13) What is the best answer of the question 'why do you want to join Facebook?' while you are interviewed at Facebook? - Quora


Google Drive: Embed a PDF - Teacher Tech



Google Drive: Embed a PDF - Teacher Tech

If you have PDF's in Google Drive and want to embed them on a website (such as WordPress) you are able to get the embed code.


Read full article from Google Drive: Embed a PDF - Teacher Tech


Intro to Priority Queues – HiredInTech – Medium



Intro to Priority Queues – HiredInTech – Medium

Think about a regular queue in a supermarket. People come at one end along with their groceries and move forward until they reach the cash register. Once everything is paid for, the person leaves the queue and everyone behind can move forward by one position. Now imagine a supermarket in which people who have special client cards can bypass people in the queue who don't have such cards and get served earlier. These special card-owners have higher priority than the unlucky ones who haven't had a chance to get a card. This queue is a priority queue because people don't come out of the queue necessarily in the same order in which they've arrived but rather based on the priority that they have.


Read full article from Intro to Priority Queues – HiredInTech – Medium


Asynchronous Processing in Web Applications, Part 1: A Database Is Not a Queue – CodePath



Asynchronous Processing in Web Applications, Part 1: A Database Is Not a Queue – CodePath

When hacking on web applications, you will inevitably find certain actions that are taking too long and as a result must be pulled out of the http request / response cycle. In other cases, applications will need an easy way to reliably communicate with other services in your system architecture.

The specific reasons will vary; perhaps the website has a real-time element, there's a live chat feature, we need to resize and process images, we need to slice up and transcode video, do analysis of our logs, or perhaps just send emails at a high volume. In all the cases though, asynchronous processing becomes important to your operations.

Fortunately, there are a variety of libraries across all platforms intended to provide asynchronous processing. In this series, I want to explore this landscape, understand the solutions available, how they compare and more importantly how to pick the right one for your needs.

Asynchronous Processing

Let's start by understanding asynchronous processing a bit better. Web applications undoubtedly have a great deal of code that executes as part of the HTTP request/response cycle. This is suitable for faster tasks that can be done within hundreds of milliseconds or less. However, any processing that would take more then a second or two will ultimately be far too slow for synchronous execution. In addition, there is often processing that needs to be scheduled in the future and/or processing that needs to affect an external service.


Read full article from Asynchronous Processing in Web Applications, Part 1: A Database Is Not a Queue – CodePath


Optimizing web servers for high throughput and low latency | Dropbox Tech Blog



Optimizing web servers for high throughput and low latency | Dropbox Tech Blog

This is an expanded version of my talk at NginxConf 2017 on September 6, 2017. As an SRE on the Dropbox Traffic Team, I'm responsible for our Edge network: its reliability, performance, and efficiency. The Dropbox edge network is an nginx-based proxy tier designed to handle both latency-sensitive metadata transactions and high-throughput data transfers. In a system that is handling tens of gigabits per second while simultaneously processing tens of thousands latency-sensitive transactions, there are efficiency/performance optimizations throughout the proxy stack, from drivers and interrupts, through TCP/IP and kernel, to library, and application level tunings.


Read full article from Optimizing web servers for high throughput and low latency | Dropbox Tech Blog


【新提醒】吐血总结:面试知识点【一亩三分地刷题版】 -



【新提醒】吐血总结:面试知识点【一亩三分地刷题版】 -

语言知识点:以java为例
  • Java 语言特性:Java 与 c ++ 区别; abstract class vs interface; shallow copy/deep copy; pass by reference/ pass by value; hashcode()/ equals(); Java 一些关键字:final, static; final/finalize/finally; checked/unchecked exception; java 8种primitive type;overriding vs overload;public static void main(string args[])每个关键字的作用
  • Java Collections:stack/queue/deque; hashset/treeset; String vs StringBuffer;Hashmap/TreeMap/Hashtable/LinkedHashMap/ ConcurrentHashMap; Array/ArrayList/LinkedList; PriorityQueue(heap); comparable/comparator; iterator


3.  拓展一些问题: Java memory leak/JVM/ garbage collection,  Object class method: getclass()/ hashcode(); java: heap/stack存什么; Java 8/Java 7

数据结构和算法
  • 二叉树:超级重点: 收集所有二叉树的题
  • 链表: 会翻转/快慢指针
  • Binary Deduction/Search: sorted/rotated array/ Sqrt()
  • 实现基本数据结构: hashmap, stack和queue
  • Array/ String: shuffle an array, java big integer实现
  • dfs vs bfs  word ladder/ topological  sorting

7.  简单dp,不需要很复杂: paint house/stock price/


计算机网络
1. TCP 三次握手,TCP/UDP 区别;
2.  http/https 区别;http request:post/get ;http port 80 ssl;
3.输入www.google.com 会发生什么;What happens when you type [url]www.google.com in your browser?[/url]
4.Public key/Private key;
5. HTTP 401, 403, or 404 Error/ client/server模型


数据库
1. SQL vs NoSql 区别
2. select/update/delete/insert
3.primary key;join(四种)和index 原理和作用
4.简单的sql语句:从table中找出成绩第二好的学生姓名; group by
5.简单了解几种nosql数据库: MangoDB/ Cassandra/HBase


系统及其它
  • ACID/CAP 分布式系统
  • Java多线程: extend Tread类,Implement Runnable接口/blockingqueue
  • 序列化的几种方式:JSON/Object Serialize/ProtoBuf
  • what is dead lock?死锁问题/如何解决
  • Design Pattern 设计模式(singleton,factory, builder, decorator)
  • Linux command: kill -9   / scp / telnet / ps

Read full article from 【新提醒】吐血总结:面试知识点【一亩三分地刷题版】 -


‎程序员面试白皮书 on Apple Books



‎程序员面试白皮书 on Apple Books

本书作为一本工具书,创建一个实际的、可操作的面试方法论教程,提供一条快速熟悉技术面试题目的捷径,并且针对不同类型的题目,归纳总结解题方法。



其实市面关于程序员面试的参考书也不少,但是我们认为这些书的关键问题在于它们大多是教你"怎么做",但很少涉及"为什么这么做"和"要做些什么"。本书着眼于如何进行"模式识别",通过分析为什么这个问题被划分到这个章节,来教大家如何判断实际面试问题的类型,并且顺水推舟地得出解决问题的方法。关键不是教会你做一道题目,而是教会分析题目,解决题目的方法,从而学会解一类题目。


Read full article from ‎程序员面试白皮书 on Apple Books


[BetterExplained]遇到问题为什么应该自己动手 – 刘未鹏 | Mind Hacks



[BetterExplained]遇到问题为什么应该自己动手 – 刘未鹏 | Mind Hacks

我们在生活中总是在不停地试图做最优经济决策,只不过很多时候我们为适应远古社会而进化的大脑未必适用于现代工业社会(《Mean Genes》,《进化心理学》,《How We Decide》),所以很多时候我们可以在超市为选择哪一卷卫生纸斟酌半天(《Predictably Irrational》),却在面对生活中重大抉择的时候轻易就随波逐流(《Paradox Of Choice》)。

我们的很多决策依赖于情绪系统的输出(从进化时间上比较"旧"的大脑部分)(《How We Decide》,《Synaptic Self》),这部分大脑属于典型的经过了漫长进化时间所雕琢过的,决策机制严重适应远古社会的模块(《Mean Genes》),比如在物质贫乏的远古时期,不管什么时候遇到富含热量的食物是必吃无误的,所以我们的情绪大脑只要闻到美食是绝对不去克制诱惑的,长出脂肪又如何?有的是饥寒交迫的时候去燃烧这些脂肪。然而这条规则到了现代这个物质充裕的社会却成了灾难(去查一下美国的肥胖比例?),可谓成也萧何败萧何。这样的例子在《Mean Genes》中还有不少。

我们在学习新东西,遇到困难的时候,为什么会放弃?因为我们下意识中会对所面临的困难以及成功后所得的收益作一个评估(经典的cost/return分析),这里特别重要的是对面临的困难的评估:我们都知道学习任何一门技能,一开始可能还兴趣浓厚,捋袖子上阵,过了一阵子便会遇到一个典型的分水岭,你会发现未知的东西比你想象得要多,困难重重,似乎一眼看过去没法确信什么时候才能掌握,甚至觉得有点Mission Impossible,当觉知到的困难到一定程度之后,我们的大脑便会想:既然很大可能最终失败,甚至看不到成功的可能,为什么要白费力气去学一通呢?还不如省省呢。这是一个聪明的经济决策,去权衡性价比应该是每个经济个体的原则。然而,这个决策笨就笨在,它把困难评估得过高了,因此决策的前提就弄错了。为什么这么说呢?现代社会很多新东西是知识密集型的,而不像我们祖先生活的远古社会可能绝大部分是体力活。对体力活的评估我们很在行,大约能知道困难有多大,需要耗时多久,有没有可能完成。然而对学习新知识的困难程度的评估,我们却很不在行,因为大部分知识都是需要等你掌握了之才会"豁然开朗"、"柳暗花明的",而在这之前你会觉得这东西太难了,完全没有头绪,摸不着门道,觉得山重水复疑无路,你会想"既然无路,就别去碰得满头是包了吧?何苦呢?"。


Read full article from [BetterExplained]遇到问题为什么应该自己动手 – 刘未鹏 | Mind Hacks


心智探寻(十一):为什么很努力,却似乎停在原地 – 刘未鹏 | Mind Hacks



心智探寻(十一):为什么很努力,却似乎停在原地 – 刘未鹏 | Mind Hacks

心智探寻」这个系列源于通过微信进行的1v1对话,对话系列皆已得到分享授权,所有对话者化名都是Lucy(或Luke)。文本除了极少量调整之外和原对话几乎完全保持一致。回复「对话」或「心智探寻」(或点击「阅读原文」)可阅读整个系列。回复「提问」向我提问。

为什么叫「心智探寻」而不叫「咨询」、「问答」,是因为我觉得心智探寻更能够表达这样一种微妙的含义:没有主客关系,通过平等对话的形式,渐次看见和触摸心智结构的深层机理。一切深层改变,都需要首先建立在看见和觉察的前提之下。

此外,很多心理学知识,放在问题上下文和思维的展开过程当中去引出,会比其他形式更生动,更容易理解,如果你仔细看,会发现几乎每则对话里都会引出一个或几个重要的心理学原理。除了对话所对应的特定问题之外,这些心理学原理,和使用这些原理的思维过程,同样也是我希望籍由对话来传达的「」。我希望这个系列能够较为理想的把道理或原理融入到过程和实践当中,摆脱心理学科普写作领域常见的「道理都懂却过不好一生」的现象。

这个系列的文章一般都较长,建议微信收藏之后再看(也有读者说是打印出来看的:-))。


Read full article from 心智探寻(十一):为什么很努力,却似乎停在原地 – 刘未鹏 | Mind Hacks


硅谷跳槽工具箱指南 - 知乎



硅谷跳槽工具箱指南 - 知乎

这是我在硅谷找工作用到的一些资料和网站,虽然都是英文的,但都是一些干货,大家都可以借鉴一下,里面有很多有意思的观点和最新动态。并且也包括了很多跟创业相关的工具,不论你是在创业浪潮中,还是希望进入到一家快速上升的公司,抑或是难以选择一个最适合自己的Offer,这里都会有工具能帮助到你。在我的新书 "程序员面试白皮书"(An Ultimate Guide to Coding Interviews) 也会有详细介绍。


Read full article from 硅谷跳槽工具箱指南 - 知乎


Shawn Wang Williams



Shawn Wang Williams

Deterministic meaning algorithm will always have same runtime for given inputs, this time complexity is O(N). Idea is to deterministically pick the pivot instead of randomly selecting it.


Read full article from Shawn Wang Williams


Collatz conjecture - Wikipedia



Collatz conjecture - Wikipedia

Any counterexample to the Collatz conjecture would have to consist either of an infinite divergent trajectory or a cycle different from the trivial (4; 2; 1) cycle. Thus, if one could prove that neither of these types of counterexample could exist, then all positive integers would have a trajectory that reaches the trivial cycle. Such a strong result is not known, but certain types of cycles have been ruled out.


Read full article from Collatz conjecture - Wikipedia


[LintCode]——目录



[LintCode]——目录

Current Status : 232AC / 289ALL in Language C++, Up to date (2016-02-10)
For more problems and solutions, you can see my LintCode repository.
I'll keep updating for full summary and better solutions. See fdlly to get details or click problem's Note directly. Tip means has been added tips and sketch (* means has note at fdlly).
This context template fork from kamyu104 , thanks them very much!


Read full article from [LintCode]——目录


How to instantly appear clever when speaking - TianPan.co



How to instantly appear clever when speaking - TianPan.co

The Greeks uses those persuasive tricks (schemes)

You are already familiar with many of the tricks:

  1. Analogy (my love is like a cherry)
  2. Oxymoron (pretty ugly)
  3. Rhetorical question (do I have to explain this one?)
  4. Hyperbole (the most amazingly great figure of all)
  5. Coyness (Dad gifts me a new iWatch … but I say "oh, you shouldn't have")
  6. Dialogue (teenagers are especially fond of this: Alice said what and then I sad what and then Charlie said what)
  7. Speak-round ("He Who Must Not Be Named")


Read full article from How to instantly appear clever when speaking - TianPan.co


Tian's Book Rankings - TianPan.co



Tian's Book Rankings - TianPan.co

These are non-exhaustive rankings of books that I recommend. They are updated from time to time.

Life Changing

  1. Principles: Life and Work - by Ray Dalio
  2. How The Economic Machine Works - by Ray Dalio
  3. The Road Less Travelled - by Scott Peck
  4. The Black Swan - by Nassim Taleb
  5. 1984 - by George Orwell
  6. Goethe's Faust - by Goethe
  7. Outlier - by Malcolm Gladwell
  8. Thank you for arguing - by Jay Heinrichs

Influencing Opinions

  1. The Attention Merchants - by Tim Wu
  2. Homo Deus: A Brief History of Tomorrow - by Yuval Noah Harari
  3. Sensemaking: The Power of the Humanities in the Age of the Algorithm - by Christan Madsbjerg

Psychology: Understanding self and people

  1. Thinking, Fast and Slow - by Daniel Kahneman
  2. How to Win Friends and Influence People - by Dale Carnegie
  3. Mean Genes - by Terry Burnham


Read full article from Tian's Book Rankings - TianPan.co


You Won't Believe How the Biggest Sites Build Scalable and Resilient Systems!



You Won't Believe How the Biggest Sites Build Scalable and Resilient Systems!

Jeremy Edberg is currently the Reliability Architect for Netflix, the largest video streaming service in the world. Philip Fisher-Ogden is the Director of Engineering for Playback Services at Netflix, responsible for systems that ensure every play-request to Netflix results in a play.


Read full article from You Won't Believe How the Biggest Sites Build Scalable and Resilient Systems!


What Makes a Database Cloud-Native? - MemSQL Blog



What Makes a Database Cloud-Native? - MemSQL Blog

MemSQL has been designed and developed as a distributed relational database, bringing the effectiveness of the relational database model into the new world of the cloud, containers, and other software-defined infrastructure – as described in a new report from 451 Research. Today, most of our customers run our software using some combination of the cloud and containers, with many also running it on-premises.


Read full article from What Makes a Database Cloud-Native? - MemSQL Blog


On the Controversial Google Manifesto · Ticki's blog



On the Controversial Google Manifesto · Ticki's blog

The tech culture is already highly toxic, which could explain why there is so few women in it. It is - by large - a very excluding culture, meaning that the voices are very undiverse, so the state of "freedom of speech" if you will is very poor. There are people excluded from speaking as an implication of the culture.


Read full article from On the Controversial Google Manifesto · Ticki's blog


Why I'm leaving Open Source · Ticki's blog



Why I'm leaving Open Source · Ticki's blog

It is pretty hard to preface this. Open Source has been such a big part of my life for a long time. I have been working on Open Source projects, since I was 12 years old, and it used to be such a huge part of my day. I got home after a long day, then I proceeded spend several hours to work at projects, that fascinated me. The real bulk of my Open Source work, however, happened when I started writing in Rust in 2013. I was immediately obsessed with the language. I think what attracted me was the idea of uncompromised focus on good design and correctness. I felt a sense of perfection in the language that I didn't feel for other languages. There was something aesthetically pleasing in a language that seemed to fix the things, that annoyed me with most other languages.


Read full article from Why I'm leaving Open Source · Ticki's blog


寫一年技術文章的心得 · jyt0532's Blog



寫一年技術文章的心得 · jyt0532's Blog

寫了部落格一年 砸了無數小時 念了不下二十本CS相關書籍 差不多可以說一下這一年來的心得體會

本文的重點是鼓勵所有在乎自己職涯發展的工程師寫技術文章

看完effective engineer後 我覺得要分享不應該只是心靈雞湯式的說為什麼應該做什麼事情跟有什麼好處 應該給實質的建議以及如何跨出第一步

先來總結一下

總發文數: 58

總觀看數: 32194

我寫部落格的理由

當初雅虎情況不好想跳槽 除了刷題之外 那陣子準備了很多資料念了很多書 包含system design還有multithread的東西 第一個動機是當時唸完後就覺得這些東西如果不寫起來 下次我準備跳槽的時候大概又要花差不多同樣的時間去唸

第二個動機是我當時在雅虎學到的東西大概不到30%是帶的走的知識(transferrable knowledge) 當我到了一個新的公司環境時 我跟new grad並不會有太大差別

印象深刻的是我在面airbnb的時候的system design我徹底的被電得不成人形 這讓我感覺到了警訊 讓我覺得我在矽谷前一年半待下來 我只專注於公司的工作內容 沒有花太多時間去學習技能 (adjacent-disciplines) 這點我在讀到Effective Engineer花時間學習新技能才大徹大悟 徹底了解得過且過跟上進認真的差別 才決定做些改變


Read full article from 寫一年技術文章的心得 · jyt0532's Blog


Effective Java Item31 - 利用限制通配符來提昇API靈活性 · jyt0532's Blog



Effective Java Item31 - 利用限制通配符來提昇API靈活性 · jyt0532's Blog

這篇是Effective Java - Use bounded wildcards to increase API flexibility章節的讀書筆記 本篇的程式碼來自於原書內容

本篇是泛型系列文的高潮 請讀者務必要讀懂這篇的內容

本章節可以搭配

泛型篇章簡介及術語列表

類型參數和通配符的選擇

到底 <T extends Comparable<? super T»是什麼意思

服用

Item31: 利用限制通配符來提昇API靈活性

我們在Item28有說 泛型是不可變(invariant) 意思是說 對於任意兩種不同的type Type1Type2 , List<Type1> 既不是List<Type2>的子類型 也不是它的父類型


Read full article from Effective Java Item31 - 利用限制通配符來提昇API靈活性 · jyt0532's Blog


【新提醒】[pdf][2011CareerCup新书]The Google Resume: How to Prepare for a Career..【一亩三分地求职版】 -



【新提醒】[pdf][2011CareerCup新书]The Google Resume: How to Prepare for a Career..【一亩三分地求职版】 -

The Google Resume is the only book available on how to win a coveted spot at Google, Microsoft, Apple, or other top tech firms. Gayle Laakmann McDowell worked in Google Engineering for three years, where she served on the hiring committee and interviewed over 120 candidates. She interned for Microsoft and Apple, and interviewed with and received offers from ten tech firms. If you're a student, you'll learn what to study and how to prepare while in school, as well as what career paths to consider. If you're a job seeker, you'll get an edge on your competition by learning about hiring procedures and making yourself stand out from other candidates.
  • Covers key concerns like what to major in, which extra-curriculars and other experiences look good, how to apply, how to design and tailor your resume, how to prepare for and excel in the interview, and much more
  • Author was on Google's hiring committee; interned at Microsoft and Apple; has received job offers from more than 10 tech firms; and runs careercup.com, a site devoted to tech jobs

Get the only comprehensive guide to working at some of America's most dynamic, innovative, and well-paying tech companies with The Google Resume.


Read full article from 【新提醒】[pdf][2011CareerCup新书]The Google Resume: How to Prepare for a Career..【一亩三分地求职版】 -


About Swagger Specification | Documentation | Swagger | Swagger



About Swagger Specification | Documentation | Swagger | Swagger

The ability of APIs to describe their own structure is the root of all awesomeness in OpenAPI. Once written, an OpenAPI specification and Swagger tools can drive your API development further in various ways:


Read full article from About Swagger Specification | Documentation | Swagger | Swagger


读书和书籍选择问题的讨论:Java篇 - 点缀星辰 - ITeye博客



读书和书籍选择问题的讨论:Java篇 - 点缀星辰 - ITeye博客

    最近因为工作变动的一些因素,好久没有过来更新博客了。学习还是应该坚持,不应该荒废。正好自己也做过几年的Java开发工作,在这里将一些比较好的学习资料列举一下和大家分享一下。也算是给入门的同学一个帮助吧。


Read full article from 读书和书籍选择问题的讨论:Java篇 - 点缀星辰 - ITeye博客


Logging Architecture - Kubernetes



Logging Architecture - Kubernetes

If the node-level logging agent is not flexible enough for your situation, you can create a sidecar container with a separate logging agent that you have configured specifically to run with your application.


Read full article from Logging Architecture - Kubernetes


Logging Using Stackdriver - Kubernetes



Logging Using Stackdriver - Kubernetes

Before reading this page, it's highly recommended to familiarize yourself with the overview of logging in Kubernetes.


Read full article from Logging Using Stackdriver - Kubernetes


LCPython/google.md at master · VincentUCLA/LCPython · GitHub



LCPython/google.md at master · VincentUCLA/LCPython · GitHub

// 今天刚完成面试,还不确定结果,如果只看面经的话可以止步了,之后写的都是我个人的经验总结,只给大家作为借鉴,实力不够不敢误人子弟。 . visit 1point3acres for more. 首先我要详细的阐述一下我个人的答题流程(目前只针对google). 1point3acres 1.repeat question 2.clear question. From 1point 3acres bbs 3.confirm input data / output result. Waral 博客有更多文章, 4.abstract question 5.ALGO+DataStructure 6.time/space 7.write code 7.1 keep communcation 7.2 summary code 8 explain 9 run test case. Waral 博客有更多文章, 10 think about unit test case . From 1point 3acres bbs 解释一下我的答题流程希望对大家有帮助, 首先我们一定要知道google不是只要你写好看的代码,同时考察你思考的方式和过程,这需要靠交流来展现,所以交流很重要(我的两个google recruiter都跟我说要注重交流 交流 交流) 之前面试的人说面试第一步是要跟面试官针对问题深入探讨,讨论各种情然后再写代码,我不是非常同意,我个人认为,第一步不是讨论这个问题,而是你去重复这个问题!他说的问题你用自己的话简单的总结 然后告诉他我们现在面对一个什么问题,之后我们再跟面试官对细节进行讨论 这就是第二步讨论问题。 第三步是确定输入输出的参数,这个很重要,相同的问题不同的入参导致的结果就是解题算法可能不一样,如果他没有确定要求那我会按照我喜欢的来,如果面试官说输入的参数只可以是什么 . 1point3acres 第四步 抽象化这个问题,题刷多了你就会发现 什么最少的钱招聘工人,连接岛屿,最短路径,乱七八糟的描述 都是图 树 数组的问题,包装的很炫酷而已, 快速的删除那些没用的形容词 不要受到打扰(每个人思维逻辑不一样,你跟我说我们有几个飞机场 有飞机航班 几点起飞,求最快的到某个机场的时间,当我听见飞机 我快速的联想到各种飞机 空姐什么的,跳跃性思维,给我一个跳板我能飞出这个宇宙) 第五步 当我们抽象化问题之后,基本上就锁定了一部分算法,然后试想这个算法是否可行,(比如一个图 dfs bfs unionfind 哪个可以需要什么数据结构 这要靠多刷题自我积累) 第六步 如果可以的话,写代码之前 简单的说一下时间 空间复杂度 前六步 每一步都不是自己站在那里想,每一步你都要跟面试官交流,对话内容 以我面经第一题为例子 展示我打流程. more info on 1point3acres 1.我:"我想简单的重复一下我们的问题, 我们有一个blabla 还有一个blabla 想要输出一个blabla 对么?" 面试官"对的宝贝/不对亲爱的 我们有..... 没有...." "ok 那我们有....." 2.我:"那如果输入的参数是这个样 我们怎么办,会不会有空字符串啊 亲爱的, 会不会字典里有一样的单词呢? 宝宝" 面试官"可能有哦,你说的都有可能/ 放心不存在的" 3.我:"honey 输入参数我可以自己定么? list可以不,还是一定要什么。。。。" 面试官"你长得帅听你的/ 不行我说是什么就是什么" 456.我: 好的,我们现在的有这个和那个,我们要找subsequence 我们问题的重点是找.... 我决定用hashmap<Integer List> 删选我们的字典 然后将长度大于target的单词作为我们的候选单词 然后每个单词compare 因为我们可能存在相同的单词 我们可能需要一个hashset 时间大约是O(xxx) 空间大约是O(xxx) 你觉得可以么 宝贝?" 面试官 "你真帅·完美答案/可以不错 但是有没有更好的 或者其他的解法么?" . 一亩-三分-地,独家发布 我: "当然有,亲爱的 我们可以用Trie数据结构 blabla 但是代码多时间复杂度差不多,我们可以在第一种解法上优化代码 你想要什么姿势?啊不对,是你想要什么算法 我都会哦" 面试官"我要。。。。。".本文原创自1point3acres论坛 7. 写代码,完成大部分代码才解释 或者完成一部分代码才解释, 最好的方法是你写某些功能之前就提前说了 我现在要干嘛******** 我创建这个HashMap是为了什么 这个变量名是代表什么. 围观我们@1point 3 acres 面试官点头 或者微笑 或者么么哒你 你就可以写了,他要是不理你,你不要生气(他可能在想晚上要吃什么,不是每个面试官都很专业的,不要因为他的行为 影响你的思路和节奏).1point3acres网 8.完成每一步之后,黑板上就有你的完整代码了,按照顺序 简单的描述一下你的算法流程,这里是什么 那里是什么 9.跑例子 10 提出多种不同的例子 其实就那么几种,字符串很长,字符串很多,字符串空,重复的单词,单词里有特殊字符*&……%¥


Read full article from LCPython/google.md at master · VincentUCLA/LCPython · GitHub


leetcode 中有哪些题的解法让你拍案叫绝? - 知乎



leetcode 中有哪些题的解法让你拍案叫绝? - 知乎

同学给出了一些改进意见,详情见评论。他提到的MaskRay/LeetCode · GitHub,请大家和我之后要提到的soulmachine/leetcode · GitHub进行交叉参考,谢谢~)多说无益,大家可以对比一下自己的实现。假如觉得有更好的方法,也可以提。
至于链表、动态规划、深搜广搜、贪心那些题的解法,可以说道道都有门道。漂亮的解法,就是代码最简单,效率最高。

那么——我是从哪儿找到这些解法的?
来源于:
soulmachine/leetcode · GitHub
欢迎大家一起来膜拜soulmachine的代码!
这份题解,曾经给了我很多帮助,这里推荐给大家,希望更多的同学能得到帮助。同时,大家要记得感谢原作者soulmachine同学的辛勤付出哦~


Read full article from leetcode 中有哪些题的解法让你拍案叫绝? - 知乎


Whiteboard Interviews: How to Avoid Them and Improve Your Career



Whiteboard Interviews: How to Avoid Them and Improve Your Career

As I mentioned last Friday, I've lost track of the number of folks who have shared Michael Lynch's piece about quitting Google with me.  I suppose I should expect that, since I often rail against hiring practices that people associate with Google and similar companies.

This includes the titular whiteboard interviews, of course.  And, for good measure, I've even written a book in which I suggest simply not agreeing to do this style of interview.

Interestingly enough, though, I don't have anything in particular against Google at all.  Nor do I have anything against its contemporaries, all of whom I am coming to think of as Enterprise Silicon Valley, given their legacy of innovation combined with their increasing resemblance more to the IBMs and GMs of the world than the hottest new startups.


Read full article from Whiteboard Interviews: How to Avoid Them and Improve Your Career


The 30-minute guide to rocking your next coding interview



The 30-minute guide to rocking your next coding interview

Hence I spent the last three months figuring out how to improve my coding interview skills and eventually received offers from the big tech companies. In this post, I'll be sharing the insights and tips I gained along the way. Experienced candidates can also expect system design questions, but that is out of the scope of this post.

Many of the algorithmic concepts tested in coding interviews are not what I usually use at work, where I am a front-end web engineer. Naturally, I have forgotten quite a bit about these algorithms and data structures, which I learned mostly during my freshmen and sophomore years of college.

It's stressful to have to produce (working) code in an interview, while someone scrutinizes every keystroke that you make. What's worse is that as an interviewee, you're encouraged to communicate your thought process out loud to the interviewer.


Read full article from The 30-minute guide to rocking your next coding interview


你的努力为什么没有意义? - 知乎



你的努力为什么没有意义? - 知乎

10年的时间,生活的磨砺,逐渐把我从一个盲目乐观的青涩小伙,变成一个悲观主义者,但无疑却是历史上最好的我。我已接受了自己的平庸,放弃了虚幻的主角光环,承认自己只是一个普通人。

我是悲观的,但更是理智的,因为保持理智的最佳方法就是彻底掌握悲观主义,比如塞内卡就认为,愤怒和失望就是源于乐观主义的预期。北欧的居民不会因为下雨而愤怒,因纽特人也不会下雨而失望,我也不会因为将来的生活对我的捶击而放弃,因为这都没有超出我的预期。


Read full article from 你的努力为什么没有意义? - 知乎


Avoiding tax underpayment due to unexpected stock capital gains - TurboTax® Support - Get Help Using TurboTax



Avoiding tax underpayment due to unexpected stock capital gains - TurboTax® Support - Get Help Using TurboTax

Most dividend and capital-gains distributions occur at year-end, so making a sufficient 4th quarter estimated payment by the January 15 deadline will eliminate the possibility of a penalty that might otherwise result from these year-end distributions.  In other words, make a 4th quarter estimated payment sufficient to cover your overall tax liaibility when combined with your other tax withholding and estimated payments.  However, you might need to annualize income on Form 2210 to avoid an underpayment penalty for the earlier quarters of the year.  (You could still end up with underpayment penalties for the first three quarters of the year if your other tax payments were insufficient to cover the income in these quarters.)


Read full article from Avoiding tax underpayment due to unexpected stock capital gains - TurboTax® Support - Get Help Using TurboTax


What seven years at Airbnb taught me about building a company



What seven years at Airbnb taught me about building a company

I first joined Airbnb as an engineer, and then as one of the first members of the budding PM team. Back then there were a couple dozen engineers, a few designers, and two very cute dogs. Over the next seven years as the company scaled to thousands of global employees, countless cute dogs 🐶, and over $30b in value, I took on a lot of interesting problems and worked with many incredible people. Since leaving a few weeks ago, before I get too deep into starting my own thing again, I've been jotting down my biggest lessons from these experiences. I quickly realized I should share these lessons with anyone else working to build their own company. I can't promise these will apply to your situation but I will say these have been core to Airbnb's success over of the years.


Read full article from What seven years at Airbnb taught me about building a company


multithreading - Java: waiting on synchronized block, who goes first? - Stack Overflow



multithreading - Java: waiting on synchronized block, who goes first? - Stack Overflow

Someone else mentioned the availability of fair locks. If you really care who goes first, then you may have a real-time problem. In that case, you can make use of RTSJ, wherein the ordering and other semantics of lock acquisition is specified. The specifics are available in the RTSJ Spec under Synchronization. Quoting from the rationale section:


Read full article from multithreading - Java: waiting on synchronized block, who goes first? - Stack Overflow


What Google Learned From Its Quest to Build the Perfect Team - The New York Times



What Google Learned From Its Quest to Build the Perfect Team - The New York Times

ike most 25-year-olds, Julia Rozovsky wasn't sure what she wanted to do with her life. She had worked at a consulting firm, but it wasn't a good match. Then she became a researcher for two professors at Harvard, which was interesting but lonely. Maybe a big corporation would be a better fit. Or perhaps a fast-growing start-up. All she knew for certain was that she wanted to find a job that was more social. ''I wanted to be part of a community, part of something people were building together,'' she told me. She thought about various opportunities — Internet companies, a Ph.D. program — but nothing seemed exactly right. So in 2009, she chose the path that allowed her to put off making a decision: She applied to business schools and was accepted by the Yale School of Management.


Read full article from What Google Learned From Its Quest to Build the Perfect Team - The New York Times


How Facebook matured its data structure and stepped into the graph world - Neo4j Graph Database Platform



How Facebook matured its data structure and stepped into the graph world - Neo4j Graph Database Platform

Several years ago Facebook engineers realized they had a problem. The old way of storing and accessing users' data was bogging down their infrastructure and their code. So in 2009, engineers at the social networking site started working on a database architecture that could perform better than its then-current relational database backed by Memcached for in-memory caching and MySQL for persistent storage. They built a graph database. The fruit of their efforts, The Associations and Objects (TAO) distributed data store, is a system purpose-built for the storage, expansion and, most importantly, delivery of the complex web of relationships among people, places and things that Facebook represents. And on Tuesday Facebook published a blog post that details the physical infrastructure that underlies the TAO data store. One reason for building TAO was the complexity of querying data from both MySQL and Memcached, according to the post, written by software engineer Mark Marchukov:

Read full article from How Facebook matured its data structure and stepped into the graph world - Neo4j Graph Database Platform


Birthday Paradox and Hash Functions - Gaurav's Blog



Birthday Paradox and Hash Functions - Gaurav's Blog

The Birthday Problem is concerned with computing the probability that, in a set of n randomly chosen people, at least one pair of people will have the same birthday (let's call it a 'collision').

Intuitively, what would be your guess for the probability of collision to become > 0.5? Given that there are 365 possible days, I would imagine n to be quiet large for this to happen. Let's compute it by hand.

What is the probability that there isn't a collision?

  • The total number of combinations of birthdays possible for the set of n people is 365n.
  • However, for the birthdays to not overlap, each one should pick n different birthdays out of the 365 possible ones. This is equal to 365Pn (pick any n out of the 365 days, and allow permutations).


Read full article from Birthday Paradox and Hash Functions - Gaurav's Blog


Systems Design: Facebook TAO - Gaurav's Blog



Systems Design: Facebook TAO - Gaurav's Blog

TAO is a very important part of the infrastructure at Facebook. This is my attempt at summarizing the TAO paper, and the blog post, and the talk by Nathan Bronson. I am purely referring to public domain materials for this post.

Motivation

Memcache was being used as a cache for serving the FB graph, which is persisted on MySQL. Using Memcache along with MySQL as a look-aside/write-through cache makes it complicated for Product Engineers to write code modifying the graph while taking care of consistency, retries, etc. There has to be glue code to unify this, which can be buggy.

A new abstraction of Objects & Associations was created, which allowed expressing a lot of actions on FB as objects and their associations. Initially there seems to have been a PHP layer which deprecated direct access to MySQL for operations which fit this abstraction, while continuing to use Memcache and MySQL underneath the covers.


Read full article from Systems Design: Facebook TAO - Gaurav's Blog


High-performance rate limiting – Smyte Blog – Medium



High-performance rate limiting – Smyte Blog – Medium

The industry standard algorithm for rate limiting is called a token bucket, sometimes called a "leaky bucket". Each bucket has a string key and initially contains the maximum number of tokens. Every time an event occurs, you check if the bucket contains enough tokens and reduce the number of tokens in the bucket by the requested amount. After a period of time called the refill time, the number of tokens in the bucket is increased by the refill amount. Over time, these refills will fill up the bucket to the maximum number of tokens.


Read full article from High-performance rate limiting – Smyte Blog – Medium


Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts