高盛后端社招面经
高盛
1.语言设计中空引用(null reference)的存在有什么问题?假设你想要将空引用的概念从你的首选语言中移除,可能导致什么结果?
2.为什么函数式编程重要?什么时候适用函数式语言?
3.为什么人们会抵制变化?
4.如何向你的祖母解释什么是线程?
5.作为一个软件工程师,你想要既要有创新力,又要产出具有可预测性。采用什么策略才能使这两个目标可以共存呢?
6.请用一个例子表明,全局对象是邪恶的存在。
7.假设你工作的系统不支持事务性,你会如何从头开始实现它?
8.什么是好莱坞原则(Hollywood Principles)?
9.你在进行软件设计时会考虑软件测试吗?软件测试是如何影响软件设计的?
10.内聚和耦合的区别是什么?
11.重构在哪些场景下有用?
12.告诉我你的首选语言的三个最坏的缺陷。
13.为什么现在函数式编程这么越来越受关注?
14.闭包是什么?它有什么用途?闭包和类有什么共同点?
15.为什么"第一方cookie
16.(first-party cookie)"和"第三方cookie(third-party cookie)"被如此不同的对待?
17.如果要你将一个项目从MySQL迁移至PostgreSQL中,你会如何迁移?
18.为什么SELECT * FROM table WHERE field = null不能匹配空的字段?
19.什么是最终一致性(Eventual Consistency)?
20.为什么在Mercurial或者git中(管理)分支比SVN容易?
21.分散式版本控制系统(比如git),相比集中式版本控制系统(如svn)有哪些优势和劣势?
22.为什么我们需要并发呢?解释一下。
23.为什么测试多线程/并发代码这么困难?
#社招##面经##高盛集团##Java工程师#