游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9279|回复: 13

某人求职简历

[复制链接]

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2007-2-7 18:15:00 | 显示全部楼层 |阅读模式

长春理工大学
CHANGCHUN UNIVERSITY OF SCIENCE AND TECHNOLOGY
(原长春光学精密机械学院)







姓    名 :  肖 文 贵
性    别 :  男
联系电话 :  13881887433
E-Mail  :  XSuns@hotmail.com

尊敬的贵公司人事部门:
         您好,非常感谢您能阅读,为了不耽搁您的宝贵时间,以下我做一个简短简介。
         我于2003年从长春理工大学材料系应届毕业,现25岁,男,从毕业至今就职于成都一国有光学玻璃公司,做自身专业方面的技术工作,具体为晶体制造,玻璃熔炼及冷加工,中国所有长征系列火箭内部用耐辐射玻璃就属于我公司产品,我很为这点而骄傲。
         由于较自身本专业,更爱好计算机,软件开发,pc游戏开发,再有国企制度的原因,希望能进入游戏或者类似软件行业,若贵公司看重人的能力较重于其所学专业,同时拥有一个自由宽松的工作环境,有着好的发展理念,我很希望能进入贵公司工作,在国企,给我一个英雄无用武之地的感觉。
         由于自身所学专业限制,大学仅上过office+谭皓强的c语言。
         自学编程,熟练掌握c,c++与delphi一般(后者为大学时的主流爱好,简单易用,后来因为效率的原因遂放弃了),喜欢并了解opengl,熟练掌握并崇拜raw api,能自由在windows平台下开发多线程应用,自学数据结构和算法。可以做大多数的应用软件开发,可以一个人承担一款游戏服务器的开发(像现在已运营的奇迹,传奇,魔兽世界,剑侠情缘OL,等RPG类游戏的服务器端)。
         若贵公司有意更进一步联系,请尽量用电话联系,宿舍宽度申请终止中,俺的网络不再长久在线。
         以下为参考以前曾玩过的游戏(暗黑,奇迹,魔兽争霸等),自己设计、开发的一款mmorpg类型的游戏。
         由于时间关系(5天工作制,就下班回家和周末有时间),写出了架构及函数,具体的函数实现有部分没有完成,对各种服务器配置没有进行错误配置检查或者进行默认配置,但我相信完成的部分足以说明我对游戏开放或者类似应用的理解。
Project Name:          ProjectX
Project Version:         1.00.0143
Author:                        MS(XSuns@hotmail.com)
Last Edit Time:        10/07/2005
Requirement:
        1,在线人数 > 5000,类似于奇迹的架构,即提供区-服-线的模式,但有所不同。
        2,提供类似Unique-ID的方式,即玩家的accountID为唯一的,玩家的charID为唯一的,在任何时刻,任何服务器上都可以登陆,而不像现行国内游戏的架构,玩家的accountID为唯一的,但charID仅在某一个区的某一个服内为唯一,在别的区服上不能登陆使用。
        3,服务器端网络部分采用iocp实现,具有对特定ip封锁功能
        4,服务器性能能够动态调整,并可以在保证性能的情况下,对玩家的hack行为进行检测处理
        5,在rpg类游戏中普遍存在的加速加攻类外挂,在此服务器内,须能被即时检测辨认,同时不能影响服务器性能。
        6,服务器数据存储部分,采用MSSQL或者类似DBMS实现
Architecture Map:

        CL----->Client Side(客户端)
        SS----->Status Server(状态服务器)
        RS----->Routing Server(路由服务器)
        LS----->Logic Server(逻辑服务器)
        DBES--->DB Enable Server(数据支持服务器)
        DBRS--->DB Raw Server(数据源支持服务器)
Architecture explicate:
          CL,客户端,现在没有开发,其运行顺序为,首先与SS服务器进行连接,在经过连接请求,版本检查后,发送取得区列表请求,从列表请求中选择一个区,进而请求取得此区当前可使用服列表,在服列表中选择一个线集群,并请求此线集群的ip及port(即RS服务器的ip和port),之后同SS服务器断开,并利用已取得的ip和port登陆线服务器集群,即登陆RS服务器,登陆后,经过简要的版本检查后,请求取得当前可使用的线服务器列表,以取得线服务器列表的最大在线人数,当前在线人数及系统负荷等信息作为参考,选择某一线服务器,之后,开始游戏逻辑处理,此时RS不再对此CL的网络封包进行解释,只是提供类似代理服务器的作用,负责把来自此CL的封包转发往其选择的LS服务器,游戏自始自终,CL仅与SS及一个RS服务器进行通信,即不能知道RS内部结点分布细节。
         SS,状态服务器,为全局唯一,负责维护整个游戏各区,各服,各线集群的当前状态,并应答来自CL的各种列表及状态请求和来自RS的状态更新(包括新LS集群的加入,已加入LS集群的状态更新,某一LS集群的关闭等)。
         RS,路由服务器,为每一个LS集群(此LS集群内任一个LS服务器都属于相同的区-服)配置一个,共开放3个外部接口.一个connect指向SS服务器,负责向SS发送本LS集群的维护信息;一个accept,监听来自CL的连接,在CL刚连接的时候,负责解释CL的封包,但当CL选择某一个特定的LS服务器后,仅充当代理的作用,不再对其封包进行解释,仅负责进行数据转发;一个accept,监听来自LS服务器的连接,当任一LS连接上,在经过版本检查及得到其开始提供游戏服务确认之后,RS服务器负责向SS服务器发送状态更新,同时更新内部LS服务器列表。
        LS,逻辑服务器,为整个ProjectX核心,负责所有登陆CL的游戏体验,包括CL的帐号创建,帐号信息修改,角色创建,角色删除,选择角色进入游戏,帐号收费,及所以游戏相关的事项,如内部举行的各种事件,活动,怪物,npc的AI等。共开放2个接口。一个connect指向RS,以利用RS做为中间层,向玩家提供游戏服务。一个connect指向DBES,负责取得或者更新玩家的各种相关数据,如玩家的等级,名称,hp,身上穿戴的道具,仓库道具等。
         同时为了游戏体验,及游戏平衡,每一个LS集群拥有对来自第三方LS集群注册玩家的可选接收(原因为:任何一个LS集群提供运营的时间不同,假设有2个玩家,一个来自运营很长时间LS集群,其等级很高,或者类似的道具很好,另一个玩家来自新运营的LS集群,其等级很低,或者道具很差,若2者同时处于一个LS服务器内,将产生游戏的人为不平衡,所以LS服务器的配置文件中包含有一项配置,以指示来自那些LS服务器的玩家可以接收,或者与自身运营时间差置在那个范围内的LS服务去内的玩家可以接收),并且在此LS服务器运营一段时间之后,此配置不再起作用,即此时的玩家等级或者类似的道具已跟运营很长时间的LS内部的玩家能保持平衡,即以不再产生人为不平衡为考虑点。
         DBES,数据支持服务器,为整个ProjectX项目存储中间层,可以接收来自不同LS集群服务器的数据请求,共开发2个外部接口。一个accept,监听来自LS服务器的数据请求,当其请求为取得数据时,负责先行在本地数据库中进行查找,若没有找到或者数据已过时,则向DBRS进行数据取得请求,在数据取得之后,将本地数据存储作为临时数据存储,并存储取得数据,在以后有相同数据取得请求或者更新时,不再向DBRS进行数据操作,仅在例行时间保存及玩家退出游戏时或者玩家的重要数据发生更改时,才向DBRS进行数据更新,同时设置本地相应数据的状态(如过时,最新的等);一个connect,指向DBRS服务器,负责在来自LS服务器的数据请求不能本地解决时或者相应数据需要更新时,向DBRS进行数据通信。DBES负责周期性的向DBRS更新当前服务器状态及所用数据。
         DBRS,数据源支持服务器,为全局唯一,负责所有玩家的数据总存储,仅开放一个接口,为accept类型,监听来自任何DBES的连接,并处理其数据请求,负责保持玩家各种数据的一致性和唯一访问性和安全性。(如有来自不同DBES的相同数据访问时,将拒绝后访问者,同时告知先访问者,最终告知终端玩家)。
         关于DBES - DBRS的数据存储约定:
         若DBES在使用某一数据时,若由于系统原因或者网络原因,导致连接中断,DBES本地数据将被置为最新数据,但非一致性数据,同时DBRS方将不再向第二方DBES相同数据请求提供数据,当连接再次可用时,DBES将对此类数据进行强制更新,以保证玩家数据的一致性,但此种情况将导致玩家暂时无法正常进行游戏.
游戏支持特性:
         交易、拍卖、音频聊天及视频聊天(由客户端实现,服务器端仅提供ip及port的转发)、婚姻、彩票、各种类别的聊天、好友、黑名单、陌生人、技能、师徒、任务、合成、宠物、社区+developer暂时没有提供。
支持道具:
        1,防具(头盔+衣服+内衣+眼罩+护腿+护手+靴子+盾牌+披风)
        2,饰品(戒指+项链+护身符)
        3,武器(斧头+弓箭+弩箭+匕首+钉头锤+矛+枪+棍棒+刀+剑+法杖+权杖+亡灵荷叶+采矿工具+收集草药工具+剥皮工具)
        4,恢复类药剂(回复HP+回复Mana+回复精力+回复SK+回复HP&Mana)
        5,解除某一状态药剂(解除冰冻效果+解除中毒效果+解除失明效果+解除伤口撕裂效果+解除诅咒效果+解除攻击反噬效果+解除麻痹效果)
        6,任务物品(各种任务物品,此类物品,玩家不能佩戴使用)
        7,消耗性物品(弓箭+弩箭+道士用的符文+传送卷轴+增益性物品+反增益性物品+变身物品)
        8,宠物(小木马+小鸡+高头大马+机械兽+小兔+小飞龙+翼龙)
        9,各种技能书+技能石
        10,建立战盟需要的物品+建立血盟需要的物品+攻城需要的物品
        11,特殊物品(如服务器单方举行的各种活动物品,在此版本中暂不提供+缴费物品)
        12,翅膀
        13,合成物品时需要的宝石等物品

支持角色:
         人类、野蛮人、法师、精灵、弓弩手、道士、亡灵、匠士、骑士
支持职业性别:
         男、女、无性体
支持主体:
         怪物、npc、(精灵+卡片传播者+搞笑动物+小动物+机械兽,原版本提供支持,但在后来由于时间关系,被删掉,但类似于怪物的实现)、gm、陷阱
         由于本人非专业游戏设计,同时也没有更多的时间用于设计,仅为了能找个工作,同时练练手,所以游戏的设计离商用产品差的很远,如道具的各种属性设计就很蹩脚,同时各种道具及游戏内部需要的数据没有进行填充,仅提供了框架,如快速打击恢复,所需要的每一帧相关的数据,需要专业数据录入或设计人员进行处理,具体可以参考配置目录下各配置文件。
以下为各种道具的说明部分:
各种物品(但不包括一定比例的特殊物品)的等级有:
         普通等级物品------------->最差
         暗色等级物品------------->好
         卓越等级物品------------->较好
         套装等级物品------------->最好
各种道具可以具有的能力有(为可变,如打死怪物等掉落的道具或者合成时生成的道具,非道具的基值属性):
防具可以具有的能力为:
         1,头盔        :
防御+抗击打能力+[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         2,衣服        :防御+增强防御+快速打击回复        +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         3,眼罩        :防御+抗失明+增加视野+[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         4,内衣        :防御+增强体质能力        +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         5,护腿        :防御+快速打击回复        +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
|护手        :防御+提高快速施法能力+水中移动速度+格挡速度        +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         6,靴子        :防御+提高陆地或者沼泽地带的移动速度                +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的一种
         7,披风        :防御+增强防御+快速打击回复                        +[物理抗击+冰系抗击+火系抗击+毒系抗击+电系抗击+魔系抗击]中的两种
         8,盾牌        :防御+格挡速度+格挡几率+盾击成功几率                +五个抗击加成

各种饰品可以具有的能力为:
         9,戒指        :降低某一种状态的持续效果+提高攻击速度+[回复HP+回复Mana]中的一种
         10,项链        :降低某一中状态的持续效果+提高攻击准确率+[回复HP+回复Mana]中的一种
         11,手镯        :防御+[施法速度+攻击速度]中的一种
         12,护身符        :防御+快速打击回复
大多数的道具,其基值包含以下通用属性:
   序号+名称+等级需求+力量需求+敏捷需求+智力需求+统率需求+防御+套装数量+性别需求+人类+野蛮人+法师+精灵+弓弩手+道士+亡灵+匠士+骑士+空间大小x+空间大小y+重量+出售金钱
以下为各种道具的基础属性定义(除去通用属性外):
         头盔        :统率增加+力量增加+敏捷增加+智力增加
         眼罩        :视野+眩晕时间减少
         衣服        :快速打击恢复
         护腿        :躲避几率(远程攻击)+快速移动能力加成
         靴子        :陆地移动速度
         腰带        :物理伤害减少+元素伤害减少+魔法伤害减少
         护手        :游泳速度+施放速度(物理+元素+魔法)
         披风        :全身体重减少
         内衣        :负重增加
         盾牌        :格挡速度+格挡几率
         翅膀        :空中速度+空中速度增加+攻击力加成
         守护        :hp增加+mana增加+sp增加+伤害减少
         项链        :12中frame增加
         戒指        :6种抵抗增加+hp+mana+sp恢复速度
         护身符        :死亡传送
关于武器等道具的属性暂时没有定义。
关于更多游戏特性或类似定义,请参考源程序
# End intro
# Last_Edit_Time 10/07/2005

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2007-2-7 18:31:00 | 显示全部楼层

Re:某人求职简历

csdn回复:
IO2( G*道也):
看过了你写的东西。不是打击你,现在你根本没有进入这个行业的基本知识准备,更不要说整体架构的丁点知识。门外汉要弄明白网络游戏mmorpg内的东西谈何容易!你听说过隔行如隔山这句话吗?什么叫你1个人就可以写魔兽这样的整个rpg网络游戏?汗ing   

"看了代码,全是用c写的,楼上的兄弟也不要打击别人,我看还是写的不错的,不过架构上还需要改进。"   
  to   wy99sinacom(恐恐)   愿闻您的高见,说说他什么地方写得不错?架构上需要改进的是些什么地方?嘿嘿   

to     willsoft(Will)     
   
  你说的几点有道理。其中:   
  2、感觉有点凌乱,不得头绪   
  3、如果做个文字客户端,如MUD那样,可以演示就好了   
   
  说明他根本没有MMORPG的整体架构观,就是说基本没有接触过商业运营的MMORPG的实际经验。如果没有这样的经验来谈什么一个人可以做魔兽、传奇这样的大型MMORPG网络游戏只能让业内人士笑掉大牙。


to     willsoft(Will)   只能说现在的计算机专业的学生太不用命了,不能说明其他什么,呵呵   
   
  楼主最可笑的地方是连什么是RPG,什么是MMO的基本概念都没有弄清楚就迫不及待地吼“我自己完成了MMORPG服务器的制造!”这样滑稽可笑的言论,实际的东西无疑是让自己当众自己扇了自己一耳光!   
   
  这才是问题的本质!而不是他到底懂多少。


把无知当个性不是找工作的好个性,呵呵

呵呵,看了你的说明,更明确了一点,就是劝你赶快去做棋牌类休闲网络游戏吧。真的很适合。至于什么是MMO什么是RPG你确实不懂,而且还走入了歧路。丁点建议,仅供你参考。

请不要坚持将你的这个叫做MMORPG的服务器,因为它确实没有具备那样的基本特性。至于什么是MMORPG服务器的特性你多再学习看看书或者问问能够知道的人。否则以这样的东西去找MMORPG的工作只会被业内人士当成一个笑话!可以负责任地说你基本不会有什么机会。但转向棋牌类休闲网络游戏或许会有一线机会。

我现在早不做你现在做的这类棋牌类休闲网络游戏了,离你很远。你还是找上海业内的人士咨询吧。估计现在全世界都已经知道你的情况了,等等看有会有什么消息吧,呵呵

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2007-2-7 18:32:00 | 显示全部楼层

Re:某人求职简历

汗.看了之后,难道自己找不到工作,有IO2( G*道也)这种强人,我还是不要在游戏服务器设计里混了.55555555555555555

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2007-2-7 18:57:00 | 显示全部楼层

某牛人应聘


经过一个多月的考察和谈判,台湾某有20年历史的软件公司答应让我接手一个小项目,并在深圳组建一个为其长期服务的软件工作室,而在深圳组建的团队需要多少人以及每一个人的待遇由我自己全权评估,所有费用由他们负责。于是,我自己着手准备……   
          昨天,租房的中介公司打电话给我,要我去看房子。而且刚好有一个在电话号码谈好的就住在附近的一个朋友推荐的程序员过来与我面谈。没有办法,只好一边与人谈房子一边与他谈面试的事情。整个感觉,他是一个不错的人,计算机专业,有三年多的工作经验,写过效率很高的服务器……我问了一些关于在CDC中绘图和制作对话框所需要的一些知识,感觉他不是很熟悉,于是我有意要他过来写数据服务器系统。房子谈好了,我要下去取钱交按金什么的,于是与他一起下去,这样可以多谈一些。   
          途中,我问了一些关于文件映射的问题……   
          取了钱又上了楼,他向中介公司的人借了纸和笔,说要给我写一段程序试试。我想了一下,说那就写一个在很多通讯系统中使用的数据缓冲类代码吧,也就是说,在接收数据时候,有可能接收的数据比较快但处理的速度可能比较慢,这需要一个缓冲来把这些接收到的数据保存下来供后续处理,不太复杂了,象管道一样,只要一进一出的两个函数就可以,意思意思吧。一会他就写完了,我一看怎么有这样的语句   char*   Data   =   memset(MAX)   ;我指出来了,他说没有错呀,在说了几次后,突然明白过来,改成了   char*   Data   =   malloc(MAX),我接着问为什么不使用new呢?(他的回答我现在也想不起来了),由于那时候,租房要办他多手续,我就说这样吧,你回去明天把这段代码写好给我发EMAIL吧,不必写得太复杂,意思意思就行。于是就发生了下面的故事:   
今天晚上,收到了他的EMAIL(是昨晚发的),内容如下:(注,除了姓名和联系方式删除外,其它的都只字未改)   
   
  /*   
  首先我讲述一下我自己对new,delete与malloc,free的看法.   
  new与malloc最主要的区别:   
  在与在对象中new会触发对象的构造函数,而malloc则不会,它仅内存分配,new能重载,   
  以便写自己更合理,快速的内存分配,所以new优于对象。而malloc在通用类型,char,   
  int,等更能发挥实力,减少消耗。当然,用同一种方法是很好的风格,这是可以接受的   
  delete与free   
  同上,delete能触发析构函数,优于对象,free对通用类型能更少消耗,风格一致最好。   
   
  说明:   
  写得简单,因为我觉得程序员最重要的是理念。开阔的视眼,如果真正了解底层架构。代码随时随地都能写得安全,稳定,   
  快速,反之,未见得。以我现在的思路来理解,代码就是一种字母组合。只要知道自己要实现什么,要如何才能安全的实现。   
  那函数简直就是几个字母,不必在乎它。不知道我的思想是往更高层次的发展呢,还是退化。但我坚信我自己。   
   
  简单介绍我的编程风格   
  虽然我的编程风格,可能有些人看了不习惯,觉得变量太哆嗦,但我依然。这是我自己发明的一种速记变量的风格   
  变量由以下三部分组成:   
  (中间以下划线_隔开) 变量类型,变量模式,变量简要说明     
   
  函数参数变量: 如LPVOID hwd_f_Param   
  变量类型 变量模式 变量简要说明 合并 注     
  hwd(HWND类型) f(f为flag变量) Param(函数参数) hwd_f_Param   
  (一看就明了HWND类型,函数的,参数的,变量)   
   
   
  私有变量: 如char *Psz_pr_ReadBuffer   
  变量类型 变量模式 变量简要说明 合并 注     
  Psz(P指针,sz字符,字符指针) pr(函数体内private变量) ReadBuffer(读取数据缓存) *Psz_pr_ReadBuffer   
  (一看就明了char   *类型,函数体内私有的,读取缓存的,变量)   
   
  合局变量: 如char *Psz_gb_ReadBuffer   
  变量类型 变量模式 变量简要说明 合并 注     
  Psz(P指针,sz字符,字符指针) gb(程序全局变量) ReadBuffer(读取数据缓存) *Psz_gb_ReadBuffer   
  (一看就明了char   *类型,程序内公有的,读取缓存的,变量)   
   
   
  类私有,保护变量: 如char *Psz_prP_ReadBuffer   
  变量类型 变量模式 变量简要说明 合并 注     
  Psz(P指针,sz字符,字符指针) prP(类private变量) ReadBuffer(读取数据缓存) *Psz_prP_ReadBuffer   
  (一看就明了char   *类型,类私有的,读取缓存的,变量)   
   
  类公有,发布变量: 如char *Psz_prG_ReadBuffer   
  变量类型 变量模式 变量简要说明 合并 注     
  Psz(P指针,sz字符,字符指针) prG(类public变量) ReadBuffer(读取数据缓存) *Psz_prG_ReadBuffer   
  (一看就明了char   *类型,类公有的,读取缓存的,变量)   
  */   
   
   
  读写数据线程,没来得及封装成类   
  const THREAD_IO_PARAM =8888; //线程第二个标注参数,32位值8888   
  const MAX_BUUFER_SIZE =1024*1024*100;   
  CEvent Event_prC_ThrdStart;   
  CEvent Event_prC_ThrdEnd;   
  CEvent Event_prC_ThrdReadDataFinish;   
   
  /*   
  一次分配本行业数据包最大的Size,可以防止多次内存分配,释放,所得内存碎片。   
  最后没有写delete[]Psz_pr_ReadBuffer,在这里代写,说明我申明的时候便考虑到在何处实行内存释放了   
   
  当然有更有灵活的内存管理方法,如可利用空间表的指针链接管理器,大块分配足够内存,分次分配.等,最后   
  写了个简单的空间表指针链接内存管理器,时间匆忙,如您能明白我意思就行,   
  */   
   
  char *Psz_pr_ReadBuffer =new char[MAX_BUUFER_SIZE];   
  //启动线程   
  void BeginThreadIO()   
  {   
  AfxBeginThread(ThreadIOProc,THREAD_IO_PARAM,THREAD_PRIORITY_NORMAL);   
  }   
   
  //线程体,处理任务   
  UINT ThreadIOProc(LPVOID hwd_f_Param)   
  {   
  bool bl_pr_ReadDataPack; //检测是否有新的数据包下载变量   
  //循环读取,中间休眠5分钟=300秒=300*60*1000毫秒   
  const dw_pr_SleepTimeNo =18000000; //无数据时休眠时间   
  const dw_pr_SleepTime =100; //有数据时休眠100毫秒以降CPU   
   
   
  bool bl_prC_Error =false;   
  DWORD dw_pr_TimeArry[2]={dw_pr_SleepTimeNo,dw_pr_SleepTime};   
  while(true)   
  {   
   
  try   
  {   
  bl_pr_ReadDataPack =ReadDataPack();   
  }   
  catch(AAAAAAAAAAAA)   
  {   
  bl_prC_Error =true;   
  //做些错误处理   
  }   
   
  Sleep(dw_pr_TimeArry[bl_pr_ReadDataPack]);   
  /*   
  用数组代替,以提高效率,这是要注意的,判断也会增加程序开销的,虽然   
  很小,但是我们要尽量避免,而用数组,无其它开销   
  if(bl_pr_ReadDataPack)   
  Sleep(18000000)   
  else   
  Sleep(100);   
  */   
  //已完成数据读取,与主线程通信,以便主线程显示一些提示信息给客户   
  if(!bl_prC_Error) Event_prC_ThrdReadDataFinish.SetEvent();   
  }   
  }   
   
   
  可利用空间指针链接内存管理:   
  Class MemoryListBase   
  {   
  static MemoryListBase *Po_prC_MemLstBase;   
  MemoryListBase *Po_prC_MemLstNext;//指向可利用空间表的下一段内存   
  MemoryListBase *Po_prC_MemLstNew;   
  MemoryListBase *Po_prC_MemLstDelete;   
  public:   
  MemoryListBase(){}; //构造   
  ~MemoryListBase(){}; //析构   
  inline void *operate new(size_t); //重载new,以便自定义更合理,快速的内存分配方式   
  inline void operate delete(void   *); //重载delete   
  };   
   
  //重载new   
  inline void* MemoryListBase :perate new(size_t int_f_MemSize)   
  {   
  //如果内存已分配,从MemoryListBase内存管理类中分配   
  if(Po_prC_MemLstBase)   
  {   
  //在上述已定义,不适宜在局部定义,以便每new一次,增加开销   
  Po_prC_MemLstNew =Po_prC_MemLstBase;   
  Po_prC_MemLstBase =Po_prC_MemLstBase-&gto_prC_MemLstNext;   
  return Po_prC_MemLstVar;   
  }   
  malloc(int_f_MemSize); //其它情况就用malloc分配   
  }   
   
  //重载delete   
  inline void MemoryListBase ::operate delete(void   * Po_f_Var)   
  {   
  Po_prC_MemLstDelete =(MemoryListBase *)Po_f_Var;   
  Po_prC_MemLstDelete->Po_prC_MemLstNext =Po_prC_MemLstBase;   
  Po_prC_MemLstBase =Po_prC_MemLstDelete;   
  }   
   
  //最后设置static Po_prC_MemLstBase指针为NULL   
  MemoryListBase *MemoryListBase:o_prC_MemLstBase =NULL;   
   
  


2 楼
由于他是朋友介绍的,而且昨天聊得感觉还不错,于是我就依老卖老地给他写了一回复,内容如下:   
          今天实在太忙,所以给你回复晚了,很抱歉。我现在就你在附件中的内容做一些回答吧。   
  一、关于变量的名命规则。   
          其实关于名命规则已有很多老前辈考虑得比我们还要多还要成熟了,而且也被广为使用。我们自己自以为比较好的规则其实也未必比人家的好,更重要的是,我们的代码在别人看来是很糟的。你得注意一条:代码写出来后,以后维护的不仅仅是我们自己。常用的命名规则与你的其实差异太大。可能你没有在比较大的公司呆过,你对规范编程没有感性的认识。一般来说,全局变量前加g,成员变量前加m_,……这是最基本的规范,对于HWND的前缀,习惯应该是h,在没有上下文要求的前提下,一般写成hWnd。在这方面,还是少一些自己的特色为好。   
  二、我要你写的一个适合于异步处理的数据流缓冲区,也就是在一个缓冲区流中,一边用于输入一边用于输也,类似于一个管道。而你写的我看不明白其意义。而从基本上说,const   MAX_BUUFER_SIZE   =1024*1024*100;这样的定义是有语法错误的,应该是在   const   后面紧跟着类型,还有一个问题是   直接定义这么大的内存,这是很不明智的。如果我这个缓冲区只是用来传送几百字节的内容,你却定义了100M,不感觉有些夸张吗?为了避免内存碎片并不是这样的,现在比较成熟的方案有两个,一是只分配定额(如1024)的某倍数的内存,二是使用内存池。   
  三、从代码来看,你经常性地出现语法错误。这可以说明两个问题,一是写代码不够细心,二是对代码缺乏一种直觉。虽说语法错误可以在编译时间发现,但经常性的错误也很大程度上影响了思维的连惯性,也影响了编程效率。对于有三年以上经验的人来说,应该可以做到,在你视野范围内存在语法错误时能凭直觉找出来,再细查其错误的原因,就象在白墙上发现污垢一样,污垢的类型你可以在进一步检查时才清楚,但你不能凭直觉找出污垢,那就不大能算富有经验的人。   
   
  


3 楼
在我回复发出不久,就连续收到他三个回复,内容如下:   
  --------------------------------------------------------------   
  logical,您好!     
      
      工作并不重要,我主要感兴的在于算法,及优化   
      
  第一,及命名规则,你说的我在N年前就知道了,为什么会有这样的命名规则,为什么不能有自己的命名规则,你对自己的知识完全   
                  没有认知程度,你看看吧,看看微软的命名规范吧,看看多少人用起来不爽,多少人说吧,微软的随意   
                  命名性招许多人说,你却没有自己的看法,却是人云云,这注定你永远都是一个应用程序员,可能我这个   
                  后生说话你受不了。希望你将来更多些创新,如果一天到晚去抄袭别人的代码,认为那就是高手,那你   
                  很难再有提高了。   
      
  第二,我用的是文本文件写的,没经过编译器,在打瞌睡的程序下,用二十多分钟写完的,不信,你写写看。   
                  1024*1024我只是懒得去算,再去用其它。并非不知。100M,是看你接收什么数据,我在上面写了,根据   
                  行业要求,要多大的数据,这只是个例子。我在上面都标注了,你这都看不明白。看代码也并未觉得你细心。   
                  还讲一点,不知道你说的只分配1024的倍数,你不觉得是个笑话吗?每一种对象都可以有一个特定的内存管理   
                  器,这是最优方法,虽然不灵巧,却是最快的,内存大小不是你说多少就是多少,是对象说多少就多少,要算。   
                  内存池我在后面说了,我知道,懒得去写,因为我最讨厌这种应用程序员的问法。   
                    
      
  第三,我想问问你多少算法,如果我是考官,帮我把几个算法写出来,我只怕你连函数调用的开销用汇编指令都   
                  标示不出来,不知道计算机是如何工作的。只知道书上这么说的,就是这么写的,书上说那样高效,噢,我记   
                  住了,那就高效,遇上另一种情况就不知道如何高效了。想想八年的编程经验你是达到何种境界。   
      
          还说一句,有的人软件工作8年经验就能出书,有自己独特的见解,中国太多代码抄袭程序员。看看属于哪类。                  
          也不知道你有没有经常看一些理论深入的话,还是只看看哪种事情怎么实现,把它代码抄下来。你的内存   
          文件映射,内存池,数据输入输出流,网上代码到处都是,这也能作为一个编程能力,我昨晚听到你那种说法,   
          我就知道你对程序的无知,还要一个人来写一段代码,笑,昨晚就不想去你那工作了,回来随意应付了一下。   
          还想告诉你一句话,比尔盖茨说,我宁愿招个学物理的,让他来学程序,也不愿意招个普通软件工程师,意   
          为无创新的代码抄袭员,多看看书,对你有帮助。   
  --------------------------------------------------------------   
  logical,您好!   
   
  再不信,你去网上看看,你这种说法,看招多少人骂。我不跟你辩,有时间,去网上发发帖子。把你的邮件和我回你的邮件都放上去,让人家去说。     
   
          致   
  礼!   
        
  


4 楼
关注。。


5 楼
  
   
  注:   
  我把这些发到网上,是得到他的允许的。   
  我之所以把这些发到网上,是因为我现在有些迷茫了,我真的从基本上就错了吗?我做为一个写了八年代码的程序员,学到的知识和经验都是错误的?我招程序员来做东西,考虑到他对使用VC做界面不是很熟悉而他说自己写过效率很高的服务器,而我也正好需要写一个要求比较高的服务器,于是我问了文件映射和数据流缓冲问题,这也有错误吗?是不是招聘应该问比较有“系统程序员性”问题,象怎么排序怎么查找之类的?   
   
  我是想要找人,可现在我真的犯迷茫了。我应该怎么去招?应该问怎么样的问题?


6 楼
我昨晚说的原话是“你明天把这个代码写好给我发EMAIL看看,不急,我明天也是晚上才可能有时间去看EMAIL了。”而他昨晚到一点多写完了给我,也不好好检查。这并不是在我的意料中的。   
   
  我给了他相对还充足的时间,为什么写完了不检查一下呢?在我看来是一种不良习惯。如果是一个产品,人家给你一年的时间,你会不会花一个月写完了,没有测试就直接推出去呢?   
   
  但愿大家可以讨论一下,骂骂我也无妨。如果我能从大家的回复中学习到点什么,我的目的就达到了。如果大家能从这里学习到点什么,这也算是达到一石二鸟的效果了。


7 楼
本人钻牛角尖的毛病发了,想看看他的代码中是否有可以学习的地方,发现有代码段:   
      Sleep(dw_pr_TimeArry[bl_pr_ReadDataPack]);   
  /*   
    用数组代替,以提高效率,这是要注意的,判断也会增加程序开销的,虽然很小,但是我们要尽量避免,而用数组,无其它开销   
      if(bl_pr_ReadDataPack)   
            Sleep(18000000)   
      else   
            Sleep(100);   
  */   
  注:bl_pr_ReadDataPack定义成bool类型   
   
  我真的没有想到这样可以提高效率,于是我写了一段代码测试,如下   
  bool     B=false;   
  int   Value[]={1800000,200};   
  DWORD   dwTime0,dwTime1,dwTime2,dwTime3;   
   
  for(int   i,temp,j=0;j<20;j++)   
  {   
  dwTime0   =   GetTickCount();   
   
  for(i=0;i<100000000;i++)   
  {   
  temp   =   Value[B];   
  }   
   
  dwTime1   =   GetTickCount();   
   
  for(i=0;i<100000000;i++)   
  {   
  temp   =   B?1800000:200;   
  }   
   
  dwTime2   =   GetTickCount();   
   
  for(i=0;i<100000000;i++)   
  {   
  if(B)   
        temp   =   1800000;   
  else   
  temp   =   200;   
  }   
   
  dwTime3   =   GetTickCount();   
   
  TRACE("%d     %d     %d\n",   dwTime1-dwTime0,   dwTime2-dwTime1,   dwTime3-dwTime2);   
  }   
   
  输出结果是:   
  703     954     953   
  703     953     937   
  719     953     938   
  719     953     937   
  719     937     954   
  718     938     953   
  719     937     953   
  703     954     953   
  703     953     953   
  703     953     953   
  704     953     937   
  719     953     938   
  718     953     938   
  719     937     953   
  719     938     953   
  703     953     953   
  703     953     953   
  704     953     953   
  703     953     953   
  703     953     954   
   
  如果把上述代码中的bool     B=false;改成bool     B=true;,得到下面结果:   
  719     953     1297   
  718     938     1312   
  704     953     1312   
  703     953     1297   
  719     938     1312   
  703     953     1297   
  719     953     1297   
  719     937     1313   
  703     953     1297   
  719     937     1313   
  703     953     1297   
  718     954     1296   
  719     938     1312   
  703     953     1297   
  719     953     1297   
  719     937     1313   
  703     953     1297   
  719     937     1313   
  703     953     1297   
  719     953     1297   
   
  由于其它的操作都是相同的,故而花时的差异可以视为三种方法的差异性。得出两个结论:   
  一、在条件为false时,if语句与?语句是相同的,但条件为true时,?语句比if语句要优一些。   
  二、使用数组的方式比使用?语句在100000000次运行中,可以节省250个千分秒,相对于if语句,可以快近一倍。   
   
  更一个问题是,把bool做为下标,有些不大好懂。增强了可维护性。这相对于提高的这么一点点效率,我个人看法是不提倡。


8 楼
我把代码搞到我的机子上的结果是这样的:   
  B   为false   
  453     469     406   
  469     453     406   
  453     469     391   
  468     453     391   
  453     453     375   
  469     469     390   
  485     453     375   
  453     453     391   
  469     453     390   
  453     454     390   
  453     453     422   
  485     453     390   
  454     453     390   
  485     453     390   
  469     485     406   
  453     469     406   
  469     453     390   
  454     453     390   
  469     453     391   
  453     437     407     
   
  B   为   true     
  609     453     438   
  593     469     391   
  578     453     391   
  563     453     391   
  578     468     407   
  593     438     391   
  593     453     375   
  578     453     391   
  578     453     375   
  578     453     391   
  578     453     375   
  578     453     375   
  625     485     422   
  578     453     375   
  578     468     375   
  610     453     406   
  594     469     406   
  609     453     375   
  610     453     391   
  593     453     407     
  ======================   
   
  我的结果和楼主的好像一样。   
  结果反而是反过来的。   
   
  从楼主的结果种看到的是第一种运算比较好。但我这里却正好是if比较好。   
  不知道其中的原因是怎么样的?   
   
  不过进行了这么多次的运算才能提高这么一点点效率。也真够好笑的。面试的这位朋友真是丢了西瓜捡到芝麻。在我看来还是代码的可维护性重要一些。   
   
  代码不是写给一个人看的。软件发展到现在的阶段,已经不是一个人或者几个去完成一个大型的软件了。软件的大规模生产现在已经开始了。开来这位面试的朋友了解新事务也不是怎么的快。要是有5000个人同时在做一个项目,由他做老大,不知道这位面试的朋友会怎么样?让其他4999个人都去适应一个人的代码规范?真的是很可笑的事情。   
   
  任何事情的创新并不是将老的事务全部驱除掉。而是要留其精华,去其糟粕。这样才能发展下去。   
   
  


9 楼
突然又想起了以前看到了一个文档《高质量C++/C编程指南》。我想很多人都看过。   
  其中的前言里这样写着:   
   
  博士毕业前半年,我曾到微软中国研究院找工作,接受微软公司一位资深软件工程师的面试。他让我写函数strcpy的代码。   
  太容易了吧?   
  错!   
  这么一个小不点的函数,他从三个方面考查:   
  (1)编程风格;   
  (2)出错处理;   
  (3)算法复杂度分析(用于提高性能)。   
   
  其中编程风格在第一位,也是有他的道理的。   
  也想听听大家的意见。   
  对我也是一个学习的机会。   
  


10 楼
那位面世的朋友有点孤芳自赏了,很清高。我觉得他没有弄懂理论和应用之间的区别。或许他适合在大学或者研究机构里面待着,去研究算法之类的。但是如果做软件开发,不可能做到完全不参考别人的代码,因为高效比他所谓的创新重要得多。   
  


11 楼
偶是比较赞同那位面试者的观点,我们现在的程序员太多的沉溺于抄袭,沉溺于所谓的经验和技巧,没有自己的见解和认知,很少有人真正的去深入研究。中国有了太多的copy代码为生的程序员,只有很少一部分成长为软件工程师。   
  关于编程风格,我觉得不需要去强求所谓的规则去限制,只要对每个function做个简单的注释,再加上开发档案就足够了;如果你觉得看不懂不能接手做二次开发或维护,那只是个人能力不足而已,即便加上去代码也属于垃圾代码,不动也罢。   
  以上纯属个人观点


12 楼
呵呵,最烦这种人。。。强烈建议搂主不要招这种人(暂且不说水平如何。这种人很多时候以自己为中心,无法与其他人合作。)   
   
  再看他写的代码:   
  一边说如何高效执行,而竟然在代码中使用Sleep。使用Sleep意味着你的这个线程在等待期间无法知晓,更无法及时响应任何事件。一般在服务器中应该更多的使用异步的通知机制,在尽可能少的线程的基础上更多的保证线程的执行效率。(线程切换时需要时间的)   
  


13 楼
shootingstars说的对,自以为水平多高,结果稍微一看错误成堆,即便是水平高也不能以自己威中心,么具有良好的团队精神.我觉得工作2年后的程序员都比较谦虚和务实了,不再谈论多高多高的水平,而是以能做出多好的项目或者产品为目的了


14 楼
平和的心态和团队精神很重要。


15 楼
其实我也遇到过楼主这样的尴尬。。。   
   
  半年前招聘了一个相当能吹的博士,号称Com,Corba都熟悉,可是要他做一个小的Active控件,他却说需要找人替他做,说自己只需要指导就行了。。。   
  我一直弄不懂自己都不了解的东西,如何去指导其他的人!?   
   
  你的面试者一直没有清楚他自己的身份,请他来是需要做事情的,不是请个导师来培训学生的。   
  我相信你的面试者看过不少“理论”方面的书,但是我也很肯定他“几乎”没有自己完成过一个独立的项目(new和malloc需要回去才知道区别。。。实在不好意思说什么了)。   
  开发软件是一个“实践”的过程,这些没有实践经验但是又自命不凡的人最合适的地方是学校。   
   
  最后,还是强烈建议楼主以后遇到这样的人,避而远之的比较好。   
  请神容易送神难,请这样的自负并且以自我为中心的人会极大的招致项目其他成员的反感,从而影响成员间的团结。   
   
  呵呵,不好意思,有感而发,打住打住。


16 楼
机器烂,不敢跑那么多次。   
  我的运行结果是这样的:为FALSE时:   
   
  931     1272     1252   
  941     1262     1272   
  1022     1351     1433   
  991     1272     1282   
  991     1292     1312   
  为:TRUE时:   
  951     1282     1743   
  961     1282     1752   
  922     1212     1712   
  931     1272     1803   
  1101     1322     1753   
  和楼主的结论一致。


17 楼
楼主要招人。请问楼主需要什么样子的人呢?简单的说一下吧。还有怎么和你联系啊。


18 楼
自己的风格不应该过多体现在代码外观上,应该体现在思路上。而且即使有自己的风格,在软件工程中也首先强调团队。


19 楼
bool   作为下标是绝对不允许的。对于c的bool规定,0   是   false,   非0   就是   true,所以作为下标存在逻辑错误。


20 楼
深刻的感受到此人自吹自擂。满目疮痍的代码还口口声声说写高效率的算法!   
  唉,尘世间的渣滓耳。


21 楼
这年头真有意思


22 楼
鉴定:   
          一、太以自我为中心,缺乏团队合作精神;   
          二、代码风格太差;   
          三、工作不认真、不仔细,错误百出;(用的是文本文件写的,没经过编译器,在打瞌睡的程序下,用二十多分钟写完的)   
          四、沉迷于小技巧,没有大局观;   
   
  结论:不予录用   
   
  ps:我看这个人三年的程序白写了,应该好好看看《高质量C++/C编程指南》   
  楼主也不用和这样的人校真了,让他多碰几次头好了   
  


23 楼
不过这样讨论到学了很多东西啊,呵呵


24 楼
成大事而不拘小节???我不同意!感觉中国的古语真是害人不浅!   
  呵呵,别忘了万丈高楼平地起,世界上没有实用的空中楼阁的。只有你做到小节才能成大事。   
  我喜欢有钻研精神的程序员,但是我不喜欢固执己见的,顽固不化的程序员;   
  我喜欢勤恳的程序员,但是我不喜欢只会打字的程序员;   
  我喜欢务实的程序员,但是我不喜欢不论环境而一直务实的程序员。   
  社会在发展,相关的软件、硬件技术也在发展,一点点的CPU时间没有什么大的影响。   
  考虑问题首先得有一个前提条件。


25 楼
看完了,学到一些东西   
   
  从目前的现有情况看,尚不知道此人究竟是真正的高手,还是只会说自己不屑编码、不屑规则、崇尚“创新”,扯了块“理论”大旗作护身的庸人。   
  


26 楼
我看这个楼主也有该骂之处:没有大局观,纠缠于这么一个细枝末节;没有自信,被一个啥都不懂的小屁孩几句话就说的迷糊了???   
   
  试想你现在做的是什么事,还有多少重要的事情要做?你这不也是本末倒置吗???   
  退一万步来说,即使你发了这个帖子所有人都说你对那又怎么样?你即不是那个人的老师也不是那个人的父亲,教育他不是你的义务和责任;   
   
  说的严重一点,如果我是投资方,我就会重新考虑是否将这个项目给你做了;   
   
  最后奉劝楼主:赶快把这个帖子结了,该干嘛干嘛去,不要再浪费时间了:)   
  


27 楼
所谓代码风格   其实就是让别人看起来容易懂   看起来不会很反感   容易修改和维护   
   
  看看微软的风格吧   
   
  不管是windows源代码     还是   一个简单的   htc   
   
  注释简明扼要       函数命名清晰       变量名规则       。。。。      
   
  看起来清爽   
   
   
  再看看上面的       感觉自己再做智力题


28 楼
--------------------------------------------------------------   
  logical,您好!     
      
      工作并不重要,我主要感兴的在于算法,及优化   
   
   
  ------------------------------------------------------------   
   
  程序员都这样     都以为自己是老大     
   
  要不   还要项目经理干吗?


29 楼
楼主别大惊小怪了,这年头什么人都有哩!


30 楼
嘿嘿


31 楼
此人会是一个好的code,做不了一个好的programmer。   
  楼主莫气,弃之可也。   
  另外,楼主可以建议他从事自由软件开发,他可能走出自己的路出来的。:)


32 楼
此人会是一个好的code,做不了一个好的programmer。   
  楼主莫气,弃之可也。   
   
  另外,楼主可以建议他从事自由软件开发,他可能走出自己的路出来的。:)


33 楼
一看就是高手,看了几行我就够了,我会建议他去其它部门,至少我不会要这样的人。   
   
  他写的东西以后谁来维护?怎么维护?   
   
  说句难听点的“这样的代码是垃圾”


80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2007-2-7 18:57:00 | 显示全部楼层

Re:某人求职简历

34 楼
个性太强,太过自信


35 楼
mark


36 楼
375     515     453   
  344     453     422   
  344     422     406   
  328     500     422   
  328     422     422   
  359     516     406   
  313     422     406   
  312     407     406   
  328     406     406   
  313     437     469   
  313     422     406   
  312     422     469   
  312     407     422   
  296     422     407   
  390     500     563   
  312     422     406   
  328     438     406   
  313     437     391   
  328     437     391   
  328     422     406   
   
  375     516     422   
  359     485     421   
  313     422     422   
  312     453     438   
  344     468     469   
  328     453     438   
  375     453     422   
  328     453     469   
  312     422     422   
  328     422     422   
  344     422     437   
  328     453     438   
  344     437     453   
  328     438     469   
  328     453     453   
  422     437     453   
  344     453     453   
  329     468     422   
  313     422     500   
  328     437     422   
  


37 楼
看了上面的评论忍不住想说几句:   
  1。从技术角度看,这名程序员的代码是典型的C语言风格,非常注重细节,但是他在对细节的把握上还是有欠缺,有些东西似是而非。   
          首先,象这种用数组的方式去优化IF语句的事情,其实不一定就能达到目的,因为程序在通过不同的编译器优化后会产生不同的结果,   
  而且即使编译器优化了,具体到计算机系统执行的时候,计算机系统内部(硬件层次)也还会有一个优化(大家可以看看计算机系统结构   
  ),尤其是现在的微处理器各有各的优化方式,因此执行效率当然也有所差异.我想aben_king(阿笨)兄之所以得出一个相反的结论,恐怕   
  和这些因素有关。其实,象这种优化问题应该交给编译器和微处理器生产商,与程序员无关。没有一个人能保证自己的代码在任何编译器   
  和微处理器下运行都是最优的。   
          其次,关于重载new,delete函数,说实话我从来没有用过这个技术,不过我把搂上贴出来的程序与Effectvie   C++(中文版,以下简称         
  EC)书中的范例程序比较了一下,发现了一些问题.第一个问题就是当你重载new,delete函数的时候“你的函数的行为应该与缺省的operator     
  new   保持一致性”(EC,p33),很显然他没有做到(最起码他的程序没有触发对象的构造函数).第二个问题是如果分配失败的话"则应该遵循条   
  款7所描述的规则,并抛出一个型别为std::bad_alloc的exception."(EC,p34)具体关于重载new,delete函数要注意的事项Effectvie   C++   
  中的内存管理这一节有非常详细的说明。如果随便重载new,delete函数又不遵循必要的规范,导致的后果可能非常严重,内存泄露,非法   
  指针。。。。。。过于轻率的对待内存分配问题只会使程序的可靠性、稳定性大大降低。   
          最后,既然他那么注重细节就不应该犯一些基本的语法错误(重载new,delete的语法就是错的)。   
            
  2。从管理角度看,他个人意识太强,过于强调底层技术自命清高,不屑与其它程序员交流(从他的EMail中说话的语气推断出来的)不太   
  适合团队开发,很难和别人合作开发。对一个项目而言,他可能就是一颗定时炸弹在最关键的时候,他会以自己掌握的底层知识来和你对   
  着干,他只会做他自己认为正确的事情不会服从项目经理的指挥。因为,他根本就没有把任何人放在眼里。   
   
   
  补充一点,我就是一个代码抄袭程序员。我觉得"抄袭"无罪,我们编写代码除了完成功能以外不是在一直强调可重用性吗?既然有人写了   
  类似的代码,我为什么就不能重用一下呢,难道还要重新造轮子(我们用的API函数就是人家微软编写好的代码阿,那个Windows程序员不   
  是天天"抄袭"这些API做软件的?我没见过那个人写一段Windows程序连带自己去实现API的)再说了,你多抄一点就可以省很多时间,项   
  目就有希望按期完成,项目完成了就有Money啊。我可不想和钱过不去!:)


38 楼
呵呵


39 楼
好长好长,看得头都大了


40 楼
编码还是要有软件规范的吧,如果你写的代码是一个人自己欣赏完弄的,那也罢了;但是,如果你是在公司,你是在市场竞争产品,那么你必须要有一个基本的产品质量意识和产品规范意识吧?很难想象,粗制滥造的产品会得到用户的认可,会有市场前景???   
   
  楼主说的那人不适宜做产品和项目,让他去研究所做算法研究去或许会好点,他那样的人根本没有半点质量意识和产品意识,说的难听点,就是井底之蛙、闭门造车!


41 楼
我觉得,合作能力很重要,不然,自视甚高,怎么合作?编码能力,这个好培养,团队精神,懂得与别人合作,才是最重要


42 楼
呵呵   都比我牛


43 楼
学习中,收获不小


44 楼
to   StockViews   (股视)   :   
   
  看了这么多,忍不住要说点什么。   
  其实你根本不必把这件事放在心上,因为现在这种自高自大却没有什么真才实学的程序员很多。   
   
  关于变量命名,我赞同你的观点,必须遵守大部分人的规范,不应该另搞一套。求伯君的那样可以独自写WPS的程序开发不会再有了,以后的软件项目需要更多人的参与和合作,也就需要大家都能遵守一套规范,以便你的继任者和合作者能够更好的读懂源码。那位面试的朋友的别出心裁的发明让我很看的很痛苦,他并不能强迫别人都去习惯他的命名方法,这对源码的维护和升级都不是一个好事。其实我觉得程序员的能力不应该体现在创造命名方式上,一个好的程序员应该遵从约定,用通俗易懂的命名方式、稳定灵活可移植的程序结构和高效率的数据算法来体现能力。我还是习惯m_iWndWidth这类命名方式。   
   
  那位面试的朋友对new的malloc都不太清楚,相信他对c语言的理解并不是很深,在绝大数场合都应该用new来取代malloc。   
   
  说点废话,其实项目的合作中除了考虑技术因素,还要考虑人的合作精神,如果大家都像那位面试的那样自负,一个人一套观点,一个人命名规范,那这个项目肯定要砸锅。我还是觉得,现在的软件开发越来越需要有合作精神的人,需要可埋下头来焊芯片脚的人,那些没拿过电烙铁却想直接画电路板的人迟早要祸害项目开发。   
   
  提到合作精神,这两天刚碰到一件事。项目组里一个私交不错的朋友为了自己模块的开发方便,居然把共用的数据管理的DLL的函数接口改掉了,然后我这里执行GET后几个模块一个联调,他自己的模块没出问题,别人的模块出问题了。后来才搞明白他派生了那个dll中的一个类,却担心父类中的功能函数会影响子类的功能,所以把父类的功能函数注释掉了。且不说他对C++语言理解的错误,更重要的是他忽视了和别人的合作,对于共用的链接库和COM根本不应该修改,只应该通过派生子类来实现新的功能,万不得已要改底层模块时必须和其他有关人打个招呼。那位朋友的技术也不错,可为什么连这点合作精神都没有呢?多人的项目开发中,缺乏合作精神会给项目开发带来很多麻烦的。   
   
  不好意思说多了呵呵   
  


45 楼
呵呵,完成了今天应该做的事情,又上来了。   
  看了上面所有朋友的回复,很谢谢。可惜骂我的人太少了些。   
   
  好象有朋友误会我的意思了,因为我放到这里来并不是为了生气或别的什么,也不是什么“没有大局观,纠缠于这么一个细枝末节;没有自信,被一个啥都不懂的小屁孩几句话就说的迷糊了”,这点小事也不足于让我生出气来的,呵呵……我只是为了让更多的人看看,并对自己的一些想法进行反思。当然,还有一层意思是,就是希望志同道合者(与我的想法大致相同的人)能与我一起做些什么。   
   
  工作这么长时间了,去应聘了N回,也为公司招聘了N回。应聘对于我来说,应该没有什么困难,在十多次的面试经历中,只有一次通不过的记录(人家只给我四道题,我只能勉强解决一道,呵呵),别的面试都是双方欢喜,就算我后来没有去那公司上班,我与面试的考官倒也成了多年的朋友。但招聘在我看来还真的很难,曾有过的几次招聘中,到现在为止还没有感觉很成功的案例。   
   
  顺便把这次招聘的条件列一下,有兴趣的朋友可与我联系。   
  一、使用VC有两年以上经验,MFC比较熟悉,对CMap、CArray等模板比较熟悉。   
  二、对开发服务器系统有一定的经验(至少熟悉文件映射和大文件的处理),或能熟练使用CDC绘图和能按正常的要求制作对话框。   
  三、对常用规范有一定的认识,并能严格按照制定的规范来开发。有足够的耐心,具备团队精神,能与他人共享成果和分担责任。   
  待遇嘛,在3000到6000之间,没有其它任何的福利,也没有保险。   
  感兴趣的朋友,可以给我发EMAIL:logical@szonline.net   
  


46 楼
bool     B=false;   
  461     751     511   
  370     751     511   
  370     752     510   
  361     751     511   
  380     741     531   
  360     752     510   
  371     741     531   
  360     751     511   
  361     761     500   
  371     751     521   
  370     751     521   
  361     751     510   
  361     751     511   
  360     751     511   
  361     741     520   
  361     751     501   
  370     741     521   
  371     751     510   
  371     751     521   
  380     811     581   
   
   
  bool     B=true;   
  450     742     510   
  371     741     511   
  360     751     511   
  370     752     510   
  361     751     521   
  370     741     521   
  371     741     510   
  371     751     501   
  370     731     511   
  371     751     520   
  401     771     511   
  370     761     511   
  371     751     520   
  371     751     521   
  370     761     621   
  371     751     531   
  390     882     540   
  371     751     511   
  370     751     511   
  371     751     520


47 楼
  
  楼主要招人。请问楼主需要什么样子的人呢?简单的说一下吧。还有怎么和你联系啊。   
   
   
  


48 楼
我看这个楼主也有该骂之处:没有大局观,纠缠于这么一个细枝末节;没有自信,被一个啥都不懂的小屁孩几句话就说的迷糊了???   
   
  试想你现在做的是什么事,还有多少重要的事情要做?你这不也是本末倒置吗???   
  退一万步来说,即使你发了这个帖子所有人都说你对那又怎么样?你即不是那个人的老师也不是那个人的父亲,教育他不是你的义务和责任;   
   
  说的严重一点,如果我是投资方,我就会重新考虑是否将这个项目给你做了;   
   
  最后奉劝楼主:赶快把这个帖子结了,该干嘛干嘛去,不要再浪费时间了:)   
   
  


49 楼
一看就是高手,看了几行我就够了,我会建议他去其它部门,至少我不会要这样的人。   
   
  他写的东西以后谁来维护?怎么维护?   
   
  说句难听点的“这样的代码是垃圾”   
   
  


50 楼
6k~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  ~~~~~~~~~~~王


51 楼
楼主你是要设计人员还是编码人员,还是身兼两职?   
  如果是编码人员那没有什么可以说的,要么应聘者能达到一个通用的标准要求,要么你的公司有自己的编码标准,并有能力培训员工。没有什么需要讨论的。   
  我觉得还是招聘的人目的不清楚。


52 楼
软件就是规范,算法,排错。这点都做不到,谈什么开发?   
  现在非专业的人做开发越来越多,也越来越多的人不注重这些。做出来的东西一个字:烂。没办法。我一般都找专业毕业的,三年以上经验的,这些人经历的多了,比较注重这些东西。


53 楼
待遇嘛,在3000到6000之间,没有其它任何的福利,也没有保险。   
   
  在深圳,这个价钱很一般。


54 楼
我做了7年程序员,我的代码都是别人的,我没有自己的代码,真是的。只是我把别人的代码合理的组织了一下而已。


55 楼
待遇确实太差了,要求还挺高.呵呵.....


56 楼
商量一下能够在后面再加个0吗???


57 楼
什么是抄代码?   
  按面试者的话来说,全世界的程序员都是在抄代码,大部分程序员用的都是微软,SUN等软件巨头公司的代码.你强的话你就自已写一套类库吧,不要去用人家的类库.别以为你在调用人家的类,继承人家的东西就不是抄代码,就连你用的那个malloc函数代码都是人家写的.如果你不抄的话,那你重写一个此函数出来吧,看看你的函数有没有人家写的好.   
  社会分工的细化讲究生产效率,最别人之长补自已之短有何之过?我们做一个项目没有必要什么东西都自已重头写吧.干脆我们真的从硬件做起,接到一个项目后首先进行如下操作:   
        设计电路--买电子器件和芯片--组装计算机和测试--开发操作系统---写编译器--开发自已的类库或函数库--然后开始自已的项目!!   这样就可能爽透了!!!!!!!!!


58 楼
呵呵.....   
  终于看完了...   
  我也应该好好吸取下教训..   
  努力谦虚的学习.....   
   
  我可还是大学生,不像哥哥们这样,能干...   
   
  看了这篇文章,收益非浅


59 楼
关注一下,像这种贴子挺感兴趣的,基本同意楼主观点,坚决反对自以为是的人,如果楼主的那个面试者也在看这个贴子的话,请不要自命清高嘲笑反对你的人,至少一点,你以为很多人骂楼主的现象没有出现,而且结果正相反,由于可知,你的想法并不一定对,请自省。


60 楼
呵呵,那么你让他自己写个Quake的引擎之类的东西试试。我觉得这个家伙完全把注意力放在了所谓的“底层效率”上。早就有人说过软件工程的重要性,其中一条就是代码的可重用和可维护上,这个家伙以为他比世界上的软件工程师都牛吗?不大可能吧。   
   
  另外我想提一点,所谓“我想问问你多少算法,如果我是考官,帮我把几个算法写出来,我只怕你连函数调用的开销用汇编指令都.......”,呵呵,又是底层啊。我要说明的是,一个算法最重要的是在于其思想,而不是是实现,当然,实现的时候不能太胡来就是了。算法的空间复杂度和时间复杂度都有其各自的理论知识,而不在于使用汇编,C还是java,当你的算法从数理角度得到高效的证明的情况下才要注意其实现语言和实现方式,那位老兄不是说算法牛吗,给他几个算法改进试试,比如并行算法之类的。仅仅用实现方式提高的效率是很小的,必须从根本思想上提高才行。我觉得这个家伙既不适合做理论研究也不适合进入团队,牛的话自己写产品好了。   
   
  最后,俺觉得这个家伙完全就是写代码写多了,底层东西看多了,同时又掌握一点理论知识,就把整个东西扭曲了过来,记住一点,奇不胜正。   
  当然,比代码实力估计要比人家差好多。


61 楼
看来楼主对内存管理的知识也是不太深入,所以难怪人家不服气你。   
   
  


62 楼
三人行,必有我师焉。   
   
  怎感觉楼主有点号召大家贴大字报的味道


63 楼
楼主搞一套编程规范出来不就得了?   
  两年前,我还和人争执过   
  fun   {   
  }   
  和   
  fun   
  {   
  }   
  的区别。其实没啥区别,规范叫你怎么做你就怎么做。要不然想做你工作的人还等着呢。


64 楼
楼主主要是没有具备整体的服务器端架构的整体概念。   
   
  如果楼主做过比较复杂、高效的   MMORPG   的服务器端就知道了,呵呵


65 楼
to   IO2(G*道也):   
    你说的对,我虽写过一段时候的服务器程序,还毕竟没有经过正规的培训。只是凭自己的一点点经验就写了起来,当然在应用过程中还是可以满足要求的,只是不知道是否算高效。   
   我有些不大明白,我好象没有在这里没有涉及到服务器端架构什么的,您怎么知道我“主要是没有具备整体的服务器端架构的整体概念”?真神了,呵呵   
   
  避开什么面试的事,讨论一下服务器的技术如何?   
  难道说,在服务器端采用文件映射不科学吗?我还提过一点,就是分配内存的时候以某常数的整倍数为单位分配,我想这应该是有好处的吧?我习惯上这样写:   
  DWORD   nNewSize   =   (DWORD)   (ceil(nRequestedSize/1024.0f)+1)   *   1024;   
  PBYTE   pNewBuffer   =   (PBYTE)   VirtualAlloc(NULL,nNewSize,MEM_COMMIT,PAGE_READWRITE);   
  //注:nRequestedSize为实际要求的内存长度,nNewSize为真正分配的内存长度。   
   
  如果你认为有什么不妥,还敬请帮我提出。面子事小,能让服务器稳定、高效地跑于几年是大事呀。


66 楼
呵呵,多分配1024内存了,(ceil(nRequestedSize/1024.0f)+1)*1024 改成   ceil(nRequestedSize/1024.0f)*1024就行


67 楼
你首先搞清楚你的“内存管理”还需要包括什么内容,似乎是你认为只有内存分配就能保证你的“内存管理”高效。如果你还知道需要注意些什么,你可以写出来共同探讨。   
   
  基本的概念都很重要,所以说你没有整体架构的经验单从这一点就可以看出来滴。   
   
  你多看些书和多问些人或者多有机会做些工程才会有更多的体会,呵呵


68 楼
分配内存的时候以某常数的整倍数其实是没有必要的,操作系统的分配内存时考虑了对齐。服务器程序最主要的是预测自己需要的内存,尽量减少内存的申请(包括重申请)和释放,建立自己的内存池等


69 楼
看这帖从昨天看到今天,感触彼多   
   
  1:     团队精神   
  2:     编码规范   
   
  前两点在做项目开发时肯定得遵守,一个项目的按时按质完成才能得以保证   
   
  3:     "抄袭代码"   (重要的是这个引号)   PS:   时代在前进,牛顿早就说过了,要站在巨人的肩膀上!     
   
   
  最后问一个小问题,上面提到的   
  fun{   
  }   
  还是   
  fun   
  {   
  }   
  这个问题,   大家用得多的是哪个呢?   
   
  小弟还混在大三   ,向前辈们不断学习ing


70 楼
fun{   
  }   
  还是   
  fun   
  {   
  }   
   
  前者你要考虑你的函数名过长的时候,还有眼睛要往右看然后往左看,如果是后者就方便多了。   
  


71 楼
待遇嘛,在3000到6000之间,没有其它任何的福利,也没有保险。   
   
  说实话,这个待遇在深圳也就是代码民工阶级的了,任何一个有2年以上工作经验的人都可以达到这个数。人才与金钱一个也不能少。


72 楼
我记得fun{   
                }是SUN公司的标准   
              fun   
              {   
                }则是MS的标准   
  请指正.   
  所以我写JAVA用前面的,写VC用后面的.


80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2007-2-7 18:58:00 | 显示全部楼层

Re:某人求职简历

73 楼
楼主要招的不是个性强的牛人,是需要平和,有团队意识的人。   
  毕竟开发是需要合作的,不是需要个人主义


74 楼
晓得了,谢谢上面两位仁兄   
   
  


75 楼
一直以来都很想编一些高性能服务器的产品级程序,以前只是较粗糙地写过完成端口的代码,可惜公司里没有相关的项目.不知楼主愿招俺不?


76 楼
up


77 楼
晕死,,才几K,何必要求这么高。。。   
   
   
  其实关键是人


78 楼
哈哈,招我吧,不要据于小节,能做出来符合要求就行了,不要像某位人兄说的Sleep没效率,要说算法,有,都线程+信号量,不过这增加了复杂度和调试开销,没有必要的地方Sleep还是不错的


79 楼
哈哈,招我吧,不要据于小节,能做出来符合要求就行了,不要像某位人兄说的Sleep没效率,要说算法,有,多线程+信号量,不过这增加了复杂度和调试开销,没有必要的地方Sleep还是不错的   
  


80 楼
楼主要兼职么?   
   
  我在深圳。   
  时间和上网条件可以保证的。   
   
  如有意,看看我网站:   
   
  www.happytango.com   
   
  有我联系方式。   
  谢谢。


81 楼
如果此人能够真正的认识到自己的问题,我建议楼主可以给他一个机会,毕竟你需要人手啊!   
  恭祝楼主事业顺心!


82 楼
挺长   看了半天   呵呵   
  我很菜   但是从一个菜鸟的眼中看合作很重要   乔丹也很厉害   但是一场比赛如果乔丹得分过高,球队肯定输球   那个应聘者也许很牛(我没看出来),如果我招聘,就算他比比尔盖茨还牛我也不要他


83 楼
这么长的贴?


84 楼
效率很高的服务器?   
  呵。这段代码个人认为看不出跟效率和服务器有关的。


85 楼
这里一般连sleep可能都不用,直接一个seamphone估计就可以了。


86 楼
Sleep()没什么不对的,要看用在什么地方。   
  多线程也不一定效率就高。


87 楼
能否麻烦各位高人写个分配50个整型数的内存空间的语句出来给小弟参考参考?   
   
  int   *p;   
   
  p=                                   ;   //   这个空该怎么填?   
   
  感谢。


88 楼
int   *p=new   int[50];   
  


89 楼
呵呵,看到上面有几位兄弟似乎对sleep仍然情有独钟?   
  sleep意味着什么?意味着调用这个指令的线程主动放弃了自己对CPU的拥有权,并且不知道什么时候能够醒过来(记住:Windows不是实时操作系统,Sleep(50)不意味着线程50毫秒后回醒过来,如果系统繁忙,线程多的话,也许是很多个50毫秒以后才能够回来)   
   
  也许sleep用在效率要求不高的地方无所谓,但是搂主指明了使用在对效率要求很严格的服务器程序上,我觉得sleep还是尽量少用的好。   
   
  我经常看到很多帖子上问如何减少CPU的利用率,几乎最“简单有效”的方法就是Sleep。其实,很多时候都是设计的问题,不应该用轮询+Sleep的方式解决。   
   
  


90 楼
to   sevencat(七猫)   :   
  能用malloc写一个吗?不要new的。


91 楼
int   *p   =   malloc(sizeof(int)   *   50);


92 楼
同步+轮询+Sleep   
  ->异步+队列+seamphore   
   
  


93 楼
to     xiao_xiao_zi(笑小子):不对啊


94 楼
to     xiao_xiao_zi(笑小子):不对啊


95 楼
int*   p   =   (int*)malloc(sizeof(int)*50);


96 楼
楼主对服务器端使用高效的hash算法有什么体会吗?你知道高效的文件、磁盘和大量相关联的元素都使用什么算法来高效实现的吗?   
   
  你知道内存的碎片是怎样产生的吗?有什么处理的算法来实现高效的处理吗?   
   
  你知道++a和a++等看是平常的操作在效率上有什么巨大的差别吗?   
   
  如果你连基本的架构概念都没有,就不要谈什么服务器端的高效设计这样的话题了,呵呵


97 楼
不是说什么情有独钟,而是Sleep()作为一个系统调用,必然有适合它的地方。   
  最近写了一个每秒处理几万条消息的服务器,界面更新就是起个单独的线程用Sleep()来做的。简单,有什么不好?谁让你把Sleep()用在繁忙的工作线程上了?


98 楼
根据多年的服务器端工程实践的经验才知道服务器端的水海了去的深啊,所以根本不敢喘什么大气,没有想到现在的新人都这么“牛气”,根本没有什么大型项目的实际经验就拿点什么“传说中”的谈资,竟然敢出来大圈忽悠,看着巨汗啊,哈哈


99 楼
毛阿   
  能赚到钱的就是好程序员   
  你在有用,拿不到钱,也屁用没有   
  


100 楼
to   IO2(G*道也):   
        谢谢你的批评,我可能真的连“基本的架构概念都没有”,但只是批评我知识的穷乏并不能帮到任何人呀。如果有有这方面的见地,还是希望你能把基本的架构概念写一写,这样我可以学习学习,能看到这贴子的人也能得到提高。   
        我个人的想法是,自己写出来的文字是别人需要花时间来看的,所以要么不写要么就写对别人有意义的.我发这个贴子,我相信还是有人从这里学到一点东西的.但从你回的N个贴子看不出你的水平,更重要的是,没有人可以从你的回贴中学到任何东西。   
        关于你所提到的什么hash算法呀什么高效的文件、磁盘和大量相关联的元素什么什么的,我本无才,我只知道使用VC中的CMap呀,或WIN下支持的什么文件映射之类的。   
        关于内存的碎片产生的原因,我想一般学习过写程序的人都知道吧。至于怎么去避免,这是各人有各人的招,我个人喜欢使用系统页的整倍数去分配和使用内存池等,别的就没有想过了。不过上面有人说系统页的整倍数去分配这并不能起来什么作用,不过凭我的经验还是有一定意义的,当然或许我的经验是错误的。我还是想请你对此有所述,当小弟们学习学习。   
   
        对于你上面提到的“写个分配50个整型数的内存空间的语句”,我不大能明白在一个常用的内存分配中能玩出什么花样来,还望赐教。   
   
          我的口号是:只求合适的,不求最好的。我上面所说的高效,只是基于我们的具体应用中,让用户感觉到足够快就成,如果能在0.1秒之内能得到响应,我也不会花太多的精力去追求0.001秒或更短的时间得到响应。   
   
          我一直是搞应用的软件的,在我看来软件是以用为本。只要能满足用户的需要,能解决用户的具体问题,而后期的维护又不至于太麻烦就可以了。如果要我造跑车,在满足一般跑车的一般要求之外,我或许可以考虑怎么去处理让更安全一些,但我决不会花时间去解决一辆跑车怎么能同时容纳20人这个问题。   
  


101 楼
^_^


102 楼
够用就行,稳定最重要。


103 楼
搞程序对一些无关的东西吹毛求疵,自己不觉得累吗?


104 楼
to   IO2(G*道也):   
    "你知道++a和a++等看是平常的操作在效率上有什么巨大的差别吗"   
  -------   
  这个就真的不知道"巨大"在那里,   
  好象只是书本上说a++   比++a   多执行一条指令而已,   
  在优化的编译器里,a++   跟   ++a   编译出来的代码是一样的,根本不存在"巨大的差别",   
  即使是"多执行一条指令",在运算强度不大的地方根本就是无关痛痒的


105 楼
作为合格的服务器端设计人员更不要说是重要项目负责人连hash算法的重要性根本没有认识而只会简单应用CMap呀,或WIN下支持的什么文件映射之类东东是比较...   
   
  至于别的,如果持这样的看法,多说无益,我只有无语中......


106 楼
to   IO2(G*道也):   
    "你知道++a和a++等看是平常的操作在效率上有什么巨大的差别吗"   
  -------   
  这个就真的不知道"巨大"在那里,   
  好象只是书本上说a++   比++a   多执行一条指令而已,   
  在优化的编译器里,a++   跟   ++a   编译出来的代码是一样的,根本不存在"巨大的差别",   
  即使是"多执行一条指令",在运算强度不大的地方根本就是无关痛痒的   
   
  ----------------------------------   
  如果   a   是一个自定义类,   并且重载了   ++   运算符,   那么,   a++,   ++a   的效率是可以有"巨大的差别"的


107 楼
"你知道++a和a++等看是平常的操作在效率上有什么巨大的差别吗"   
  -------   
  这个就真的不知道"巨大"在那里,   
  好象只是书本上说a++   比++a   多执行一条指令而已,   
  在优化的编译器里,a++   跟   ++a   编译出来的代码是一样的,根本不存在"巨大的差别",   
  即使是"多执行一条指令",在运算强度不大的地方根本就是无关痛痒的   
   
  ---------------------------------   
  如果   a   是一个类,   而非基本数据类型,   那么   a++,   ++a   是可以有"巨大的差别"的


108 楼
MARK


109 楼
楼主在服务器端设计上水平确实不怎么样,其实前面已经有人提到了内存池、hash算法、完成端口之类的,说得难听的,你有点井底之蛙的感觉。   
   
  IO2(G*道也)   说得恰到好处,楼主有时间去研究一下squid的源码,就知道自己的短处了。   
   
  虽然说那位面试者并不是一个好选,但是让人钻到空子,总有点遗憾吧   
   
  其实天外有天,人外有人,低调一点,学会尊重人家一点,何必跟人争个高下


110 楼
那位大哥能够开一个高性能服务器的讲座啊!


111 楼
Mark~     什么时候我也招人去


112 楼
发现三角的也不会比红星的差


113 楼
IO2(G*道也)看来你是做服务器的高手啊   有时间向您请教


114 楼
我觉得双方面都有责任,你的错误在于,你的管理经验缺乏,你做为一个管理层,为什么要去管编程的细节问题?你知道如何权利下放吗?如果使用你的工作方式,你会在工作中把自己的精力耗尽,你只需要给他“目标、要求、资源”,只要他按时完成工作,他就是好的员工,至于完成标准你当然首先就要明确!   
  你太关注技术细节:)提升你的管理水平吧,我觉得这才是当务之急!


115 楼
xw995(萧萧)   
  说的有道理,,是要权力下放,如果编程细节也管。。那么人少时,你会觉得累,人多时,你会倒在椅子上:心脏病突发而死。


116 楼
扯远了,不过SQUID是蛮强的,文件读写和网络读写全部用单线程轮询搞定了。   
  只有open的时候估计还是阻塞的(作者还写了注解在那里,说这个没办法了)。


117 楼
我只看了前面几张贴,觉得这只是一个招人的问题.没必要讨论到那么远去.面试者的实力如何,我不好说.但楼主既然是招人,应该找一个适合这份工作的人.招的是工人,不是皇帝,没必要他十全十美.至于那些题外话,应该各有各的观点.我就认为一切从工作出发,对工作有用的就要,不习惯也要用.


118 楼
mark   
  


119 楼
mark


120 楼
这个贴子很长,但是我也看光了


121 楼
很久没有上来了,   现在完成了手头的工作上来逛逛,   顺便结一下贴.   
   
  有不少朋友批评我没有管理经验,不应该有管编程的细节问题.   其实,我并不属于管理层,   我不过是项目的负责人而已,   确切地说,   我只负责项目的实现以及实现所需要的其它工作(包括招聘).所以代码还是要写的.   管理经验我还真的没有多少,   朋友们说对了.     
   
  有不少朋友批评我没有服务器的设计水平不怎么样.   这我还倒真有些不大明白,   我这里并没有涉及到服务器的设计问题,   你们是怎么知道我的设计水平的?   还请明示.   另申明一下,我并没有象某些朋友所说的对hash算法的重要性没有认识,不客气地说,我对所有能在普通书籍市场上能方便买到的资料上提到的所有算法,我都是比较熟悉的(当然对于某个高难度的甚至地有专利的算法,我就不明白了).   我相信IO2(G*道也)是一个很有经验的服务器开发者,写过"比较复杂、高效的   MMORPG   的服务器端",如果他愿意我倒很愿意能向他请教请教。不过在现实中,不仅仅是MMORPG这样的服务器。我在看来,常见的服务器有三种,一种是更注重连接数而不是数据流量;一种是更注重数据流量而不是连接数;第三种是连接数与数据流量同时注重。IO2(G*道也)写过的可能是很注重连接数的,但我的具体需要是数据流量而不是连接数。   
   
  我招人的目的,其实只是为了减轻我的工作强度,所以我是按需要而招,不象人家大公司有财力物力,可以培养一大堆的后备人才。我要招的无味是两种人,一是对服务器有一些经验的,可以写出质量不错效率还行稳定性可接受的程序,二是对界面有一定经验的,可以在CView上画些图画些曲线以及可以制作比较美观的对话框。很明显,我这里需要的不是牛人也养不起牛人呀。我的要求只有一个,那就是“可接受的”。你可以骂我没有进取心或说没有精益求精的革命精神,但我不能与钱过不去呀,虽说那钱不是我的,但人家的钱也是钱呀。   
   
  报告一下,现在我已招了一些人,但还不足够。我的思路是:宁缺勿滥。可以写慢一些,甚至可以写不出来,但不可以写出错误百出别人看不明白的代码。但我面试过的很多朋友中,有由于真正牛的这里的庙太小供不起的(这基本上都成了朋友,呵呵),有说自己很牛写得很快可惜错误百出的,有说自己很牛但很简单的语句都写不出来的,也有明白地说自己不大懂,希望给一个机会的……。现在招到的都是不太牛但我相信有一天会真正牛起来的人。   
   
  大老板前几天带了他们那边的资深技术人士过来验查工作,结论是他们没有看错人,做得比他们当初想象的还要漂亮,呵呵。故他们有意在近期把在台湾的一些案子移到大陆来,但我劝他们放慢一些,我这里还没有消花完,呵呵   
   
  结贴了。

52

主题

637

帖子

1420

积分

金牌会员

Rank: 6Rank: 6

积分
1420
发表于 2007-2-8 00:59:00 | 显示全部楼层

Re:某人求职简历

真长,看完,感觉就是,不厚道。

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2007-2-8 10:45:00 | 显示全部楼层

Re:某人求职简历

.......太长了........@~@

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-2-25 23:46:00 | 显示全部楼层

Re:某人求职简历

真长。没看完。

产品出来成功才是王道。没出来没成功,啥高手?屁都不是。
自己没有成功产品证明自己之前,老老实实做孙子吧,哪怕你再NB再高手。不好意思。没人理你。
产品成功了,嘿嘿,代码写得再烂再乱,人家会说这是你的个人风格!卡马克式高手!

很显然上面的“高手”都犯了一个毛病:在没有证明自己的东西之前还在给自己吹牛B。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-2-27 10:28:00 | 显示全部楼层

Re:某人求职简历

郁闷,比我牛多了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 08:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表