




当然,为了在面试过后生存,你需要知道的不仅仅只有 FizzBuzz。你还需要确保你知道:基础的数据结构和算法:比如链表、数组、树以及排序。要知道所选择语言的常见解决办法,比如字符串是否恒定,内存是如何管理的。类似类与对象,以及继承等面向对象编程的概念。人们普遍意识到,工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。在职业生涯开始时,你需要就这些问题做好准备,因为你并没有经历去证明自己能做好这份工作。在准备面试的时候有两个资源我会经常推荐:《Cracking the Coding Interview(解面试代码)》,这是一本非常好的书,里面介绍了很多的编码问题和解决方案,同时还总结了解决这些问题需要了解的东西。CodeWars ,这个网站收集了大量的编程问题,你可以运用各种语言在浏览器里面去解决这些问题。***有用的部分是看看别的用户是如何解决同样问题的。这样你就可以看到解决相同问题的不同办法,并且学到你所选语言的新工具。



您的数据事务是基于什么?或者,您需要什么级别的事务支持?如果您的系统需要ACID属性,那么您很好还是坚持使用RDBMS解决方案。否则,您将花费大量的时间试图在您的应用程序/业务逻辑层重制ACID保证,并且您可能仍然没有RDBMS解决方案那么***。#3: 您需要Web/高可伸缩性吗?总是在先计算出您需要什么样的可伸缩性。在这个特殊的例子中,我们正在为微软内部游戏工作室构建系统。你应该能够回答任何有关你列上简历的经历方面的问题,并且解释清楚这一经历如何让你成为本工作更好的候选人。有10到15个游戏工作室正在考虑中——这取决于有多少注册用户使用这个系统每个工作室***多有3-5个活跃的游戏标题。每个游戏标题为三个环境存储遥测模式——开发、预生产(PPE)和生产对于每个标题,将会有2-5个数据科学家同时修改游戏标题数据每一个标题事件都有大约50 KB的max事件数据我们被要求存储所有的版本——我们估计这个数字是1000除以一个标题的生命周期有了以上粗略的估计,我们就可以计算并发性和存储需求:
总并发数 = 工作室数量 * 标题数量每工作室 * 用户数量每标题
= 15 * 5 * 5 = 375 并发用户
大存储 = 工作室数量 * 标题数量每工作室 * 环境数量 * 事件存储大小每版本* 需要存储的版本数
= 15 * 5 * 3 * 50 KB * 1000 = 11250000 KB = 11.25 GB大存储
SQL Azure支持1024个并发打开连接,并且能够很容易地支持并发需求。另外,在考虑云计算时,11.25 GB实际上是一个非常小的数字。
这个系统并不是下一个FaceBook或必应——那么NoSQL的路线真的值得吗?
