现在的编程考试都这样吗? (转载)

StarVenus
楼主 (未名空间)

【 以下文字转载自 JobHunting 讨论区 】
发信人: StarVenus (参商*极品磨工~人不知而不愠), 信区: JobHunting
标 题: 现在的编程考试都这样吗?
发信站: BBS 未名空间站 (Thu Jul 18 11:42:24 2019, 美东)

前不久有个公司找我,二话不说先让我做题。题目是实现一个简化的交易撮合系统,接受输入交易单,买或卖价格数量,和已有的如果能对上就交易,并且可以修改取消输出已有的。难度不算太大,就是300多行代码吧。可是提交以后告诉我20个test case只通过了15个。但是它不告诉那些没通过的test case是什么样的,也不给我每次运行的输
出。 我能想的情况都想了也想不出来还有什么情况会fail只能对着这个15/20的数字发呆。 这种考试大家有什么对策吗?
pxu

if you never worked on matching engine, you can reference some open source
implementations like this one:

https://github.com/objectcomputing/liquibook.

there usually are some test cases...

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: 发信人: StarVenus (参商*极品磨工~人不知而不愠), 信区: JobHunting
: 标 题: 现在的编程考试都这样吗?
: 发信站: BBS 未名空间站 (Thu Jul 18 11:42:24 2019, 美东)
: 前不久有个公司找我,二话不说先让我做题。题目是实现一个简化的交易撮合系统,接
: 受输入交易单,买或卖价格数量,和已有的如果能对上就交易,并且可以修改取消输出
: 已有的。难度不算太大,就是300多行代码吧。可是提交以后告诉我20个test case只通
: 过了15个。但是它不告诉那些没通过的test case是什么样的,也不给我每次运行的输
: 出。 我能想的情况都想了也想不出来还有什么情况会fail只能对着这个15/20的数字发
: 呆。 这种考试大家有什么对策吗?

w
walkrandom

其实,这种考试没有过不了的。

你把代码写了,部署在一个每月5刀的instance上面。加个login ui。

最少人家会让你去onsite。你去了才能签NDA。

否则你就public open testing。别的影响没有,至少这道题他们没法再考了

StarVenus

主要不是具体的问题,而是不知道什么case would fail.
你说“there usually are some test cases”,是说哪?

【 在 pxu (又呱噪又抠门还偷老婆钱) 的大作中提到: 】
: if you never worked on matching engine, you can reference some open source
: implementations like this one:
: https://github.com/objectcomputing/liquibook.
: there usually are some test cases...

StarVenus

什么意思?我不就没过么。

【 在 walkrandom (walkrandom) 的大作中提到: 】
: 其实,这种考试没有过不了的。
: 你把代码写了,部署在一个每月5刀的instance上面。加个login ui。
: 最少人家会让你去onsite。你去了才能签NDA。
: 否则你就public open testing。别的影响没有,至少这道题他们没法再考了

pxu

e.g., there are unit tests and performance tests in the depository of
liquibook. you can try to convert them into your own tests. but of coz, it's a lot of work.

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: 主要不是具体的问题,而是不知道什么case would fail.
: 你说“there usually are some test cases”,是说哪?

pxu

he meant you can now create a public github repo and post this coding
assignment.

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: 什么意思?我不就没过么。

dalianyin

这个是考理论 重点在于 input params 的 category partition 还有 coverage 什么
的 rest case 也不是瞎写的

出这种题的都是老人们 年轻人喜欢直接出刷题题

StarVenus

应该不行吧。在开始做题前有个agreement需要同意的,里面肯定有不准泄露题的条文。
不过我倒是可以把我的程序放到github上: https://github.com/jerronl/AkunaCap
大家有兴趣帮我看看我有哪些没想到的地方。那个OJ只允许把代码放到一个文件里面,另外两个文件是我自己划拉的试验输入和本地运行程序的输出。应该是一目了然,有点不太算常识的是order分两种,GFD和IOC,前一种(Good for Day)会在系统里保留,后一种(Immediate Or Cancel)如果不能立刻执行就消失了.

【 在 pxu (又呱噪又抠门还偷老婆钱) 的大作中提到: 】
: he meant you can now create a public github repo and post this coding
: assignment.

nkw

最恶心的是,如果print输出后面多了一个空格也fail test case
g
guvest

这应该是senior position吧?要的是一个solution。那测试会不会是performance
fail ?倒不一定是逻辑上有edge cases没有覆盖。

【 在 StarVenus(参商*极品磨工~人不知而不愠) 的大作中提到: 】

: 应该不行吧。在开始做题前有个agreement需要同意的,里面肯定有不准泄露题
的条文。

: 不过我倒是可以把我的程序放到github上: https://github.com/jerronl/
AkunaCap

: 大家有兴趣帮我看看我有哪些没想到的地方。那个OJ只允许把代码放到一个文件里面,

: 另外两个文件是我自己划拉的试验输入和本地运行程序的输出。应该是一目了然,有点

: 不太算常识的是order分两种,GFD和IOC,前一种(Good for Day)会在系统里保留,后一

: 种(Immediate Or Cancel)如果不能立刻执行就消失了.

g
guvest

这个要求我倒是觉得是对的。容易的和会的东西尽量不要错。不然就算一个人有价值,那展现出
来的就大打折扣。

【 在 nkw(非死非活) 的大作中提到: 】
<br>: 最恶心的是,如果print输出后面多了一个空格也fail test case
<br>

heteroclinic

年初的时候亚麻要我做题,挺难两道题,45分钟在家开卷,路径问题,不服的可以划下道来,有NDA
测试过了2/5,理论题基本得是图论的研究生没有offer
StarVenus

NDA是啥?
我不习惯的是只告诉有的测试不通过而不告诉是什么测试没通过,而且还不给看运行结果。当然也承认有他的道理,设计程序确实要尽可能考虑到各种情况,可就是不习惯啊。大家这方面有什么心得吗。
【 在 heteroclinic (asymptotically stable) 的大作中提到: 】
: 年初的时候亚麻要我做题,挺难两道题,45分钟在家开卷,路径问题,不服的可以划下道来
: ,有NDA
: 测试过了2/5,理论题基本得是图论的研究生没有offer

pxu

I looked @ ur code, not impressed. u can reference liquibook 4 good
implementation.

BTW u didn't tell us rules: e.g. can one change a GTD order to an IOC order? can one change a buy order to a sell order etc?

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: NDA是啥?
: 我不习惯的是只告诉有的测试不通过而不告诉是什么测试没通过,而且还不给看运行结
: 果。当然也承认有他的道理,设计程序确实要尽可能考虑到各种情况,可就是不习惯啊
: 。大家这方面有什么心得吗。

StarVenus

the code not meant to impress anyone. it is a simple question with straight forward solution, no fancy tricks necessary. I just want to collect some
possible lights on how to deal with such quiz without feedback. or, can you figure out some test cases that would fail my unimpressive code?

No, you can't change order to/from IOC. -- it should be obvious, shouldn't
it.
Yes. Actually you can see such change in the in.txt

【 在 pxu (又呱噪又抠门还偷老婆钱) 的大作中提到: 】
: I looked @ ur code, not impressed. u can reference liquibook 4 good
: implementation.
: BTW u didn't tell us rules: e.g. can one change a GTD order to an IOC
order?
: can one change a buy order to a sell order etc?

heteroclinic

none disclosure agreement

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: NDA是啥?
: 我不习惯的是只告诉有的测试不通过而不告诉是什么测试没通过,而且还不给看运行结
: 果。当然也承认有他的道理,设计程序确实要尽可能考虑到各种情况,可就是不习惯啊
: 。大家这方面有什么心得吗。

a
af6140

有没有可能是performance的问题?我就遇到过。
h
hadoop2

如果是我,我会直接拒绝。无意义的事。

【 在 StarVenus (参商*极品磨工~人不知而不愠) 的大作中提到: 】
: 发信人: StarVenus (参商*极品磨工~人不知而不愠), 信区: JobHunting
: 标 题: 现在的编程考试都这样吗?
: 发信站: BBS 未名空间站 (Thu Jul 18 11:42:24 2019, 美东)
: 前不久有个公司找我,二话不说先让我做题。题目是实现一个简化的交易撮合系统,接
: 受输入交易单,买或卖价格数量,和已有的如果能对上就交易,并且可以修改取消输出
: 已有的。难度不算太大,就是300多行代码吧。可是提交以后告诉我20个test case只通
: 过了15个。但是它不告诉那些没通过的test case是什么样的,也不给我每次运行的输
: 出。 我能想的情况都想了也想不出来还有什么情况会fail只能对着这个15/20的数字发
: 呆。 这种考试大家有什么对策吗?

heteroclinic

以后做题得收钱
【 在 hadoop2 (千古) 的大作中提到: 】
: 如果是我,我会直接拒绝。无意义的事。

nkw

遇到过,比如把算法从O(N*2)改为O(N*Log(N))可能就通过。关键是只显示test case failed了,不告诉是超时。因为多个空格,或用了什么别的符号隔开输出,大小
写,都会fail掉test case。
是很蠢。
【 在 af6140 (gatekeeper) 的大作中提到: 】
: 有没有可能是performance的问题?我就遇到过。

b
brainless

这家招人有点问题