怎么学习编程?


1、可以考虑先学习C. 大多数时候 , 我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家 。做一个有用的程序员,做一个赚钱的程序员 。我们的价值 , 将体现在客户价值上 , 而不是语言写得好不好看 。
C是C的一个面向对象的解释,C为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法 , 但是,我认为 , C骨子里还是C的 。毕竟,解决具体问题,每个函数内部,都是用C的方式写程序,还是面向过程的 。因此,想要学习好C,我的建议,先学习C,先学解决问题的能力,再讨论解决大问题的能力 。就是先学习怎么走路,再学习怎么跑步 。2、学习C的过程中,一定要理解结构化编程思维 。为什么呢,我前面有文章说过,软件语言的发展过程,就是一个数据私有化的过程,大型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性 。这是现代工程化开发的核心和灵魂 。因此,利用C这门语言入门,借此理解结构化开发思维 , 可以说是个很方便的路子 。因为C的函数,本来就是为重用做准备的 。同时,全局变量和cpp内部私有变量的差别,其使用原则,这些都能学到很多结构化开发思维 。3、开始学习CC不难学的,很多人觉得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、COMCOM、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年后,可与天下英雄一较短长了 。
怎样自学编程入门学程序员编程可参考如下:
对于初学者来说,可以采用视频 书籍的方式进行学习 。这两种方式形成互补关系 。编程教学视频可以让人迅速掌握编程,但通常比较生动、浅显 , 不成系统 。
编程书本是比较系统、深入的,但是枯燥,所以最好的方法是书和视频结合 。当人已经过了入门期之后,看书、看视频、看博客就可以随心所欲 。
其实软件工程发展到今天,编程已经是一个很“职业化”的技能 。业内自嘲“IT民工”,每天“搬砖”之类的,就是这种现象的反应 。不扯远了 , 总之一句话,基本上都是些是个人都能学会的技术,没有什么神秘的 。
某些培训机构招一些高考失利的考生,培训两年就把他们往公司里送,他们也一样能胜任工作 。所以自学也不是件难事 。但前提是,你走对了路 。
如果你从二进制、编译原理、数据结构……这些开始,我估计你陷在里面就出不来了——除非有名师指点或者天赋异禀,再或者有大机缘?
不要急着做这些“学究”式的学习研究 , 就像学开车一样,不需要你从发动机原理学起是一样的 。程序/语言是让你用的,就像车是让你开的,明白了这一点,你就可以立马轻松100倍 。
所以 , 先选一辆“好开“的车,迅速的跑起来 , 享受这种微风拂面的快感和刺激,才是最重要的 。
自学编程入门如下:
1、认识和理解编程 。
所谓编程就是将繁冗的问题从人的手中解放出来,通过编程将实际的问题抽象为一种模型,并使用高度逻辑化的语言来自动解决问题 。
2、选择合适的编程入门语言和环境 。
对编程初学者来说,最重要的就是选择合适的入门语言,一般情况下都是优先选择C语言,这也是很多高校最先开设的编程课程 , 入门相对较容易 。
【怎么学习编程?】另外,也需要选择合适的编程环境支持,大学普遍使用VC6.0,但W7以上兼容性不是太好,建议大家使用C-free , 当然对于XP系统用户还是继续使用VC6.0 。
3、选择合适的编程学习方法 。
编程学习最好的方法就是紧跟老师的节奏,不要放弃任何一次课程,尤其是相关专业课程,比如计算机组成,数据结构等,这些都是日后编程能力提升的保障 。
要多阅读代码和抄写代码,不要仅仅停留在看懂的基础上,更不要复制粘贴代码 , 要抓住每一个机会去敲代码,这是初学者必须要坚持的做法 。
4、多参与编程项目实践 。
编程学习的重点不在于看书,而是在于实践 , 只有不停地去实践编程,才能锻炼编写能力 。如果有可能的话,可以申请一个独立完成的项目,然后找个好伙伴给你把关,只要坚持完成一个项目,你的能力就会大大提升 。
5、要坚持思考,创新和持续学习 。
编程并不是一个机械性的工作,而是需要有思考 , 有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维 , 这就需要学习者要坚持学习和更新自己的知识 。可以通过专业性网站学习,可以通过专业社区交流等 。

    推荐阅读