‘壹’ 程序员是做什么的
程序员一般的工作是从事程序开发、程序维护。
程序员是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。具体工作职责如下:
1、负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态。
(1)程序员和老爸游戏扩展阅读:
职业要求
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。
尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。
一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
‘贰’ 做游戏属于什么程序员
程序员是游戏产业中的老兵了。
在游戏产业刚刚开始发展的那段时间,制作一款游戏往往是一个人的事情,而那个人必须在精通编程的同时,还极富技术创造力。
时至今日,虽然许多程序已经发展到模块化,但对游戏程序员来说,岗位仍然要求他们具备较高的技术水平和创造力,因为不论游戏性和情节对一款游戏有多重要,如果没有最基本的技术扰弯支持,所有的游戏性和情节都只可能建立在空中楼阁上。
程序员必须具备技术水平和创造力的另一个原因,是为了符合玩家的需求。
无论如何,玩家都希望展现给他们的游戏,能够将现有的硬件和技术发挥到极致,他们想要更快的运行速度、更好的人工智能、更高的画面分辨率、更华丽的特效和更真实和深刻的游戏置入感。所以基本上每一款新游戏都要结合新的程序技术,因为只有程序员在不断地进行着技术的革新,游戏才可能真正做到让玩家满意。
由于国内主要的开发重点都放在网络游戏上,因此从国内现有的开发环境来看,程序人员大致可以分为以下一些类型:
1、引擎开发人员(enginedevelopers)
他们是负责构建游戏基础平台的专业程序员,与其它程序人员相比,他们更专注于开发一个可供别人利用的引擎,他们会将更多的时间和目光放在对游戏逻辑和游戏内核的研制和封装上。
2、客户端程序员
客户端程序员通常负责网络游戏客户端的研发,他们更强调游戏的画面表现和一些人机界面的效果,所有玩家在玩一款网络游戏之前要下载的客户端,就是这些程序人员的工作成果。
近年来随着游戏3D化的持续进行,客户端程序员也开始逐渐从之前的2D美术表现向3D美术表现转移,通常来说客户端程序员都是强调画面和图形的,因此站在纯程序员的角度分类,客户端程序员也可以称为图形程序员(graphicsprogrammers)。
3、服务器端程序员
与客户端程序员相对应的是服务器端程序员,他们负责网络游戏服务器端的研发工作。由于网络游戏的特点,服务器端程序员往往更强调的是对游戏数据的处理和计算,而对游戏的画面表现并不在意,服务器端程序员必须让自己的程序能够接收和发送来自客户端的数据包,同时还要对这些数据进行相关的计算。相比较而言,服务器端程序员更强调对游戏引擎的掌握,因为游戏的服务器端是否稳定,是真正决定一款游戏能否被广泛接受的主要原因之一,同时服务器端程序的好坏,直接关系到对游戏系统的维护和优化,甚至关系到外挂等网络游戏常见的相关问题。
4、开发工具程序员(ToolsProgrammers)
开发工具程序员负责创建支持游戏开发的各种工具。
由于游戏的研发工作是合作的产物,因此在游戏研发的过程中,程序人员往往需要开发出一些专用的工作,用来给相关人使用,最常见的就是游戏的地图编辑器等,还有一些诸如特效编辑器、后台管理工具等。
在国内,工具程序员往往是由其它岗位的程序员来森租兼任,这种不明确的分工也正代表了国内游戏产业的不成熟。
5、其它缓春闷程序人员
除了上述几种程序人员之外,程序人员还可以根据工作的内容,分为负责编写人机界面的界面程序员(interfaceprogrammers)、负责网络数据交换及优化的网络程序员()、负责实现游戏人工智能的人工智能程序员(AIprogrammers)、负责将音乐音效添加到游戏中的音乐音效程序员(audioprogrammers)以及负责测试和保障游戏软件质量的测试程序员(QAprogrammers)等。
当然,并不是所有的游戏公司都会如此细致地对程序人员进行职能划分,正如前文所说的那样,行业的不成熟性让游戏公司在对岗位职能的描述过程中,充满了灵活性和模糊性,因为对国内现阶段的游戏研发来说,重要的是能否做出产品,而不是如何去进行细致的分工。
不过随着行业的不断成熟以及行业规范的持续建议,相信一个更完善的程序人员工作职能划分体系,会很快出现在所有从业者的面前,因为行业规范的过程,就是岗位职能明确的过程。
‘叁’ 现在学习编程专业的发展怎么样
现在学习编程专业的发展挺好的,就业前景好。
1、电脑行业需求量大,工作很好找,而且工作环境也不错。
2、电脑行业的工作与社会接触都比较紧密,紧跟潮流,所以见识和思知想都会比较开放,也有利于以后自己发展。
3、学习电脑入手道比较快,学习难度不是很版大。
4、现在有些学校有一些技能加学历的政策,不过主要看你自己的选择,上大学虽说听起来好,但是很多大学生都是毕业即失业的,还不如趁早学习门技术,毕业就可以工作,选对了好的行业,以后的发展空也会很大的。可以去学习计算机网络,现在学编程就是不错的选择。
软件业的优势:
1、服务性强:软件产品售后服务工作量大,软件开发企业在做系统集成必须要了解用户的需求,在产品售后还需要更具实际情况不断改善,所以它也是具有制造和服务特征的行业;
2、高智力投入:软件开发多以脑力为主,不需要太多固定资产,生产成本;
3、高成长:全球软件市场以每年13%的平均速度增长,远大于世界经济的平均增长速度;
4、高附加值:一个软件产品诞生后的附加值大约是CPU的2倍、存储芯片的3倍、硬盘的5倍;
‘肆’ 《猪猪侠》中猪猪侠有几位爸爸
我认为《猪猪侠》中猪猪侠有5个爸爸。作为童年的记忆,《猪猪侠》应该大家都听过。作为一部浓缩了我们童年的高质量动画,猪猪侠用他内心的爱和善良一次又一次地剥夺邪恶力量。但有趣的是,猪人不止有一个父亲!今天,让我们来看看猪猪侠的爸爸。
普通的小职员。与其他猪爸爸相比,这个爸爸在“地位”方面很普通,毕竟他只是一个没有能力的小而普通的员工。但是从猪侠的内心来说,也许这是最完美的父亲。 虽然这头猪的父亲没有什么特别的天赋,但从“父亲”的角度来看,他很能干。他给了猪一个温暖的家。小猪难过的时候,会和他说话。 他是一个普通但内心坚强的好父亲。所以我觉得《猪猪侠》中猪猪侠有5个爸爸。
‘伍’ 聊一聊程序员会玩自己开发的游戏吗_有没有适合程序员玩的游戏
看需要什么语言开发了,成为一个程序员,需要学习旦毕很多,编程语言有C、C#、java等,一个大型的软件是由很多人组成的一个大型模猛芹团知肆队开发的。
‘陆’ 一个好的程序员至少应该具备哪些条件
楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,
and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还
是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据
说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前
身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在
Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封
喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿
个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你
怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯
伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把
Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同
事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯
发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI
的主要作者之一。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄
聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实
战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC
上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein,
然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说
自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人
是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"
,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听
取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以
上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过
呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还
是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们
叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意
思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别
人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发
员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然
后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷
爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。
他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而
归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite
word"。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,
学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,
或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句
吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别
人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高
爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞
出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比
赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n
美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可
谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没
有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让
老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那
完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我
们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带
谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他
捐献了好多作品,都可以在网上看到,比如着名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche
老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主
要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是
计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山
仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是
他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不
知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,
于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很
快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX
代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清
净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只
好继续郁闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码
里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器
编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译
器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系
统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开
发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David
Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的
是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设
计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初学者
想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写
出了Unix下第一个基于位图的窗口系统,并且是着名的blit终端的作者。当然了,罗伯
伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多
少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯
含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越
来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的
革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不
遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道
了。具有超强容错和负载平衡能力的分布式文件系统GFS
(现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统
也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的
说),更不用说处理海量并行计算的各式google服务了。Rob在System Software
Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到
他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。
想必Rob Pike在google很幸福。愿他做出更棒的系统。
Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.
Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前
身是B,而B是Ken Thompson一手做出来的)。两人1983年分享图灵奖,是有史以来少数几
个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,
所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛
不衰近30年,至今生机勃勃,DMR此生可以无憾的说。
D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有
成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和
逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成
形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D
不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。
Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来
人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接
受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来
领导自己的团队在1995年和1996分别推出了Plan9和Inferno操作系统,又用多少人知道
呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond
在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁
知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次
采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当
然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意
识奠定了C广为流传的基础。
最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜
欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就
是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开
发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也
就长留你我心中乐。
P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。
据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写
得最少;但说到编程,Ken爷爷才是当之无愧的老大。
Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短
路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。
其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,
无非是戴爷爷在1956年为了展示新计算机
ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最
短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒
太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙
着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专
业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表
在Numerische Mathematik的创刊号上,权为捧场。:-)
EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较
深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。
戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工
作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要
知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情
愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变
得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,
接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博
士论文,顺利戴上博士帽。
让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日
没夜地工作了8个月,就搞出了Algo60,也因此获得了 1972年的图灵奖。因为Algo60,
戴爷爷发表了一篇石破天惊的文章:Recursive
Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,
所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。
而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员
都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科
学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。
说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是
专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴
爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系
统,并培养计算机科学家。几年后,THE Multiprogramming
System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统
没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小
组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就
喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作
来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷
从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。
EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。
Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作
品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当
如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:
http: //java.mblogger.cn/iexploiter/posts/1505.aspx
Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看
看牛人的丰采。
‘柒’ 游戏程序员的基本要求
1 ,C游戏程序员现状
中国C程序员100%都是自学的。因为中国几乎没有象样的C培训机构。大家都知道社会培训是赚钱为主要目的。能在那里成才是个大运气。也不象JAVA有SUN公司一手推行。中国大学教育里也根本没有C教学。关于C/C基础课的知识,只是让学生入门。但对于实际的C软件工程应用,大学课本知识实践意义不大。最重要的是,大学里没有合格的C老师。编程是门技术,叫手艺也行。而大学是搞科研的,多的是科学家,靠出PAPER教科凭职称为生。并不是技术员。没有10万行以上代码经验和成功软件项目经验的人,很难教出中高级C程序员。
游戏制作业对C程序员的要求是比较高的。比一般行业软件高很多。因为任何一个MMO都是个中大型软件项目。日使用人次达到几十万上百万,同时使用人数几十万在线的大型网络多人交互软件,集成了超过十几项专业领域编程技术的软件,想不大都不行。
另外,中高级C程序员能力一般都很强。因为都是自学成才,这需要较高智商,很强的自学能力,解决问题能力,和克服困难的毅力。但是这种人才在游戏行业里人数并不多。抛开凤毛麟角具备整体大型软件架构能力的高级人才不谈。能够承担独立模块开发,具备独立解决问题的能力,写出在空间,性能,可维护性等几个方面达到要求的C程序员,也是很难找到的。而具备这些能力,同时又具备一些专业领域技术的人(图形引擎,网络引擎,等),更加稀少。
所以,即便是大游戏公司,对于C游戏程序员的需求,也是永远不能够得到满足。而已经在公司工作的C程序员,不经过短则3个月,长达1年的锻炼,也无法真正胜任独当一面的C游戏程序开发工作。
2 ,MMO游戏开发对C游戏程序员要求
前面提到,所有MMO游戏都是中大型软件。软件占用空间,稳定性,性能,可维护性等各项衡量软件质量的指标,对MMO游戏软件的要求都非常严格。远大于普通行业软件。这种规模和银行系统类似。而客户端和软件逻辑比一般的商业软件又要复杂很多倍。这就要求软件编写人员具备较高的程序编写素质。
游戏软件中,解决好软件工程部分,只是项目的1/3。另外两部分是策划和美术/音频。从经验来看,需求变更对于MMO游戏软件,不是偶然事件,而是一种MMO游戏软件开发的基本属性。游戏软件投入大,周期长,风险高。MMO市场变化也大,交互电子游戏发展迅速。游戏软件必须面对外界变动。又因为开发周期长,所以软件需求变动成为了软件开发的一种基本属性。犹如复杂性是软件工程的一项基本属性一样。
这导致游戏软件的开发充满了不确定性。交互娱乐不同于商业应用。娱乐是属于理性和感性之间的领域。而C开发面对就是0和1的二元世界逻辑。这两个领域存在着不可调和的矛盾。这种情况,对C游戏程序员提出了更高的要求。
首先,基本C知识,C/C运用技能,必须极其扎实。并不是游戏软件开发用到什么平时书本上很难得到的知识点或者技能点。游戏C开发的知识体系和技能体系,利用现有C书籍就可以满足。比如《CLANGUAGE》《C PRIMER》《EFFECT C》《MORE EFFECT C》等。但是在开始游戏编程之前,把这些书本吃透并且实践熟练的人,非常难遇到。当然能够真做到这点的人,已经是个中高级C程序员了。我曾经遇到过一个,毕业工作不久就去了GOOGLE
其次郑腊,对于面向对象的深入理解。是非常重要的。熟练掌握C/C语法,编程技巧,只是满足了C游戏程序员一部分要求。而面向对象观念的深刻理解,会为大型C项目开发带来翻天覆地的喊裂滑变化。有时候,在一个10人以上并行开发的C游戏项目中,面向对象方法会成为救命稻草。《设计模式》以及《设计模式解析》相关的书籍,也是必修课。
最后,好技术人员的本质是自大的。这属于正常。但是如果这种习性影响了自身继续提高和团队合作。以及影响了其成为技术管理者和项目技术核心时,那么这种技术人员的自身价值会大打折扣。如果早日越过自命不凡这一关,扩大眼界,继续在综合素质上提高。在技术管理能力,源宽架构能力上提高,其自身价值才会继续增长。落到实处,就是待遇和身家增长。
由于游戏开发的本质是团队开发。任何时候,只有对一个团队有价值的技术人员,其本身的价值才有可能得以体现。
3 ,成长和技术发展路线
一般技术人员发展有几个阶段
1 ,具备独立开发局部功能的能力
比如为某个UI编写逻辑接口函数。为某个LOGIN对话框编写自绘制控件等。
2 ,具备独立开发和攻关某个功能模块的能力
比如为游戏增加一个小型逻辑功能模块。
3 ,具备独立设计并开发某个系统的能力
比如设计和开发AUTOPATCH 系统
4 ,具备解决技术难题,设计架构的能力
比如开发网络同步仿真系统,开发一个中大型游戏制作工具
5 ,具备整体架构,管理,协调其他人共同开发一个大系统的能力
客户端主程,服务器主程,引擎主程等
6 ,技术director
制定技术发展方向,技术团队建立,技术管理等
在迈向每个阶段的过程中,伴随的都是巨大的工作量和工程压力。有时候是跨越1年的失败等等。在公司项目不成功时转换单位,重新开始,或者继续做为核心团队留在公司继续从新的机会做起,都是好的办法。但关键是吸取经验教训,尽量多学多练。并且结合自身长处发展。当然,游戏制作人员,最好还是依靠一个核心团队。成为核心团队的一员。
能够达到第三档的程序,已经是公司不可缺少的人才了。但往往程序员自身对自己的认识,和公司对其的认识,有时候会有差异。我碰到过一些人,脑子好用,写东西很快。各种技术都有涉猎。但总是不放心让他独立开发设计某个系统。哪怕是相对独立的工具。也会被搞得一塌糊涂。要后面人不停擦屁股。可自己还觉着自己水平很高。这种人浮躁,眼高手低,不愿意细致周全的做好一件完整的事。所以就可以看到他不停的跳来跳去,可在新公司的职位也没有见多么提高。公司非常重视交给一个程序员一件事,他是否能完整,考虑周全的把事情做完。哪怕时间长一点,也不能不做完。这会给工程带来致命的后果。