如何学习编程?
C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法,但是,我认为,C++骨子里还是C的。 毕竟,解决具体问题,每个函数内部,都是用C的方式写程序,还是面向过程的。 因此,想要学习好C++,我的建议,先学习C,先学解决问题的能力,再讨论解决大问题的能力。就是先学习怎么走路,再学习怎么跑步。 2、学习C的过程中,一定要理解结构化编程思维。 为什么呢,我前面有文章说过,软件语言的发展过程,就是一个数据私有化的过程,大型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性。 这是现代工程化开发的核心和灵魂。 因此,利用C这门语言入门,借此理解结构化开发思维,可以说是个很方便的路子。因为C的函数,本来就是为重用做准备的。同时,全局变量和cpp内部私有变量的差别,其使用原则,这些都能学到很多结构化开发思维。 3、开始学习C++ C++不难学的,很多人觉得C++难学,其实是因为它在C之外,又提供了很多的概念,尤其是对象,很难以理解。 不过我经过这么多年,把这个问题反而看淡了,我认为面向对象相对面向过程,仅仅是结构化程序设计的一个具体体现,是编译器提供手段,强迫程序员必须遵循数据私有化的一个实例,C++和C的关系,最核心的莫过于此。 现在我们回到C再看看,如果我们把一个全局变量,写到一个cpp里面,并且在对应的h文件中不声明,它是不是就只有这个模块可以使用?它是不是就是私有变量,以这个理解,类能明白了吗? 4、学习C++的深入技巧 C++在类的基础上,经过这么多年的发展,其实提供了很多深入的概念,看起来很复杂,其实我看也很简单。比如模板,我的理解就是“类的类”,大家说是不是? 既然模板理解了,STL,ATL这些,静态模板库,动态模板库,还难理解吗?就是一大堆类的类,可以借此实现很多应用中需要的类,不需要程序员再自己写而已。 ok,STL都理解了,泛型开发还难吗?所谓泛型开发,其实就是我做一个模板,来定义一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,对核心数据类型不要限死,我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。你想想是不是这个道理? 学到这里,C++和C,其实已经差不多了。再学语言,就是求全责备,过于钻牛角尖了。 5、学习应用开发 前面说了,学习语言,目的不是让别人认为自己是专家,是为了写程序赚钱。因此,语言学完,要学习应用开发。 什么叫应用开发呢,我会一门语言,但是,客户不懂,客户说的很直接,在Windows下给我写个程序,我要什么什么功能。为啥Windows呢?因为我习惯。 OK,很多时候,应用开发要尊重客户习惯,一般说来,语言这个东东,还是要结合具体平台的开发,才能开发出有意义的应用程序卖钱。那么,一般说来,客户端是Windows系统,服务器是Linux,这些都是行业习惯,嵌入式不好说,各种平台都有,Palm,S60,Linux,WinCE,等等。要根据自己的目标客户来定。 当我们选定目标平台后,有一个问题,选什么语言,很多时候,学生和商用程序员差别就在这里,学生一般没得选,自己会啥就用啥呗,企业里的程序员不会,要先评估需求,看哪个语言更合适,不会的语言,要去学。 ok,假定我们选了C和C++,那么,我们需要选择开发平台,Windows下不用说了,VC,这是最好用的,Linux下呢,gcc,其他的也差不多。 假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC了,因为这是微软的标准类库,至少Windows平台下,它最权威,你看见没有,我们从学习开始,走了多少步,才走到MFC?是不是MFC不是学习C++上来就必须学的? 6、学习MFC 学习MFC,很多人一上来就开始看其体系架构,看得一头雾水,那个模块关系依赖图,我到现在都看不懂。 呵呵,其实不是啦,和学语言一样,我们学MFC的目的,也不是希望成为MFC的专家,而是要利用MFC开发Windows应用程序,为我们赚钱。看见没?MFC是手段,不是目的,目的是开发Windows程序。 其实Windows下,有一套很标准的C接口,叫Win32API,这个才是Windows的标准编程核心,因此,学习MFC,真实的目的是理解Windows程序开发,建议可以先学习Win32API,看来我们又回到C了哈,呵呵。刚开始学C有用吧? 7、Win32API 其实Win32APi不难学的,因为虽然它很大,有很多接口,但不是必须的,我们真正做个简单的Windows应用,其实用不到这么多的。做个简单的Dialog,然后实现个功能,你遇到的接口函数,其实绝大多数,就是以后常用的了。把常用的记熟练,就ok了。 关键是,这个时候要通过WinMain方式,去理解Windows的事件机制,这是核心,其实说起来简单得要死。就是以前你的程序,由于没有系统支撑,很多事必须自己做,比如检查鼠标和键盘输入,你需要写个死循环,自己不断去看,而Windows说,这些事你不要做了,我来做比你好。你没事就玩去吧,我把和你相关的消息放到一个队列里,就是你的事件队列,你自己没事去找找看,有没有新消息来,有就做事,没事就玩好了。很简单是不? 当然,Windows是多任务操作系统,有时候,我们的逻辑需要并发一些功能,比如说,我在等鼠标键盘消息的时候,需要再看看打印机准备好了没有,这里就需要理解并行计算了,这和语言无关,和操作系统无关,这是另外一个话题,这里不多说了,你可以自己找找线程开发的相关资料看。 看见没,为了学习好Windows编程,其实我们不仅仅需要学习语言,还要学习操作系统,并行计算原理,内存原理,可能有时候还需要学习网络通信,等很多知识,所以说,单凭学习语言,是成不了商用程序员的,一个合格的程序员,需要理解的东西,太多了,要广为学习。 当我们把Win32API,以及基本的窗口化程序设计理解了,就可以回到MFC继续学习了。是不是有点递归返回的意思?呵呵。 8、回到MFC 个人感觉应该回到VS 原来学MFC很难的,因为其封装了太多细节,很难理解透彻。不过还好,我们有侯老师的深入浅出MFC,去找本来看看,如何从Win32API的纯C编程,改变为MFC的C++方式,看这个最快,基本上前6章看完,已经会了,这里我就不多说了。 9、COM COM、COM、COM,我最头疼的COM,呵呵。 COM就是一种远程过程调用,即你请求的代码是在另外一个进程中运行的,通过某种通信协议来回传递参数和结果。仅此而已。DCOM进了一步,服务者可以在另外一台计算机上。在公司开发中,大家可能各做一块,如果要合作,Windows下建议多使用COM.(我个人喜欢socket通信哈) 简单说,COM提供了一种机制,可以跨进程通信,甚至跨机器通信。不过,为了传递各种类型的参数,COM可谓是无所不用其极,它发明了智能指针,可以指向任何类型的数据,同时,为了实现智能指针,它使用了大量的C++泛型设计,看见没,C++的基本功就起作用了,还用到了ATL. 学习COM,要注意一个接口的概念。由于开发者是不同的人,调用程序和服务程序,可能不是同一种语言,OK,不能简单提供一个C或C++的。h文件来解答接口,因此,COM提供了标准接口,使用者在程序内部,以查询方式获得可用接口,进而以接口ID调用。很累人的。 学会了COM,就可以多理解一点ActiveX了,那么再学习一点dll(动态链接库)的知识,我们就已经可以写OCX控件了。一般说来,OCX控件是个很好的设计,哪都能用,一个软件的模块,最理想是开发成这个样子,比exe灵活。 10、没了。 按少林派说法,学了上述这些,其实已经算打过18铜人阵了,已经可以下山助明主,扫奸佞,扭转乾坤,解万民于倒悬了。 不过,关键是你通过上面的过程,是不是已经学会了学习的方法,再遇到新的东东,是不是已经不难学了?这大概就是武学中的悟性了,有了这个根基,以后只要慢慢修炼,估计20年后,可与天下英雄一较短长了。
1、先要选择你准备学习的编程是哪一种,计算机的语言有好多种。总得来说就是简单的、中等的、比较难的,像我们最熟悉的C语言就属于比较难得,高级的。不同的计算机语言程度有难有易,我们要根据自己的学习能力去选择性的学习。
2、很多朋友觉得学习编程应该要看书,但是随着时间的变化,不能够从书上找到自己想要的重点,人就会对书产生厌倦,不爱学习。但是时代在变化,我们可以依靠互联网,从网上找一些我们需要的知识。当然我们也可以从网上找一些有关编程的知识,从而挑选出适合自己的教学视频供自己学习。
3、我们每次看完视频后,就应该多练几遍习题,直到自己能够完全掌握了。再去看下一节的视频,只有自己真正的掌握了知识,才会是自己的。而且不能光看不练这样对自己没有效果。当我们学习到一定的程度后要巩固知识,将所学的东西都串连起来,而且也能够查漏补缺,为以后做打算。
综上所述,以上就是我个人对于如何学习编程提出的一点小想法,当然学习是要看自己的,自己一定要肯努力、肯下功夫。
现如今科技在飞速发展,而许多计算机专业甚至其他领域都需要专业的编程人员,也就是俗称的“程序猿”。而且只要自己能力够好,程序猿虽然枯燥无味,却是一份薪水很可观的职业。那么该如何学习编程呢?
通过高校来学习编程
现在许多的高中生就需要考虑自己以后的人生方向,自己想要做什么,如果想做一名程序员的话,就应该提前找好在自己高考能力范围内、而且在自己喜欢的专业教学水平中有拔尖水准的高校去努力,争取考上他,这将是你决定人生的第一步。
当然,仅仅局限于高校里所授知识是不够的,应该多多请教有编程工作经验或者渠道的老师问他们编程的路该如何走比较好。自己要勤加利用休闲之余学习自己所学的编程语言更深层次的一些东西。
通过报名专业培训机构来学习编程
专业的编程培训机构并不像大学里面还会教教你别的科目,而是一天下来全是有关编程的东西,强化魔鬼训练一段时间(可能几个月也可能至少半年)。
出来之后就仿佛一个瘦骨嶙峋的人服役两年兵出来的感觉一样,就算你之前没有任何底子,只要你认真按老师要求做,你出来就可以找岗位工作了。毕竟专业的培训机构只给你强化训练编程,这和普通高校还是有所不同的。
自学编程
其实不得不承认有一些智商高的人自学编程也是很简单的事情,这里建议自学编程的人去购买国外编辑出版的编程书籍,国外的编程书籍写的内容水平要比国内的高,这个是不可否认的事实。
学习编程还有最重要的一点,就是你在学习之前要考虑好你自己以后的从业方向,到底是学什么语言自己才能吃得香,自己是做前端还是后端等等,这些都是需要提前考虑的事情,考虑好了才能有明确的方向去学习。
不同的语言对应着不同编程领域,如果你要学完那是有点不现实.
因此你要回想一下你兴趣来源是什么?比如喜欢做黑客,喜欢研究反病毒,喜欢为Windows桌面开发一些实用的小软件等等.
要分析好兴趣来由,在决定你的发展方向,就好了.
比如你喜欢为WINDOWS开发软件,那么 C语言是必备基础,学好好了然后在扩展一门面向对象的语言比如C++ C# JAVA 等.这些是不错的选择。
然后光有语言不行,为了软件的质量保证,还需要研究一下系统理论基础,这样你的软件才能做到对系统的作家兼容性和获取最佳性能。
也可百度一下, 80x86汇编小站 这个网站里面有几篇关于编程入门文章或许会对你有帮助, 或者 你直接联系 这个站长 跟他交流编程方面的事情。