做一个真正爱好开发游戏服务端爱好者都必备的条件 https://www.gmbbs.net/
我十几岁时开始写
游戏服务端,十多年来一直在教人们写游戏服务端。我还经营着一家软件公司,随时可能倒闭。主要开发语言是C#。
首先,我不认为《算法导论》是所有游戏服务端编程员从一开始就必须掌握的东西。
我无意否认一些核心课程的重要性,但我们必须看到,许多游戏服务端编程员不理解游戏服务端编程员的三个浪漫的编译原则,图形和操作系统,但这并不妨碍他们在日常工作中创造各种有价值的软件。
这样说的原因是:
技术的不断进步降低了这个行业的门槛。并非所有游戏服务端编程员都需要系统而全面的学习才能胜任。
随着多年来编程语言和开发工具的快速发展,我们可以使用诸如C#、Java和Objective C之类的语言来完成大多数开发任务(而不是在纸上打孔或使用汇编),并使用诸如Visual Studio之类的酷开发工具。这并不是因为制造商仁慈地将游戏服务端编程员从困境中拯救出来。正是微软这样的制造商取悦了我们的老板和客户。——技术开发的目的是降低软件开发的使用标准,从而降低软件行业的人力资源成本,更快、更好、更便宜地满足用户的需求。
从公司的角度来看,如果要求所有的开发人员都有坚实的基础和全面的技能,那么雇佣人员的成本肯定很高。我完全相信* * *鸟的毕业生经过一定的培训和选拔,能够在经理的正确管理下很好的工作。虽然他可能不理解算法和数据结构,但c和c基本上不能理解。这并不妨碍他为公司创造价值。随着他开发经验的增长,在时间允许的情况下,增加一些基础知识是完全可能的。
几年前,有一个带引号的“学生”,因为我没有真正教过他。我从中专毕业,主修钳工。我曾经在我的手臂上留下一条长长的伤疤,说是被车床弄伤的。
当他要求我学习时,他还处于初级阶段。他学到的第一件事不是三件浪漫的事,而是C#。在掌握了一门编程语言之后,他很快学会了其他语言(甚至是德尔菲),一年后,他找到了一家小公司做一些基本的开发工作,然后涉足安全领域并开发了各种工具。现在他在一家保安公司工作,升职很快,收入也很高。不久前,他向我讲述了他与互联网监管人员合作获取证据和传讯的工作经历。
2006年,凌晨2点多,我看见一个服务员在夜市(399000英镑)的小吃店里看一本电脑书(一眼就能看出来)。仔细看了一本爪哇语初级读本后,我意识到这个女孩毕业于护理学校,但我对电脑感兴趣,想在小吃店省下学费。她还拿出一叠油渍纸贴纸,都是她写的。她说每次去网吧,她都要安装一个开发环境,这太麻烦了,所以她就在纸上写了。我再也受不了了。我给一个开软件公司的朋友打了电话,强烈推荐这位姐姐去实习。听到这个情况,我的朋友说不。我说只要你照顾好他的工作餐,他就不需要报酬。一个月后,妹妹进入有一个试用期,两个月后成为正式成员。后来,她在一个朋友的公司工作了将近两年。据朋友说,她有很强的发展能力。后来,我不知道。
作为一名教师,总是这些“学生”打动了我,而不是那些坐在教室里浪费父母时间的学生。
有些人可能认为这样的游戏服务端编程员是“疯狂的方式”,不值得关注,但这并不妨碍他们努力工作,为公司创造价值,改变他们的生活。
如果这些人想系统而全面地学习计算机科学的基础课程,他们需要多少时间和金钱?他们被允许在他们的环境中这样做吗?如果他们不这样做,他们不会成为“真正的游戏服务端编程员”吗?
如何成为一名真正的游戏服务端编程员?
在我看来,——个能够根据客户的需求(或上级的要求)选择合适的技术方案(或根据上级的指示)来开展开发工作,并在合理的时间内完成开发任务并满足质量要求的人是真正的游戏服务端编程员。
成为这样的游戏服务端编程员其实并不难。
在这个答案中,我想把游戏服务端编程员分成两个层次:
L1——游戏服务端编程员是那些能够根据上级的指示和公司的要求和规范进行开发的人。
L2-能够根据客户需求选择合适的技术解决方案并制定合理的工作计划,单独或与一个名为软件工程师的团队一起完成开发工作并满足质量要求。
我认为标题所有者可能想成为后者,而不是普通的编码者。事实上,我接触到的游戏服务端编程员很少仅仅从事简单的编码。他们大多数是软件工程师。
软件工程师应该具备哪些能力?我们以前已经得出结论:
1.分析问题的能力
2.设计解决方案的能力
3.代码实现的能力
4.排除故障的能力
如果要发展这四种能力,它们应该写得足够长,而不是暂时的。
开始回答“——”如何变成“如何”的问题。
科学家追求知识,工程师追求能力。但是能力很难来自书本,只能来自实践。
我注意到在这个问题上,有人提到读书并不安静,看视频也太慢。从一个特定的项目开始有可能激发学习兴趣并获得成就感。
让我们给出第一个路径建议——,从C语言开始。
之所以建议使用C语言,是因为C语言中没有那么多现成的、功能强大的类库。当你不熟悉基本的语法和面向对象的概念时,C#实际上比C语言更难理解,也更难深入。学习C语言并不局限于掌握C语言的语法,而是通过学习C语言,建立了编程的思维,并深刻理解了一些计算机系统的工作原理。
在我的教学课上,我的教学内容是以这种方式组织的,而这门学科似乎是以这种方式学习的:
第一阶段高级编程语言的基本概念(编译、库、链接等)。),利用开发工具(Visual Studio 2010)、C语言的基本结构和VC中的一些差异,可以达到按书输入游戏服务端、编译和运行的效果。
第二阶段变量,指针,表达式,函数,分支,循环,简单的输入和输出。
第一阶段和第二阶段通常很短。
在第三阶段,第一个小游戏服务端(如最简单的超市收银机系统)开始了。这时,学生们开始长大了,因为许多要用的东西根本没有告诉他们,即使在网上找到的信息也不能用于这个项目。学生们被我一个接一个地带进了深坑。我从来没有告诉他们答案。我总是希望他们努力思考一周,然后在下周的课上开始谈论解决问题的想法和方法。
经过一个月左右的折磨,他们基本上可以完成一个独立的超市收银机系统,完成输入(从键盘,不需要扫描枪),修改输入,价格查询,汇总和结帐等功能。从知识层面来说,基本解决了结构、指针和文件访问问题,简单的搜索和排序算法也是附带学习的。
可以说,这是学生最痛苦的阶段,但正是这个阶段开始培养他们的自学能力。这太重要了。然而,效果也很明显。到期末,少数学生开始向我提出解决方案。
在那之后,我会带学生去复习这个游戏服务端,看看如何做得更好,运行得更快,复习和重建它。
因为游戏服务端是由纯C语言完成的,所以看起来总是很混乱,而且修改或扩展也不太方便。所以我们开始探索另一种面向对象的编程思想。在这个过程中,他们需要实现字符串类、封装数据结构、业务逻辑和数据访问。
这里,一个学期结束了,第二个学期要求学生把这个控制台的黑色窗口变成一个图形用户界面。不允许使用MFC,只允许使用一个名为Easy- x的的图形库,并且只允许使用putpixel函数来绘制点。新一轮的折磨开始了,从画点、破折号、逐点书写汉字、画按钮、画文本框、响应鼠标和键盘开始,并要求他们开始设计和实现文本框、按钮、图像等.顺便说一下,消息循环等机制也是初步理解和简单实现的。
到这个时候,一些学生已经开始“高度模仿视窗”。你想太惊讶吗?
在这一点上,我基本上可以相信我的学生不会被C#和Java吓倒。更重要的是,——学生拥有真正游戏服务端编程员必须具备的核心能力:自学能力和独立解决问题的能力。