如何才能学会编程并且精通,编写自己的软件?

如何才能学会编程并且精通,编写自己的软件?,第1张

其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。编程不是一种知识,而是一门手艺。我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。但是学手艺可不是这么学的。我们先拿游泳举例,游泳不是知识,而是技能,也可以算门手艺吧。需要预习吗?需要上课听讲吗?不需要,因为两岁小孩都能学会游泳,他们连话都不太会说呢,怎么可能听课预习呢。游泳是通过在水里的练习,教练手把手地传授动作,一点一点提高熟练度学会的。

其实编程也是同样的道理,孰能生巧,建议可以看看百战程序员的学习资料,很实用,对你的提升也会有帮助

没有哪个行业像IT行业这样快速频繁地经历着变革,同时也对我们的个人和职业生活带来着巨大的影响虽然像财务和人力资源等其他部门的进步可以为企业提供更高的效率但IT的进步却能够改变企业的本质,实际上也能改变我们的生活方式人工智能、大数据、云计算、区块链、数据库自动化;IT的创新正变得越来越快,并且跨越整个技术堆栈今天的IT专业人士应当如何跟上行业不断变化和发展的步伐?不仅有更多的技术需要学习,需要更快速地学习,而且在当今快节奏并且永不停歇的商业世界中人们越来越难以挤出升级技能水平的必要时间。开发并维护现有系统、管理新项目、IT规划、实施、升级、优化——更不要说期间的所有日常任务所有这些加在一起成为了今天IT人员的重担,使他们再也挤不出专门的学习时间然而,你越是不学习最新技术,你的知识和技能就会越濒临过时你的市场价值和职业前景与你紧跟最新技术的能力密不可分。无论你从事哪种工作,都要确保不断发展你的知识,技多不压身!

1)首先选择想学习的编程语言,计算机语言的种类繁多,但是大体可以分为机器语言,汇编语言,高级语言以及脚本语言。不同的语言难易程度也不相同,可以根据自己的情况进行选择性学习。初学者建议从一门高级语言开始学习。下载和安装编程软件。

2)开始学习编程了。学习编程的过程中入门是一个很重要的过程,尤其是对于编程一点都不了解的初学者。可以购买所学语言的参考书,更可从编程软件的帮助文档获取帮助。

3)上机码代码,依据教材的例子进行编程的实践是个关键。只有在上机码码调试过程中才能领悟编程,学会编程。

4)一个简单的项目了,一是为了巩固所学的知识,把我们所学的知识串联起来。可从简单的数据库应用开始,解决一些难点,学会一些技巧。

5)充分利用网络资源,查找和获取知识点,解决编程过程中遇到的难题,更会促使学习动力。

6)需要精通一门编程语言,也需要了解或学习其它的编程语言,因为基本的编程逻辑思路是类似的。

如果一个精通C语言的人都不能被称之为程序员,那么称职的程序员真就不多了,不是所有的程序员都是对某种编程语言都是精通的,能精通编程语言的人在编码界也是稀有动物般的存在。要精通一种编程语言,除了非常雄厚的编程基础之外,还需要现场实际解决问题的能力,一个问题普通的程序员也能解决,高手一样能够解决,但实际产生的效果是不一样的,高手解决问题想到的是框架方面东西,一旦解决可能类似的一个体系的问题都会得到解决。

1、基础知识

首先是编程语言。现在游戏开发的主流语言是C++。C++是一门复杂的语言,学了这么多年,我都不敢说自己精通C++。要想用好它必须付诸长时间的努力。需要特别注意的是STL是C++中非常重要的部分,不要忽视对它的学习和使用。

然后是 *** 作系统及其API相关的知识。要想开发出在某个 *** 作系统上高效运行的程序,对 *** 作系统有深入的了解是必要的。我主要在Win32下开发,对其他平台接触较少,举例来说FileMap,IOCP都是 *** 作系统特有的功能,用好这些功能可以使程序发挥出 *** 作系统更多的功能。还有一些细节,如果不了解就很容易出问题,例如DLL链接的问题。

软件工程知识。不要只顾着低头编程,要注意你所在的项目,要很好的和别人沟通。无论把自己定位成技术高手还是技术领导者,都需要学习软件工程的知识。

熟练使用开发环境和版本控制软件。常用的有MS Visual Studio .Net 2003,MS Visual Source Safe,GCC,CVS。

丰富的游戏经验也是很重要的。如果你极少玩游戏,那么你在一个游戏开发的团队中是很难与别人交流的。例如,有人会说我希望镜头效果象《古墓丽影》那样,如果你没有玩过类似的游戏是很理解的。你甚至连策划案都看不懂,或者你认为你看懂了,结果做出来的东西完全不符合游戏的常理。所以,你至少应该玩过主流的游戏,特别是你正在制作的同类型的主流游戏。对于一个不是真正喜欢游戏的,这一点是很难做到的。

2、客户端方向

术业有专功,游戏越做越大,需要的知识越来越多,一个人很难对所有方面都学的很深入。如果你想致力与客户端引擎技术方面,那么下面这些知识都要学。

一些图像处理技术。例如颜色混合,图像平滑,轮廓查找,无论你是做2D游戏还是3D游戏,这些东西都用的着。

3D图形学基础。不要以为渲染工作都丢给显卡去做了,你就可以不管其中的理论,要想做3D引擎,基础知识掌握好很重要。

熟悉D3D。现在主流的3D API应该是D3D,必须要掌握,没什么好说的。

3DS MAX插件开发。将美术制作的模型和材质导入到游戏中。另外,顺便了解一下3DS MAX的体系结构,肯定很有好处。

编辑器开发,一个游戏需要很多内部的工具。甚至可以说需要一个内容制作平台,一般要用到MFC,也可以用C#开发。

3D引擎技术,这是最吸引人的一部分了,包含的内容很多例如SceneGraph,Portal,Terrain,Shadow,碰撞检测,Shader编程等等,很多很多。建议先找一个开源的看看,OGRE就是个不错的选择。

人工智能和物理模拟。这两个方面往往不被重视,特别是在网络游戏中。实际上,如果你实现了一个很好的群体行为,或者刚体运动模拟,效果是很惊人的!

3、服务器方向

先说明一下我并没有服务器编程的经验,这里就我的一些了解,试着说说。:)

多线程编程。现在的服务器几乎都会使用多线程,好的多线程设计会大大增加程序的效率。

数据库。玩家的数据必定要使用数据库来存储,现在用SQL Server或者MySql的比较多。

大规模的通讯程序设计。想象一个游戏世界需要负载几千人,这个通讯量可不小。对于程序设计来说大数据量和高效率总是难题。

4、其他

脚本语言。前几年大家还都在实现自己的脚本语言,现在好像用Python或者Lua的成了主流。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7842158.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存