第1个回答 2010-06-17
呵呵,首先我想说你遇到的只是一个小问题,其实就是归根结底不就是一个c++入门的问题嘛?你说c++有好多是解决数学问题,很无聊,你这样说我很理解(我是从c一步步学过来的)。但是我想说凡是牛x的软件几乎没有是用vb写的。例如windows系统(包括最新的win7),魔兽、qq、Adobe cs、卡巴斯基,还有诸多系统软件、应用软件等等。所以c++是非常牛x的,您别看他土,不如vb那样图形化,但是它可以和最基础的硬件打交道,有非常强大的功能,这个是vb无法比拟的,关于书的话当然还是c++ primer最好,你好好看下补补基础,同时要多上机,作为一个优秀的程序员,大量的上机体验是必须的,个人感觉就像打靶一样,好枪法是子弹喂出来的,学好了基础,就可以迈向图形的世界了。
注:(以下内容均属转载,但相信对楼主有帮助。)
从SDK编程开始,不要担心,这不会花费你太长时间,但却是对Windows程序运行机制进行深入了解的好时机,在此的努力都不会白费(trust me),此时的参考书没有什么好考虑的,基础的有Charles Petzold的《Windows程序设计》,进阶的有《Windows核心编程》。请从《Windows程序设计》开始,Charles Petzold的书通俗易懂,学习起来非常轻松,而且对你的语言要求不高,只要懂C就可以了。
此时容易碰到的问题大多与项目设置有关,如果使用Visual C++,请按Alt+F7调出项目设置对话框仔细检查,并阅读相关文档,熟悉各项配置的意义。
此阶段请重点掌握Windows SDK程序的编写方法,Windows程序的运行机制和Windows消息机制,和常用的Windows API。我们还可以更进一步:尝试用前一阶段学到的C++知识对过程化的SDK程序进行初步的改造,将我们敲入计算机的程序变得可重用,按照自己对基于对象思想和面向对象思想的理解来重新编写例子程序。
OK,现在你已经初步入门了,掌握了C++的基本用法,对面向对象有了一点模糊而自以为是的认识,也能够写出Windows程序了,虽然还有点简单,还有点丑陋,不过,总归是图形界面啊。开始有点感觉了,是吗? :P 别急着往前冲,停一停,将C++和Windows SDK的基础打牢,贪多嚼不烂吗。此时有很多经典书籍等待你去掌握,也有几乎无限的题材供你练习,请尽量多阅读接触下面的资源:
《C++ Primer》
《Windows核心编程》
《应用程序调试技术》
面向对象开发设计方面的书籍
MSDN的Platform SDK部分,Periodicals部分(包含了大量有价值C++、SDK方面的技术文章)
CodeProject里相关的源代码是很好的补充学习资料
现在继续往前走吧,利用SDK开发毕竟有时太过于费时费力,还是使用更高级的应用程序开发框架的好,主要的有MFC和VCL,关于这些框架谁好谁坏的争论我已经听烦了,一句话,能帮助我们完成任务就行,它们无非都是工具,你自己随便选择吧。不过选择好之后,你应该明白,对于你的工具,了解越深,越能发挥它的威力。如果你选择了MFC,我建议学习下面的书籍:
《深入浅出MFC》:关于此书毋庸多说,尽管有人不停的贬低,但它的地位是无可置疑的,而且也是对我最有帮助的书籍之一。
《MFC程序设计》
《Visual C++技术内幕》
就此转载完毕
总之一句话多看书。我学c和c++的书有好几本参考书,每本书都看过,这样下来后相当于学了好几遍,印象特别深刻,而且基础打好后,以后变得非常好学,最好再说一句。我不知道您是不是学计算机专业的,您可以去网上搜下,现在学c++还是特别好就业的,只要技术好的话,而vb和vf几乎没有多少公司招人。。。
希望我的话对您有帮助。
第2个回答 2010-06-19
学c++也不是什么坏事,当然现在很多直接学java,.net的。你说做游戏。那就c++吧。
很多学习语言的开始接触的都是很“讨厌”的算法啊什么的很枯燥的东西,没有实战的激情(其实做多了实战也很枯燥的)。c++是相对比较浩繁的,当然学起来就比较累。我觉得你既然决定学这个,算法啊什么的还是要学的,而且应该学好。我是数学系毕业的,也做过软件开发,数理逻辑也是很重要的,当然大学数学大部分东西在软件开发上没有直接用处。
那来直接的。你首先要对自己的未来职业要有一个完整的规划。确定要做程序员?还有你要学c++吗?我觉得不要了吧。直接来Java吧。找个商城什么的实例做一下,完成后会有很大的信心。理论与实战相结合。要踏实。基础理论也很重要。实在不行去外面培训班学。
软件流程大致就和你做的vb。vc小程序一样的。项目规划,分工协作,调试,修改,调试,在修改。。。交付。客户发现bug,再修改。客户要求增加能功能,那就添加模块(or从新再做)。当然实际中很多分工。美工啊,做数据库的等等。项目经理会告诉你去做什么。你也只做自己的那部分而已。
就到这里吧,说的比较乱,希望会对你有帮助。
我的技术也一般般。转行了。本回答被提问者采纳
第3个回答 2010-06-17
一个真正的程序员,或者说解决问题高手,到最后肯定要学习算法和数学模型,否则编不了真正有用程序。
事实上,很多程序员刚开始时,与你一样感觉不到算法和数学的重要性(包括我在内),因为他们在编程序(如数据库)时根本涉及不到复杂的运算(如矩阵求逆,傅利叶变换等),所以觉得自己编的程序又实用又不需要数学,数学可学不学无所谓。
但是随着程序设计技术水平的提高,这些程序员会逐渐发现自己的“浅簿”。因为他们的编的程序充其量是一个模仿“手工”工作的所谓自动化程序,虽然一定程度提高了工作效率,但是其程序含金量真的不多。
这样低水平重复的软件,在中国只要到一些软件培训学校学习一二年就可以达到这个水平。在印度,实际上高中生就可达到,不需要大学生来做。所以印度有软件蓝领一说。
实际上要成为有竞争力程序员,一定得掌握相关算法和数学模型,如想成为游戏程序员,除了程序本身的学习以外,相关数学模型得学习(如碰撞算法,图像处理算法,人工智能寻径算法等)。想作为数据库程序员,未来的倾向则是对数据进行析深度分析(数据挖掘,聚类,时序分析等),这些没有一定的数年学功底和算法基础是不可想像的。
学不学数学和算法,就可看你想成为什么的程序员了。如果你想让自己有些核心竞争力的话,花点时间学习算法和相关数学模型是一件极其重要的事情。
关于制作软件的流程,“软件工程”教材写得很清楚。归结起来就是要做好四件事情(这些过程与用什么语言没有关系,包括C++):
(1)系统分析。搞清楚软件要做什么,需要有什么功能,涉及什么数据,软件与现有的系统有什么联系与区别,软件应该达到什么样的水平,确定软件的工作进度等,最后建立系统的逻辑模型。
(2)系统设计。搞清楚如何做软件,软件的功能结构是什么样的,软件的流程和数学模型是什么,软件需要在什么平台运行,用什么平台开发,软件的体系结构是什么,网络和数据库如何选择,数据库如何设计,界面如何设计,输入/输出如何设计,这一阶段主要完成软件的物理模型的构建。
(3)系统实现。就是用具体语言实现程序。涉及到程序的编写方法、测试方法等。用结构化或面向对象对象方法编程和调试,程序文档的编档,测试计划、测试用例的编写等。结果是真正可运行的程序(计算机模型)
(4)系统运行与维护。系统初装,数据载入,系统的试运行与切换。系统的改善性维护等。
对于程序设计初学者,需要了解的很多。有技术上、有方法上的,甚至还有程序设计思想或哲学上的。所以,做一个真正的程序员需要比别人付出更多的时间和精力。
个人看法,希望对你有用,给不给分无所谓。
第4个回答 2010-06-17
感觉你年少狂妄,做事从根开始,没基就想一步登天,有点做梦。学东西要自觉,别偷懒,也别挑剔,你现在没这资格