2DJGAME! NOVO

標題: [绝密]最新北美游戏公司招聘游戏程序员的面试题 [打印本頁]

作者: gamelover    時間: 2008-09-16 21:37
標題: [绝密]最新北美游戏公司招聘游戏程序员的面试题
(标题类型咋只有公告了?)

[为防被google,我尽量用中文了,而且具体的算法题和公司资料也不贴了.总之,这是12小时前朋友远程面试某游戏公司做的技术题,我因为帮了忙所以也得到一份.现和大家分享,希望给有志游戏开发者一点提示,今后可以更有目的性的准备一点. ]

[该公司做了2个北美流行的游戏,其他不知名的就更多了,平台不限.另外,当然本试卷无标准答案.因为是远程,我们还可以google(虽然是不被允许的).如果是现场的话,只能用惨不忍睹来形容,哪怕我和朋友联手... ]

1.背景知识/名词解释:
C++:
•        static
•        const
•        volatile
•        mutable
•        namespace
•        template
•        explicit
•        const_cast
•        static_cast
•        dynamic_cast
•        reinterpret_cast
Java:
•        final
•        finally
•        strictfp
•        synchronize
•        transient
•        instanceof

算法:
1.如何不使用临时变量而交换两个变量的值?(提示:异或)

2.如何优化一段程序.(主要是看你对程序优化的感觉,因为本题太具体,所以不给实例了)

3.如何检测cpu的endian-ness?(忘记中文怎么说这个了...)

4.用两种数据结构实现二叉树,并比较其优劣.

软件工程:
1.举例说明并比较几个设计模式(design patern).

内存和系统性能:
1.什么是缓存线(cache line),什么时候以及为什么我们要关注它?关注它又有什么好处?

图形:
1.如果要你开发一个NDS/PSP上的游戏,你会选用什么阴影算法(shadowing algorithm)?并解释之.

2.如果要你开发一个可下载游戏(downloadable game),你会选用什么技术和库,为什么?

杂题:
1.列出计算空间任意一点到任一平面的距离公式

2.什么是四元组(quaternion)?它用在哪里?

3.什么是min-max树?它用在哪里?

4.写一个求浮点数平方根的函数.

5.用hash表构建一个map的类,数据是你的学生证id和姓名.同时写一个test函数以检验此map类的功能.

[ 本帖最後由 gamelover 於 2008-09-19 00:38 編輯 ]
作者: 蒼之十四劍    時間: 2008-09-16 22:50
如何不使用临时变量而交换两个变量的值?(提示:异或)

偶中學時做過這道題,雖然偶那時不是用C++寫的…
因為那時要求不高,直接設個條件$a != $b then $a+$b甚麼的3句,就完事了

現在主要在用PHP,異或都沒必要了,直接list array:
  1. <?php
  2. $a = 1;
  3. $b = 2;
  4. list($b, $a) = array($a, $b);
  5. ?>
複製代碼
因為PHP的值類型是動態(可變)的,所以$a和$b理論上就算是浮點數、文字一類,也是沒有問題的…

順便問一下C++的異或有沒有限制,例如沒法處理文字一類?

偶是不會C++的,只會看基本的
N年前說想學,說到現在都沒時間或動力去學了,有空玩下PHP已經滿足了…
作者: gamelover    時間: 2008-09-16 23:08
14正解~

C++的异或是没限制的,可以用于字符(加密?).但是用于这个交换值的函数的话就只适用于整数.

PHP那么牛啊,我还真不知道.只学了点皮毛...看来也可以用PHP做webgame?
作者: eilot    時間: 2008-09-16 23:53
想當年,人家中學的時候讀的應該也是和14一樣的,也做個這條,也是好簡單,應該說是不用那麼煩的

不過
明天立即將人家手上那張沙紙交回給教授吧...
作者: forsety    時間: 2008-09-18 16:18
貌似题目都不难 = = 比和谐国面试那一堆考卷来的简单多了
作者: eilot    時間: 2008-09-18 23:06
[quote=forsety] 貌似题目都不难 = = 比和谐国面试那一堆考卷来的简单多了 [/quote]


不難,請解答任意一條吧,可以用google查的當然不難
作者: gamelover    時間: 2008-09-18 23:35
正如eilot酱所言,这些题目难就难在不能找资料.

现在我那朋友已经过了,然后说还有一轮远程面试,由公司领头的程序员当面询问一些技术问题.我朋友当场就

之后我也申请了那个公司,希望也能得到面试机会啊...
作者: 藩田思信    時間: 2008-09-19 06:54
所谓名词解释,一般要解释到什么程度呢?
原来真实面试是这种模式的啊(概念+细节技巧),长见识了.谢谢.
如果不是游戏类的话,不太需要了解那些图形方面的吧?
倒是想过要看看的,但是会死人啊
作者: gamelover    時間: 2008-09-19 07:07
不用太详细吧,给个定义就好了.(关键是有不少我们都记不得确切定义了,java的更是有几个没听说过的 )

忘记说了,这套题除了最后的杂题外,要求必须在90分钟内完成.所以,我不认为你会花多少时间在前面的.又因为这是在应聘游戏程序员,够胆不回答图形方面的题目就等着被刷吧...
作者: 藩田思信    時間: 2008-09-19 07:26
嗯嗯,现在java用的多,以前还要用啥地址来的都不习惯了
那么多东西,只能没事拿api当小说看了
看样子,对于机器相关的性能技术啥的也得看阿
作者: 5749821    時間: 2008-09-19 19:57
全是高数和计算机语言啊,可惜在学校里没学好
顺便说下偶最喜欢的游戏公司,暴雪,顶~~~
作者: 蒼之十四劍    時間: 2008-09-19 21:22
[quote=gamelover] 14正解~

C++的异或是没限制的,可以用于字符(加密?).但是用于这个交换值的函数的话就只适用于整数.

PHP那么牛啊,我还真不知道.只学了点皮毛...看来也可以用PHP做webgame? [/quote]
PHP在圖像、立體處理上都不成啊…
就算說配合AJAX,解決到即時性的問題,但也還是不足夠…
作者: 藩田思信    時間: 2008-09-19 23:20
最近正好整了本php+ajax的基础来看
虽然不攻这个也做下了解嘛.
对于编程语言我阅读起来还是很有自信了,一牵扯到html之类混进去立马头晕了

看了下,才知道flicker和gmail就是ajax的成名作,亏我一直用了那么长时间阿
ajax提供新思路真是很有价值
作者: veni    時間: 2008-09-20 16:22
第一题用c好像有这样的方法
a=a+b;
b=a-b;
a=a-b;
如果我没记错的话...
作者: y99099    時間: 2008-09-22 09:50
唔 楼上强大……
题都不是很难 有些内容不会就是了
90分钟
记忆力减退
作者: des    時間: 2008-09-22 13:40
[quote=gamelover] 14正解~

C++的异或是没限制的,可以用于字符(加密?).但是用于这个交换值的函数的话就只适用于整数.

PHP那么牛啊,我还真不知道.只学了点皮毛...看来也可以用PHP做webgame? [/quote]

偶最近在Indigo看到有PHP game 書賣, 應該是用來做一些沒有圖的遊戲吧...就像Utopia等等這些
作者: wuchengf    時間: 2008-09-26 14:05
所以我讨厌去做程序员啊。。。。。。还是做策划好,虽然要样样都懂,但是不需要样样都精。
作者: 19851202    時間: 2008-09-27 03:24
虽然我学的是编程
可是看见c类和java 我就头疼
作者: krobin    時間: 2008-09-28 16:32
这些都是最基本的题目啊
作者: gdarius    時間: 2008-09-29 00:58
这也太专业了吧。。。要考这么多啊。。。吐了
作者: wrzro    時間: 2008-09-30 22:19
完全没看懂,外行人就来看看热闹吧
过几天饱嗝电脑班去,现在确实有学这些的必要了

[ 本帖最後由 wrzro 於 2008-09-30 22:20 編輯 ]
作者: onetalent    時間: 2008-10-01 12:11
看样子我是不行了  做不来饿 呵呵
作者: devilhookey    時間: 2008-10-03 00:39
php可以作webgame,但是要是想要效果好还是要+下JS OR AJAX的不然就太单调了,没效果
作者: lgz85333028    時間: 2008-10-04 15:39
不懂啊!!!!!!!!!!!
作者: gray03    時間: 2008-10-04 16:19
虽然很想做程序员,不过...没这个机会也没这个条件....哎
作者: qiuhan321    時間: 2008-10-04 19:13
哎呀,误入火星区,速速遁.
              
作者: guang    時間: 2008-10-06 15:57
确实好熟啊,不过也忘了
作者: wyh311    時間: 2008-10-07 20:55
看来偶这辈子就是个玩游戏的命,看见数学头就大.........
作者: angel13    時間: 2008-10-08 14:51
[quote=veni] 第一题用c好像有这样的方法
a=a+b;
b=a-b;
a=a-b;
如果我没记错的话... [/quote]

这个果然强大 数学是王道啊
作者: 藩田思信    時間: 2008-10-08 19:58
[quote=wuchengf] 所以我讨厌去做程序员啊。。。。。。还是做策划好,虽然要样样都懂,但是不需要样样都精。 [/quote]

这就你就错了,小公司也许这样能行。
稍微上规模的,分析规划的要考虑N多的。
程序员其实还是最简单的,毕竟拿钱少,也就是做做完形填空的事
作者: 七夜鸣海    時間: 2008-10-08 20:54
异或。。。记得自己高中的时候还知道那个算法的。
现在居然忘了=_=
这算什么啊啊啊!!!
作者: Sora    時間: 2008-10-09 11:57
那些关键字基本都认识。。。。。不过JAVA什么时候多了个strictfp=。=
我当年学的时候好象没有这玩意
二叉数貌似只会用链表实现。。
求浮点数平方根........不可以直接用现成的方法来的么=。=比如Math.sqrt(double a)之类的
图形和内存与系统性能全灭,杂题除了哈希表以外也全灭
阿门。。。。。。OTZ
作者: sritify    時間: 2008-10-10 19:58
有些是懂做...
但看來要做上這份工作...不易呢




歡迎光臨 2DJGAME! NOVO (https://bbs4.2djgame.net/home/) Powered by Discuz! X2.5