黄有龙怎么发家的:关于学习编程的问题

来源:百度文库 编辑:高校问答 时间:2024/05/09 03:36:00
我现在想学习编程,可是又不知从哪下手,我应该怎么学呢,学哪种语言c++语言吗?需要什么基础知识
应该先学那种语言呢,现在来说那种语言最有用呢?谢谢啊,如果回答满意再追加100分
非常感谢四位朋友的帮助,可是我还不太明白怎么去做,我需不需要学习比如说离算数学,什么的这些基础知识呢?我是中专毕业!再就是我除了买书看之外,还有什么其他快的方法!光看书能学会吗?还有java 需不需要学呢?它有什么特点?

至于学习哪种编程语言在这里很多人都问过了。

回答的也都各不相同了。

有人认为从VB下手,有人认为从C下手。

我觉得这两种方式各有优缺点吧~!

VB入门方面,上手快,有了兴趣才会继续。但是它的封装性是显而易见的。让你对操作系统的工作原理认识的非常的少。想想任何一个语言离了操作系统还有价值吗?没有了。VB很难接触到很多有价值的操作,现在控件很多,很多人离了控件就写不了任何程序。

C语言入门,有了基本语法可以直接学习API,会马上了解到什么是消息循环,资源、内存管理、动态连接库、钩子和多线程等知识。但是C的难度比大,如果忍不住枯燥会很快放弃的。

我先学的C,但感觉很枯燥,后来接触了VB,觉得上手方便,可是看很多程序时发现对里面的API不明白,虽然看MSDN对API能有所了解,但是找不到学习API的门径,后来知道《windows程序设计》系统的教了API,我又回头学习打算学习C语言。可是我买到了关于用汇编教API的书,所以没有学C,而是学了win32汇编。虽然我学了win32汇编,但是我写程序时还是会用VB,使用API时比以前得心应手了,而且也觉得更方便了。

win32下的编程无论是vb、vc之类,它们虽然有很多不同,但是都是在win32体系下构建的,所以学习了API后什么开发环境都会用的得心应手的。

我初学,仅供参考。

如果 你想当个黑客的话你就学C/C++如果你想进行软件编程的话建议你用VB,现在最好学学DELPHI最新版的。

//如何下手?

任何语言都可以从入门到精通,
C就是一个很好的入门语言

//该学什么?

关于你要学习什么语言,看自己喜好了,现在流行的语言功能都很强大,随便学习哪一门都很有前途的。说不上上哪个有用哪个没用。

//需要什么基础?

编写一个优秀的程序,应该具备其中几个条件:

1.代码简练;能10行能实现的效果,就不写20行。
(需要你有较强的数学功底和逻辑思维,程序的简练与否往往取决与数学算法的好坏)

2.源代码别人看得懂。
(需要你有较好的代码规范知识和思维的条理性,在初学的时候,就要严格规范书写)

3.……等略

特别要强调数学,当然你小学毕业也可以写程序,但要应付大型的算法(特别是涉及到图形图像类的程序)你就无法应付了。

最后如果有英语基础更好,但不重要。

成为一名好的程序员,不是简单地通过学几门课程就能做到的。我个人认为成为一名好的程序员的要素有:
1。扎实的基础知识;

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

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

4。创新能力;

5。团队合作能力;

6。持续的自学能力;

7。好奇心

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

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

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

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

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

如果你能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时你的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。

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

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

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

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

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

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

在我看来,初学编程者最好的选择就是VB
VB 简单易学,比起C来说,易于调试,修改,这一点对于初学编程的人来说是非常有用的!
况且,现在的应用程序有80%都是用VB 编出的,可见VB 的作用亦是很大的!
建议你先学VB,待对编程比较熟悉之后,再学C、VC、JAVA等语言。
祝你好运!