怎么学好编程

如题所述

1。扎实的基础知识;

2。很强的解决问题的能力;

3。熟练的编程调试能力;

4。创新能力;

5。团队合作能力;

6。持续的自学能力;

7。好奇心

这 些能力和品质(甚至可以说是习惯)都应该从大学阶段就着手培养,并且从身边的小事开始培养。比如,很多中国的大学毕业生都缺乏编程和调试经验。学习C语 言,考试过关就算学会了。课题项目中,只要程序能够编译,运行,并且输入输出满足要求就了事了。但是,写程序的时候是否想过如何把程序写得更加精炼,高 效,高质量?对程序调试中出现的问题是否刨根问底知道原因,还是不求甚解搪塞过去算数?还有,很多中国的大学毕业生对于知识的掌握肤浅,机械,没有好奇 心,不会刨根问底。比如,学会了C++,有没有看过一个object在编译后,在汇编代码中是如何被初始化的?这个object的各个成员在内存中是如何 放的?在一个成员函数被调用的时候编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到。但是,你是否有过好奇心去知道?最后,一些中国学生的大问题就是死记硬背,没有学到某种算法技术的根 本原理,没有应变和创新的能力。比如,有个问题是如何在不用额外内存的情况下把一棵树的同一层节点都连起来。很多学生都能够回答这是一个广度遍历的问题。 但是,课本上说了广度遍历是一定要有额外数据结构辅助的(队列)。所以,不给额外内存怎么行?请看,课本上说的用队列的方法记住了,但是就是不知道为什么 要用队列。如果深刻掌握了这个队列的作用,那么这个问题是很容易的。

编程语言其实是一个很初级的工具,但是你又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果你不会写字,那就一定写不出文章来。

首先,在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果你在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。

如果你有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会让你对许多比较细腻的概念有清醒的认识,如果你不是那么有耐心(恕我直言,大部分人可能没有)。那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,相信我一定会受益匪浅。

看 到有些人发问的帖子,很明显的没有仔细的思考过问题,或者没有认真地查阅过书籍,因为其中的语法和逻辑错误实在是不能理解。想来如果你的语文作业上面满篇 都是错字,老师一定不会放过你。为什么不先打好基础呢?有些人抱怨说因为教材不好,老师水平不行等等。但是我本人就是在TC2下学习C语言的,那时候除了 谭浩强的书,也几乎找不到什么别的书。我不打算就谭浩强的书发表什么意见,那也实在称不上是一本好书,但是如果这本是能学好,全部看好,都记住,也应该有 相当的水平了。建议不管看什么书,先认真地看懂,不要贪速度,应该力笊钊氲睦斫狻?br />
如果你能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时你的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。

过 去,有个著名的公式,大概是:程序=语言+算法+数据,不知道现在还提不提这个了。可能现在要加上更多的内容:项目管理、质量控制、代码规范…………。但 是这个公式还是有相当的参考价值,还是用写文章来类比,语言好比文字,算法是文章的思想,数据是文章的内容。所以在经过一个阶段的识字之后,应该试着发表 一下自己的思想了。

经过一段零零散散的算法学习,对“算法”这两个字有了概念之后,应该系统地对算法进行学习,这个过程是与数据结合在一 起的,应该看看数据结构,而且必须熟练的掌握。在这里提到的一本书是《运筹学》,里面的算法大都可以用计算机实现,我推荐这本书的原因在于,它不仅介绍了 特定问题的算法,而且详细解释了为什么要这样算,怎么得出这个算法的,等等。对于提高思考问题的能力有很大帮助。
如果你的精力和时间允许,现在就 应该开始大量的阅读和编写代码了,两者同样重要。“读书破万卷,下笔如有神”,尽管这种学习方法效率较低,而且很枯燥,但是应该看到,古代的这种教育方式 培养了千古文豪,而现在的语文教育培养出来的…………(唉,中小学语文教育的现状大家都知道,我就是受害者)。读代码确实是一件非常辛苦的事情,我曾经试 图阅读全部的Linux内核原代码,最后只看了不到十分之一,而其中看懂领会的,也就一半而已,但还是感到有很大帮助。至于大量编写代码,理由很简单:实 践性的技术要在实践中提高。但是要注意,如果你已经学完了C语言和数据结构(而且学得不错),那就不应该专注于那些小程序了,那根本就是在浪费时间,此时 应该编写有些规模的,具有一定实用性的程序。并在这个过程中开始领会软件工程的一些思想。第一个写出来的程序一定是错误百出,一点点地修改,一点点地调 试,一定会通过的。对于写代码,说一个我本人的经历,我第一遍看谭浩强的那本书,看到条件分支的时候,突然很兴奋,想要写点什么,于是看了一些TC2的帮 助,懂得了图形编程,就自己写了一个水果赌盘的游戏,可能有人在游戏厅见过,就是可以压什么苹果橙子之类的。各位可以想象一下,当时我还不会数组,不知道 循环,于是所有的这类东西都是用goto来完成的,这个历史上最蹩脚的程序居然也正常运行了,后来我发现原来可以使用循环,于是将这段代码替换掉,学到数 组的时候,终于将那些小灯在屏幕上的位置放到了数组里,学到文件的时候,将图形放进了二进制文件(原本都是一条线、一个点画出来的),记不得经过了多少次 修改,总之程序能运行之后,长度从2700行变成了127行。所以,想学好编程是要有点毅力的。

最后发表一下先学习C还是先学习C++的问题,这个问题见仁见智,我的意见是,先学习C。

尽 管现在我很少用C了,但是C语言确实更加基础,一个C++的高手要考虑的一些问题(比如内存的操作方面的问题),C语言的初学者可能就必须有所了解,否则 会犯错误。这些只是迟早是要掌握的,但是因为C++关注更高层的概念,所以在学习C++的过程中这些问题可能被忽略了,以至于有人用了一两年C++,还是 有些问题不是很清楚。另一个主要的原因是:C++太优秀了,而C++的程序员会在某种程度上感觉自己比C程序员高明(他们确实有理由这样),于是学完C+ +之后你可能就不屑于学习C所关注的内容,这样的话会错过提高的很好机会。

想成为一位好程序员(其实从事任何一个行业都是如此),重要的 是要养成一个钻研,好奇,创新,动手,合作,不满足于填鸭,不满足于考试交差,不满足于表象的一种优秀的习惯。这不是学几门课能够一蹴而就的。当然,如果 你的在校课程不能使你满足,论坛上的朋友可能能够给你推荐一些书或科目。

最后,不能只学语言。许多大学生认为学最新的计算机语言、技术、 标准是最好的铺路方法,因为许多公司招聘时要求这些方面的经验。这些新技术虽然该学,但是学习计算机基础课程更重要,因为计算机语言和开发平台日新月异, 但是万变不离其宗的就是那些基础课程:数据结构、算法、编译原理、计算机组成、关系型数据库原理等。有位同学生动地在“开复学生网”上把这些基础课程比拟 为内功,把新的语言、技术、标准比拟为外功。只追寻时髦的学生最后只懂招式,没有功力,是不可能成为高手的。

参考资料:李开复 回答如何学好编程

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-25
我认为学习编程是一件好事,不要认为编程很难,其实它并不难,不过之前你得先了解你学习编程的目的是什么?这个很重要,因为目的决定你的发展方向。目前对于编程有很多种编程语言以及相对应的开发软件,根据你的情况选一种语言进行专业学习,不要盲乱学习。编程是一种融汇贯通的东西,学会基础到后边就越来越简单了。而且可以向多种语言发展。因为毕竟世上没有永远不过时的东西嘛!下面说明一些常用的编程语言。

C语言 是一种可移植性和多系统平台的编程语言
JAVA 是一种功能强大可移植性强的开发语言
HTML 是一种超文本标记语言
Java Script 是一种基于客户端的脚本语言

程序语言,顾名思义就是一种语言,是用于交流的,程序就是计算机的语言和人类语言的翻译者,做一个程序员就是要把人类世界的问题用计算机的方法去解决和展现,可是因为种种原因,大多数人在如何学好语言,如何学好开发平台上疲于奔命,到头来你只会敲写代码。如果想做一个合格的程序员,C++、JAVA、sql、都是一定要学的,另外,不要去学你喜欢的,也不要去费劲脑子想该学什么,看看IT界,IT市场需要什么,你就学什么。

新手学编程要从根本出发

从理论上来说,需要广泛的阅读,了解算法的博大精深和计算机的基本理论。
从实践上来说,需要有广泛的练习,练习的广泛在于练习不同的内容。
然后就是创新精神和数学思维能力,这些都是需要培养的。

基础要打好

学编程要具备一定的基础,总结之有以下几方面:

(1)数学基础 、从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。

(2)逻辑思维能力的培养 、学程序设计要有一定的逻辑思维能力,“思维能力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程的过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。

(3)选择一种合适的入门语言、 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类:

1.本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。

2.跨平台开发开发工具如 Java 等。

3.网络开发对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。 (但现在已经过时)

培养好的编程习惯

编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。

多问多学习

掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。

总结

1、先照书上的题目写,题目的设计是有道理的巩固基础知识。

2、找数学题,写个小程序解决,熟悉算法和基础函数。

3、自己出题目,小一点的,如自编资源管理器、自编写字板之类,练习WINDOWS下的编程。

4、结合身边的事,找个中等课题,或看别人的程序,自已想办法实现。

5.把教材中的例子,自己仿照着写一遍,上机运行,看结果.要知道,任何产品都是有例子的,有机结合或仿照。

6.从自己熟悉的事情入手,如成绩统计,编制一段程序,完成一个功能.然后再完善。

7.要反复破坏代码,从破坏中寻找代码的规律。

8.必须经常反复上机练习。本回答被网友采纳
第2个回答  2020-02-20
学好Windows编程,先学c,c不用学得很深,明白什么叫变量和函数还有数据类型,然后去学面向对象的语言,vb、delphi都可以,不提倡vc,这样学是为了培养兴趣,用vb或delphi作自己的几个小工具出来就有点成就感,到你接触很多api的时候就该回头再学c了,把c的书再看一遍,以前不懂的问题也能看个大概了,接着看一本书《winbdows
程序设计》,弄明白就算很不错啦!
当然,学c或者vb的时候最好去考一下全国计算机等级,考的都是基础。
个人意见,我也就是这么学的!.
第3个回答  2019-09-07
与其从C开始入手,不如直接学C++.想做程序员,好找工作,与其从C++入手,不如直接学C#,JAVA,甚至F#。

任何事物都有产生发展消亡的过程,不要一味的追求底层,比如汇编什么的,你玩不过人家国外人的,而且制作软件效率也低,针对每个CPU都要重写语言,兼容性不好。

建议你买书看+看视频教程,看完立即动手操作,写代码。相信我,C#并不难学,而且你学精了一门语言就一通百通了,社会上懂一门或几门计算机语言的人太多了,关键是顶级高手少,想挣大钱吗?就专心研究一门语言,否则就当个爱好学学吧
第4个回答  2020-02-09
首先,不能逃避英文差这个问题,毕竟现在还没有中文编程,但是也不要气馁,很基础的英语就可以应付初级的编程,毕竟编程也是个长期的事情,可以2者共同提高。
其次,开始学编程一定先看下相关介绍,不要急于学习,有的大体的了解学习起来才更有针对性。
再次,基础是很重要的,开始不注重基础到了后来一定会吃亏的,所以这个也讲究一个踏实。
我个人是在大学学的C++语言,刚开始觉得学的东西很枯燥,也看不到实际应用的效果,一心从效果着手,后来才发现基础的重要性超出了我的想象,很多东西没有基础就没有办法前行。
网络是个大平台,想学好编程一定要好好的利用这个平台,我也是个初学者,希望能在网上招一些志同道合的兄弟姐妹们共勉,加油啊!本回答被网友采纳
相似回答