作者oopFoo (3d)
看板Soft_Job
标题Re: [讨论] 我就问,刷题强者的实务表现?
时间Sun Oct 2 13:04:25 2022
先上人权。证明一下我可以刷"Hard"
----------------
这个礼拜刚好看到gjk(Gilbert–Johnson–Keerthi)上news ycombinator. gjk是我以前写3d的时候,跳过的一个演算法,因为复杂。刚好这礼拜有空,就好好研究一下。
现在google "gjk"出来的大概都是用
https://caseymuratori.com/blog_0003 方法。
虽然casey的方法对2d很棒,但他宣称可延伸到3d其实是错的。
为什麽我知道casey的方法有问题?其实我本来不知道,但我收寻到
https://gamedev.net/forums/topic/692141-collision-detection-why-gjk/
Dirk Gregorius 说Casey的"最佳化"方法不行,他们试过了。Dirk 也算是厉害的人物,所以我就重新检视Casey的方法。
仔细想了一下,发现问题所在了,line segment在2d里,可以分in,out,因为有implicit的Z plane上下切。但在3d里,line segment没有plane可以切,所以casey的方法在3d不适用。
所以gjk在3d里做碰撞,你没办法用SAT来最佳化
如果你对gjk有兴趣的话,John Nagle有讲你需要注意的事项(John就是tcp nagle演算法的Nagle).
https://gamedev.net/forums/topic/692141-collision-detection-why-gjk/5380632/?page=2
Casey的gjk确实很棒,解释的很清楚,但可惜只能在2d用。
------------------
我想我大概证明我可以刷数学,演算法,资料结构。可是会这些其实没大帮助。
现在3d物理运算有
https://github.com/NVIDIAGameWorks/PhysX
免费让你用,unreal/unity都是用这个。就算你有特殊需求,也有人继续开发新的如
https://github.com/jrouwe/JoltPhysics <地平线 西域禁地>免费让你用。
https://box2d.org/ 也几乎成为2d物理的标配。
其实现在写程式,99.9%只是在组装各种api,搞定naming,refactor 好,test好,ci好。资料结构,演算法?都已经帮你套在framework里面了。
所以元po的抱怨是很合理的,能通过hard但其实工作完全用不到,会比有实绩的人更适合吗?
而且会刷题的人,当然是去高薪/大公司面试刷题,干麽要去小公司/新创?
中小企业找人已经很难,真的不需要去用这些演算法来筛选,如果你公司根本没在写演算法。
※ 引述《goodson (blahblah)》之铭言:
: 最近一次面到刷题的公司...感觉已经走火入魔了,
: 考试考到难的程度,比 Google 还难
: 去年就面过一次,当时考题 Easy ~ Medium
: 隔了一年还在找人,人资看我资历主动邀我面试,
: 却考得更难...有真心要找可以解决问题的人吗?
: 都没有照照镜子,贵司的薪水可以比 G 还高吗?
: 我考得过 Hard,还需要领你这 120 万左右年薪?
: 我近十年经验,可以拿出数十万下载量
: 还在线的作品不被重视,
: 却考 Hard 难度的考题来羞辱人浪费我的时间,
: 我看了考题十分钟就 submit 不爽写了。
: 当然这样的状况不只一间公司,
: 我就不指名道姓了
: 大概是被刷题进去的人占到主管位,
: 所以也就信刷题这一套。
: 但我的疑问是,刷题进去的人,
: 到底产出如何? 只会写那些数学题型类似的演算法,
: 对於实作没有足够经验,到底可以做出什麽啊?
: 有没有人跟刷题派合作过? 真的刷题高分等於强吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.208.159 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1664687076.A.043.html
1F:推 k798976869: 确实 中小企业找会呼叫函式库的就好 10/02 13:25
2F:→ worcdlo: 我是觉得这个主题蛮有趣的,但想证明解题能力为何不直接 10/02 13:30
3F:→ worcdlo: 报rating就好,你做过什麽跟能不能写hard关联在? 10/02 13:30
4F:推 CaptainH: 我看第一句还以为是要报自己的IOI/ACM/codeforce成绩呢 10/02 13:33
5F:→ CaptainH: ,原来又是个自豪调包侠 10/02 13:33
6F:嘘 Gaogaigar: 别闹了这根本跟刷题两回事 当不了什麽人权 10/02 14:21
7F:推 Ericz7000: ? 10/02 14:40
8F:→ oopFoo: 居然要解释GJK是一个"HARD" problem?现在小朋友是太厉害? 10/02 14:40
9F:→ oopFoo: 还是不会思考?真实世界的难题没有考试重要? 10/02 14:41
10F:→ oopFoo: 刷题派已经刷到不懂问题的难易了吗?虽然是隔行如隔山,但 10/02 14:48
11F:→ oopFoo: computational geometry是一个难的科目,应该知道吧 10/02 14:49
12F:推 hobnob: 我的想法跟原PO差不多,台湾软体大部分没有开发演算法, 10/02 15:03
13F:→ hobnob: 所以对大部分求职者而言刷题没有意义;如果要精进自己、挑 10/02 15:03
14F:→ hobnob: 战大厂,刷题才有价值。 10/02 15:03
15F:推 EricTCartman: 大家火气没必要那麽大 只是讲的东西不同 10/02 15:09
16F:→ EricTCartman: 一般认为"有能力刷hard"大概是cf div2四五题都没问 10/02 15:10
17F:→ EricTCartman: 题的水准 题目的range就大不少 10/02 15:11
18F:→ EricTCartman: OP要讲的是他能够处理现实世界相当於hard的问题 吧 10/02 15:12
19F:→ EricTCartman: 虽然我点进来也在想 rating成绩在哪就是了@@ 10/02 15:12
20F:→ EricTCartman: 比赛是两小时内要写完 不是像工作或个人研究可以慢 10/02 15:13
21F:→ EricTCartman: 慢找 真要讲大家都有能力读论文、实作 也没必要拿 10/02 15:14
22F:→ EricTCartman: "年纪"来呛人小朋友吧XD 10/02 15:14
Yeah,这点是我错
23F:嘘 Gaogaigar: 因为这只显示你没有意识所谓刷题有多跟现实无关 慢 10/02 17:17
24F:→ Gaogaigar: 慢研究一个计 10/02 17:17
25F:→ Gaogaigar: 算几何问题还能翻阅资料跟准备突然在短时间内解开 10/02 17:17
26F:→ Gaogaigar: 一个冷僻的脑筋 10/02 17:17
27F:→ Gaogaigar: 急转弯题目 你现在理解差异了吗? 10/02 17:17
28F:推 AAAWhoAmI: cf div2 可以4~5题比可以刷hard高一个档次吧 10/02 18:33
29F:推 cseslowpoke: div2 4~5题是可以很轻松刷完全部 hard 的程度吧XD 10/03 09:56
30F:→ worcdlo: 我div2通常写四题,在LC完赛率大概只有90%而已,还是偶 10/03 11:57
31F:→ worcdlo: 有题目不会写 10/03 11:57
32F:→ worcdlo: 而且约有30%谈不上轻松完成,需要想比较久甚至尝试很多 10/03 12:02
33F:→ worcdlo: 错误 10/03 12:02
面试不会像比赛那麽赶,也可讨论,就算有小错,正常面试官都会给过。而且其实我是暗示,出来做事,不像刷题有标准答案,有能力抓错也很重要。偏重刷题的面试,没有测这点。
※ 编辑: oopFoo (101.137.249.187 台湾), 10/03/2022 20:47:25
34F:推 knme: 学习算法也是在认识他的功能及极限 10/03 21:59
35F:推 viper9709: 推这篇 10/04 00:10
36F:推 Ericz7000: 问题是你想测这一点,面试时间有限的情况下你要怎麽做 10/04 02:52
37F:→ Ericz7000: 到? 小公司时间很多就算了,大公司几千几万份申请要 10/04 02:52
38F:→ Ericz7000: 怎麽玩这招? 10/04 02:52
39F:→ oopFoo: 我不是要测这点,是写软体是很多面的,刷题真的太局限,中 10/04 05:55
40F:→ oopFoo: 小企业要考虑自己的需求,适合大公司的常常不适合小企业 10/04 05:57