1
IamI 2014-09-07 17:08:10 +08:00 1
我只被 NSDictionary 坑过无数次……
|
2
tonyluj 2014-09-07 17:22:38 +08:00
以前写 Android 应用、用 Java 开发网站的时候没感觉
最近在用 C 写个 socks5 代理和 web server + lua 的时候表示非常关键,至关重要,整个程序的灵魂 |
3
akfish 2014-09-07 17:40:11 +08:00
lz标题说的是广义的数据结构和算法,只要你写过a+b,a, b就是数据,a+b就是算法。
lz内容说的是狭义的数据结构和算法,指的是逼格高的,说出来不会被嘲笑的数据结构和算法。 |
4
azuginnen 2014-09-07 17:42:12 +08:00
在看了代码大全 第18章 表驱动法之后,对这句话的理解上升了一个台阶
|
5
Automan 2014-09-07 17:43:48 +08:00
看程序类型。。很多 APP 连美工都会。。
|
6
kisshere 2014-09-07 17:44:53 +08:00
v2开始沦为知乎了
|
7
aszxqw 2014-09-07 17:51:27 +08:00
小时候你老师没告诉你“成功等于百分之1的聪明加百分之99的努力”吗。
长大了你还觉得这个说法适用吗 |
8
semicircle21 2014-09-07 23:20:55 +08:00
坐等游戏开发者前来科普..
|
9
c742435 2014-09-08 00:17:03 +08:00
@semicircle21 游戏么,美术+策划+运营,程序根本算不进去
因为现在的机器性能和人力水平上,基本只要给钱够,程序实现一定能满足性能需求。 真要是服务器压力过大满足不了了,说明你一定挣了好多钱了,那就花10倍的钱请大牛来重构,然后推出2代。 以上仅限国产手游 |
10
c742435 2014-09-08 00:21:28 +08:00
还有,做游戏前端的时候占用最多代码的是UI。
然后就是因为修改策划案导致的一层摞一层的补丁。 真正的核心代码,跟性能有关的部分,其实很少。 |
11
semicircle21 2014-09-08 11:27:14 +08:00
@c742435 贴主说的iOS端, 那我指的只是客户端了,
大一点的3D游戏, 比如赛车类的, 不需要各种算法么? 另外手机上的性能, 应该还没有到过剩的程度吧? 我的意思是, 游戏客户端的复杂程度, 应该是所有类型的App 里, 复杂程度最高的了吧.. 我不在手机上玩游戏, 也不玩国产的, 也不是从业者...纯讨教, 勿喷. |
12
ac47 2014-09-08 13:12:13 +08:00
那啥,你用不到不代表都用不到...客户端本地排个序,动画的各种公式,阀值之类不就数据加算法么。。。
|
19
Ricepig 2014-09-09 14:24:36 +08:00 via Android
当然有效,只是现在这些东西都被封装得还行。
其实你想想,每天编程都是在熟悉和使用别人给你设定好的框架和api,是不是成就感低了那么一点儿? |
22
golang83 2019-09-03 16:41:34 +08:00
人家说这话的人是大神,那么这句话的意思就是开发一个有价值的软件(程序),那么这样的程序一定是数据结构+算法,何为有价值的程序??比如 Excel,财务人员通过使用它可以进行简单的数据录入、统计、分析。光是数据的展示就是一个二维表,那么你要将一个二维表的数据进行各种运算已满足前面说的录入、统计、分析,请问没有数据结构与算法的基础支撑,你可以完成吗? 一个二维表又起码涉及到了线性表这种数据结构。再列举一个简单的例子:什么时候使用数组,什么时候使用链表,作为一个开发者,这个要不知道的话,开发个毛线程序呀?光是用库和框架,那和工地搬砖有啥区别?工地的建筑工人也是建筑行业,建筑师也是建筑行业,谁的社会价值更大?你让文科生去参与桥梁设计,海底隧道设计,估计他能让这个设计变得更有文化气息???呵呵...
前面有人说游戏开发的人来说,那我就说说,一个栈结构可以表示武器的弹夹,FILO 嘛,特性符合吧,假如子弹不是早期 CS 那种游戏,而是要参与物理计算的,那起码也是一个 Object 吧,早期的 CS 的游戏地图名称就叫 BSP,实际上 HalfLife 引擎来自与 id software 的 quake2 (如果我么没记错的话)的引擎,而 BSP 就是一种二叉树,用于解决游戏中的空间分割(二叉空间分割树),我记得没错就是卡尔马克大神搞出来的吧。再后来,室外大型场景场景渲染,LOD 多层次细节的使用,我们又用到了八叉树,哪怕是个 2D 的 MMORPG 游戏,只要联网,我不可能每个玩家的坐标都要向其他玩家进行广播吧?哪怕在一个地图,但不在一个屏幕,还有你看不到的 NPC 我也要把其坐标给你玩家?碰撞检测在一个 5000 人的服务器,我怎么做到哪些数据通知到哪些玩家,哪些数据不用通知某些玩家?网络 IO、服务器的算力资源如何节约?没有数据结构与算法的基础,这个事情就不用想了... 大端序转小端序要不要算法?如何编写一个不使用递归调用来进行遍历的二叉树?为什么需要这样一种二叉树?这涉及到早起的计算机栈空间很少,win2000 和 xp 我记得就 1024kb 吧。那么如果深度太深,也许就栈溢出了,所以可以尝试使用链栈来配合二叉树结构,从学习的角度,也可以对系统的栈空间有更深的理解,也达到了了解两种数据结构使用上的配合,以及线性表与树结构之间的关系... |
23
golang83 2019-09-03 16:51:34 +08:00
看着最近几年的的这些程序员,会用个某某框架、使用一种结构化的标签描述语言,搞出点页面,使用框架中的 API 完成点数据处理、和与后端的 http 协议程序进行点数据收发,就美其名曰前端开发工程师,看着那些使用 spring 全家桶,使用了一些消息引擎,搞点 nginx 和 docker 就美其名曰微服务,高级后端开发工程师。然后还有人得出前端比后端简单的结论,严格来说,前端程序可以复杂到让这些所谓的后端程序员做不出来,有些做 web 后端的居然页脚服务器端开发....... 看看 BAT 的校招中的笔试题吧... 实时证明,数据结构与算法合格的程序员才是程序员.... 程序员不是会用个框架堆积木才叫程序员!
|