大多数的人都希望自己的东西能够马上跑起来,变成钱。
这种想法对一个已经进入职业领域的程序员或者项目经理来说是合理的,而且IT技术进步是如此的快,不跟进就是失业。
但是对于初学者来说(尤其是时间充裕的大中专在校生),这种想法是令人费解的。一个并未进入到行业竞争中来的初学者最大的资本便是他有足够的时间沉下心来学习基础性的东西,学习why 而不是how。
时髦的技术?往往容易掌握,而且越来越容易掌握,这是商业利益的驱使,为了最大化的降低软件开发的成本。但在IT领域内的现实就是这样,越容易掌握的东西,学习的人越多,而且淘汰得越快。每一次新的技术出来,都有许多初学者跟进,这些初学者由于缺乏必要的基础而使得自己在跟进的过程中花费大量的时间,而等他学会了,这种技术也快淘汰了。
基础的课程,比方数据结构,操作系统原理等等虽然不能让你立马就实现一个linux(这是许多人嘲笑理论课程无用的原因),但它们能够显著的减少你在学习新技术时学习曲线的坡度。而且对于许多关键的技术(比方Win32 SDK 程序的设计,DDK的编程)来说甚至是不可或缺的!!
一个活生生的例子是我和我的一个同学,在大一时我还找不到开机按纽,他已经会写些简单的汇编程序了。
我把大二的所有时间花在了汇编,计算机体系结构,数据结构,操作系统原理等等课程的学习,而他则开始学习HTML和VB,并追赶ASP的潮流。
大三的时候我开始学习Windows 操作系统原理,学习SDK编程,时间是漫长的,这时我才能够用VC开发出象模象样的应用程序。我曾一度因为同学的程序已经能够运行而自己还在学习如何创建对话框而懊恼不已,但临到毕业才发现自己的选择是何等的正确。和我谈判的公司开出的薪水是他的两倍还多。下面有一个不很恰当的比方:假设学习VB编程需要4个月,学习基础课程和VC的程序设计需要1年。那么如果你先学VB,再来学习后者,时间不会减少,还是1年,而反过来,如果先学习后者,再来学VB,也许你只需要1个星期就能学得非常熟练。
还有位网友说:高数,离散数学,线性代数,微机原理,数据结构,windows系统原理,这些基础是重中之重。不要跟风随流学一些java;.net;jsp,asp等,我说的是基础,以上那些不会,你即使会编程也只是空架子,数据结构和微机与他们认为过时的C才是一个优秀的程序员的王道,你会了这些,并且真正明白了,其他一切都好学!!
编程与数学的联系??
离散数学是在大学开设的,其实初中生也能看得懂,主要是因为它的描述过于严谨,所以看起来有点神圣。但只要明白其本质,也没有什么难的,不过是比较烦。
你不用专门地从头研究数学!
如果你学过一点编程,那么建议你学习数据结构,从中你可以了解到学习哪些数学知识能帮你更好地前进;而且在学习过据结构之后,你的编程水平将大大提高。掌握一门语言的语法并不需要太多的数学知识。只有在遇到具体问题时,要用到数学上的相关理论,数学才发挥作用,此时完全可以通过查资料来解决。当然,有数学基础自然可以事半功倍。不过通过应用时的临时学习将使你对该理论有更深该的认识也形成了你的实践积累。
初学者学习语言有捷径?
不,初学者应该根据自身情况来选择语言,如果你刚开始接触系统,应该去学VB,因为VB很好学,基础最重要;当然,还有Delphi,它介于VB与VC之间。除非你比较熟悉Windows,否则别急着学VC,你会因此神经衰弱的。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。
学习要一步一步来,没有扎实的基础,谁都不可能写出好程序。当然,学习的方法也不能不提,尽管学VB、Delphi不需要专门学Basic、Pascal,但是学VC就不能不学C/C++了,否则你会前进得很辛苦!别信什么“速成班”、“24小时学会XXX”,那种是喂猪的!经验要靠练习来积累,不能只学理论,编程不是让你纸上谈兵的,平时不多练习,别想写出什么好程序!学习时要从简单做起,先熟练简单编程,在这个基础上要写出高级点的程序就不困难了,遇到难题别被吓着,努力克服它(除非是由于语言的局限性而做不到的),如果暂时做不出来,可以先搁一段时间,但别把它忘了。等你学到更高一层的技术后,再回头研究过去的难题,将会事半功倍。
? 不可缺少的教材
虽然从古到今一直有“尽信书,宁可无书”的遗训,但是我们可别因此“无书”哦!有一本好书才能带你走的更好,每种方面的书籍都有所谓的经典,别想什么都从网络上下载!那些缩略版的是没有办法和真正的书比的。买书时要特别注意出版社和作者!
网上会推荐你什么语言买什么书,什么程度买哪些作者写的书。同样的标题,不同的作者写的着手点不同,初学者很容易因为买错了书,而使得自己没有继续学习下去的勇气!初学者应该选择像谭浩强写的书籍,如果实在迷茫,参考学校选课的书籍,是个比较好的方法!
有经验的网友也会告诉你,你应该选什么书。
游戏编程应该要学习那些啊???
答: C/C++
WIN API
Direct
OpenGL
要学的很多的,以上这些是最重要的!!有了这些,就可以做出简单的东西了。
而DirectX 和 OpenGL 的用途是相似,而DirectX是微软的,用途会广一些。
做游戏的传统方式是在VC环境下的 Win32 API + DirectX 编程,也有一些用OpenGL的。推荐VC 6 或 VC2005。(VC.net 可以选择仍然用 Win32 API)
.net下一般都用C#.net + 托管DirectX 做游戏。微软MSDN上的游戏制作教程就是这样的。推荐VC#2005。(至于C++.net,我觉得那东西用起来相当痛苦的)
.net平台下仍然可以调用API,但速度会较慢。如果选了.net编程,就应该以.net 库 中提供的类和函数为主。
具体网上很多,不再细说。