A. 请问初学者学习编程应该怎么办
初学者学习编程首先要明确目标,加入一个社区,要有项目实践。有以下几种方法:
1、查看示例代码
当我们第一次学习编程时,应该确保看懂并理解每一个例子。在我第一次学习编程时候,通常我会先阅读代码示例,然后再阅读课程文字内容,其实就是先尝试理解这段代码所要做的工作。
当然这并不总是有效的,但这至少能够迫使我非常仔细认真地看这个例子,而且这样做可以有助于自己更清楚地理解课程内容。
3、尽快编写自己的代码
学习完一个课程后,就可以开始编写该课程的一些示例程序。刚开始我们可能很难找到什么好的想法来写程序,但这完全没关系。我们可以从先从正在阅读的书或教程中找到一些示例,然尝试在不回顾示例代码的情况下去编写一个类似的新的程序。
这样可以快速提高编程知识的积累和稳固,也能尽早的锻炼编程思维,不管学习什么语言都是一个经验积累的过程,所以更早的开始编码练习对往后的学习越有帮助。
B. 如何提高编程能力
我有几个建议:
1.扎实的学好基础课程,基础越牢固越好。在以后的能力提高中你能感觉出它的好处的
2.多读别人的代码,读完后思考你是否能写出比它更精练更有效率的程序,最好立即用你的方法实践一遍
3.最重要的还是多实践,有思想的实践。不管听到见到什么你都要想如果用程序实现应该怎么做,将一切程序化进行~~可能这么说有点走火入魔了。
C. 我是程序员,做事很慢,写东西一大堆漏洞怎么办
花更多的时间去做...
做事慢通常是思路不顺.
对每个问题应该在有限的时间内, 尽可能去厘清原理及细节, 这个过程是学习的一部分. 如果每次都只是堪用即可, 不知道为何, 不知道如何, 自然会出现一大堆漏洞.
剩下的, 就是经验, 也是要靠时间及大量练习, 做累积.
小细节从为何应该使用这个型别, 其他型别行不行, 不同型别的限制在哪里, 大一点到模组类别间关系的处理方式, 为何要这样, 如何做到, 甚至于系统架构, 运行环境, 效能等等, 都是要不断思考的; 只有经过思索原理与差异, 并大量练习累积经验, 才能很快速的对每一个细节选定适合的作法. 如此不断精进, 才是真正的提升速度, 而不是虚有其表, 华而不实.
D. 计算机二级C语言最后一道编程题漏洞技巧有哪些
网上碰到有二级c的作弊方法,提到了通过更改out.dat文件的内容,达到作弊的目的,自己也在二级c语言的模拟考试环境下测试过,可用,满分,24分就来了,至于真正的二级c考试,有人说能用,也有人说,不能用,只有试试就知道了,第一次考二级,也没试过,所以不知道是不是能用。
具体如下:
电脑常见问题解决
1、无法自动识别硬盘控制器
使用非正版的个别操作系统光盘,在安装系统时,容易出现此错误。原因是非正版光盘自动加载的硬盘控制器驱动不符合电脑自身需要的驱动。这种情况就建议换正版光盘安装操作系统。
2、手动更新错误的驱动程序
windows操作系统正常使用,但手动更新驱动程序把硬盘控制器的驱动程序更新错误,导致此故障。解决方法是进入windows系统高级菜单,选择最后一次的正常配置,即可正常进入系统。
3、bios设置变化后所导致
windows操作系统正常,但是由于某些原因,用户修改了bios设置,导致0x0000007b故障。
E. 提高C语言编程能力
一.学好C语言的运算符和运算顺序
这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明:
(1) 5*8/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5 *8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10 = 0;
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
对于c=++a*b来说,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。 这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20;
(3)(a = 3,b = 5,b+ = a,c = b* 5)
例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。
(4)a=5;b=6;c=a>b?a:b;
例中的a>b?a:b是一个三目运算,它的功能是先做关系运算a>b部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替if…else…语句的简单应用。
二.学好C语言的四种程序结构
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2) 分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
①if(条件)
{
分支体
}
这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}
③嵌套分支语句:其语句格式为:
if(条件1) {分支1};
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
(3)循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
(4)模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。 因些,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
三.掌握一些简单的算法
编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《C程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义,其中选择法排序和冒泡法排序稍难,但只要明白排序的具体过程,对代码的理解就不难了。如用选择法对10个不同整数排序(从小到大),选择法排序思路:设有10个元素a[1]~a[10],将a[1]与a[2]~a[10]比较,若a[1]比a[2]~a[10]都小,则不进行交换,即无任何操作;若a[2]~a[10] 中有一个比a[1]小,则将其中最大的一个(假设为a[i])与a[1]交换,此时a[1]中存放了10个中最小的数。第二轮将a[2]与a[3]~a[10]比较,将剩下9个数中的最小者a[i]与a[2]交换,此时a[2] 中存放的10个数中第2小的数;依此类推,共进行9轮比较,a[1]到a[10]就已按从小到大的顺序存放。即每一轮都找出剩下数中的最小一个,代码如下:
for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++)
if(a[i]>a[j]
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
结语:当我们把握好上述几方面后,只要能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学。
我觉得这个文章不错,所以给你,亲自动手编写完一个软件,会收获很多
F. 面试中被问到你遇到的java编程中的bug你如何解决的
首先,要认识 bug。
如果一个程序做了它不应该做的事,或者没有做它应该做的事,那就是 bug。bug 很难避免,尤其在规模化的编程过程中。
我们知道从面向过程的角度来说,一个程序是由数据结构和算法构成的,从面向对象的角度来说,程序可以是由类和对象组成的。因此 bug 我这里分成两类:
在一个 Java 程序中,类和对象的关系可能会造成 bug。这是设计时的问题,例如多实例的同步问题、线程冲突和死锁问题,这是常见的两个潜在的 bug。要尽量避免这类 bug,只能在设计时下功夫。思路一定要清晰,一定要清楚每个类要做些什么,什么时候该做些什么。这类 bug 比较容易发现,但是不易修补,因为牵扯到程序的不同部分,有时候相当麻烦,因此最好一开始就不要让它出现。
然后一些细节上的 bug,属于逻辑漏洞,可能是算法上的漏洞。Java 其实这方面要比 C/C++ 安全,因为后者的某些漏洞是致命的,例如内存泄露、指针冲突、野指针等一系列问题,可能直接导致程序崩溃,但是 Java 绝对不会出现指针问题,内存相对安全。但是 Java 也可能导致内存不断消耗,最终崩溃的情况也是有的。这个问题我也碰到过几次了,如何解决?需要你对你大量使用的类非常熟悉,最好事先仔细看看文档,有的类需要你最后 dispose 的,有的类 add 过后需要 remove 的,有的类的某些方法会间接地创造一些对象。这种 bug 不大容易发现,尤其是我们有时候对 JVM 的绝对信任而忽略了这些细节,甚至造成了不好的习惯。要么不碍事,要么很严重,一但出现问题可能会发现同样的问题几乎出现在所有的地方。所以避免这类 bug 只有谨慎,并且要养长良好的习惯。
顺便说一句,Java 内存溢出后程序就直接退出,可能会导致数据丢失之类的,这个责任担当不起的。
然后逻辑漏洞还没讲完,还有一些和内存无关,但是也是逻辑上的疏忽造成的,例如数组越界、空栈、格式不兼容等等。这些相当难发现,有时候是正常的,有时候就报错了。这个可以说是最普遍的漏洞,也是最难发现的漏洞。这类漏洞要看程序员的水平,经验丰富、思维清晰、反应敏捷、习惯良好的程序员会好一点,但是不是所有的程序员都是这样的,再说人无完人,再怎么水平高也难免犯点小错嘛。这种漏洞基本都是在后期测试(传说中的内测)和已发布的测试版中逐渐被发现。为了尽量早发现,内部的测试要做的好,不过首先负责各个部分的程序员之间要定下默契,程序要符合规范,类和方法尽量简单化,不要一个方法出现 4 个以上的参数,因为那样会巨大的增加测试的麻烦。要写好注释,变量名写完整,等等规范就不一一列举了。然后对测试人员的要求也是比较高的,测试人员必须熟练掌握测试技巧,有的团队这些小 bug 的修复也是测试人员做的,那测试人员也要良好掌握调试技巧,团队内人员要保持良好的沟通。
G. 编程如何避免或减少运行错误
1. 做做以往历年的竞赛题和网上的模拟题,熟悉比赛的题型和要求,找出自己的不
足,加强训练;
2. 增强自己编写代码和调试的熟练程度,提高做题的时间和节奏感;
3. 熟练掌握文件的输入/输出操作,新大纲中对复赛的要求;
4. 提高自己设计测试数据的能力;
5. 提高自己做题的正确率(分数/时间);
6. 算法方面:递推、递归、动态规划、贪心、搜索(初中到回溯就差不多了)基本
上是必考!!!对一些经典问题和算法,一定要熟练的不能再熟练;
7. 数据结构方面:字符串经常考,树(尤其二叉树)、图的基本算法(最短路径、最
小生成树等);
Ø 复赛注意事项
1. 认真审题,尤其要注意问题的规模(数据范围),从某种意义上说,问题规模也暗示了你可能的算法。数据小,也许是搜索派上用场的时候;数据大了,可能只能考虑动态规划,数学方法等高算法了。
2. 正确的估计题目的难度和自己的水平。拿到试题后先从总体上分析一下题目,做到心中有数!注意:题目的难易对所有人是公平的,只要最大限度地发挥自己的水平,不要有包袱,考出自己的最佳成绩。
3. 正确地选择题目去做(最擅长、最简单的先完成),合理地安排时间和解题顺序。
4. 复赛中:一定提高正确率!!!解题速度是其次。
5. 复赛考查的算法并不困难,选手在实现上的问题往往要多一些。建议大家:
1) 充分利用草稿纸,不要对自己的“心算能力”太自信!编程熟练的同学喜欢“一气呵成”,拿到题目就开始编码。我认为这样不好,做信息学竞赛题的思维过程是丰富而曲折多变的,考虑问题必须全面,仅凭一时的“感觉”来编程往往是漏洞百出。比如初学者常常忘记做一些初始化工作(远不止变量赋初值这种最简单的),即使有经验的同学也难免因一时疏忽写出几个错误的语句。最要命的是“第一感觉”的算法是错误的或者效率太低(命题者的陷阱),而程序编了大半才发现,时间浪费了不说,还影响了信心和发挥。
2) 做一些复杂的题目,编码采取自顶向下,逐步求精的方法,调试时采用输出中间结果的办法及时找出错误的地方。可以这么说,思路越清晰,对自己程序的算法和编码越了解,调试也会越顺利(一定不要忽视这一点)。
3) 多测试:样例数据、极限(小大)数据、特殊数据,分析能否在规定的时空范围内出解,精度是否够,格式是否对,输入输出文件名、格式是否正确等。
4) 不一定要拿满分,有些题目如果你很拿手,也肯定能做对,那么一定要保证拿满分;但有些题目,在有限的竞赛时间里,你很难拿满分,或者自己觉得没有足够的时间和信心,没有好的方法,那么在很少的时间内用投机取巧的方法(如贪心等)能得到不错的分数,也是一种很大的成功。
H. 想成为电脑高手,会编程找漏洞等等该从那学起
开始学习不在于多,而在于精.
初学者不要过多停留在语言与工具的表面.学习一门能深入底层的语言,最好的选择是:汇编,C,C++.我感觉C/C++足以,汇编用于调试和嵌入汇编就可以了.我选择的是C语言,因为它入门简单,深入难,需要数据结构和算法支持,这样能更好的学习数据结构和算法.
初学者不要使用Java,VC++的MFC,VB,那样会很危险的.如果无深入底层,停留在语言表面过久,不利于初学者未来的发展和继续学习.对! 你可以用JAVA编程,你可以用MFC做出东西,你也可以用VB程序.但是一些比较底层的东西你一点都不知道,连汇编的调试也不懂,程序BUG在那里也不知道.那永远只是一个熟练使用锤子的工人,难道你不想成为建筑工程师吗?楼房是你构思的,图纸是你画的,而不是建造楼房中的一个不起眼的埋头工作的工人.
深入底层学习大概: C/C++ ->数据结构->编译原理
数字电路和汇编语言->计算机组成原理
操作系统->Linux内核
自己再动手写一个比较简单的内核.
为什么要学习内核.why?因为内核是一个学习软件工程最好的摸版,有很多技巧,技术,是C/C++课本上无法学到的,这主要是把理论知识总结起来.为什么要自己写一个简单的操作系统内核,大家也知道,没有什么比实践更容易理解.等你把简单的内核完成的时候,你的计算机组成原理,操作系统,Linux内核, 数据结构,C语言,汇编会得到一个更深层次的理解.
这些东西,是那些只能玩玩 VB,VC++,JAVA的低级程序员能理解的吗?这就是为什么有些高级程序员,只要看看的VB的书,不用两三天就能掌握的原因.你叫java程序员来试一下.
所以说,成为了高手,基础打牢靠了,学什么都简单.比起你今年学个java,明年又学个VC++.最后没有一样能学好.不如把时间用来打好基础.
希望各位能给未来的软件产业作出贡献. 希望大家多多支持Linux和开源软件.
我也是一名正在学习中的大一新生.我之所以能有这样的思想,真的没有什么好好奇的.那是我从以前的各位大师身上吸取的思想.我也正在为成为高手而努力.
想为成为高手而努力,就不要把时间浪费在打游戏,打牌,弹吉他等一些事情上了,我们计算机学院的学生都是网游成风,我真为他们担心,更为中国未来软件的产业担心.
I. 大学生如何提高编程能力
作为一个计科专业毕业的学生,也作为一个工作多年的程序眼,我来讲讲吧,大学生大学期间,该如何学习编程,提高自己的能力。
我首先想说的是:作为计算机专业的学生,学生最重要的一个阶段就是学习基础和理论知识。
基础最重要,比如:在大学期间一定要把算法,数据结构,二叉树,链表,红黑树等基本算法搞清楚,还有就是编译原理,计算机组成原理,计算机网络,编程语言上 C,C++ 学习好,可能还有 Java,这些语言课程也要深入理解。
一定要学习明白,理解到位。
我经常说的一句话就是: 看似最枯燥、最基础的东西往往具有最长久的生命力。所以,对于我们程序员成长过程中来说,最重要的是什么?对,就是那些最基础的知识。
不要天天谈什么框架,什么库,框架每年层出不穷,可是扒下框架那层炫酷漂亮的外衣,里面还是那些最基础的知识和原理。
以后你编程这道路,所有的东西都“万变不离其宗”。如果你基础好,学习什么都很快。
作为学生前三年的阶段就是要把地基打好。
第二个阶段,也就是大四,实践,去找实习,了解目前业界都在做什么?最流行的技术是什么?框架有哪些?在实习阶段要学会总结,积累和反思,找到自己在哪方面不足,就往哪方面练习,实践最重要的两点就是:一是疯狂写代码,积累经验。二是寻找自己的不足,再努力改变和学习。
在大学期间,经历这两个阶段的淬炼,相信你步入社会,能够找到一份不错的工作。尤其是大型互联网公司在校招的时候,对于学生来讲,重点面试你们的是基础知识和算法,而不是工作经验。还是那句话,对于学生时代的你们,基础原理和算法最重要。
基础和原理,算法学好了,才是精通编程最重要的基石。
J. 有什么最好的方法可以在短时间内快速提高编程水平
你为什么要选择C#这门语言呢?你为什么不选择更容易学的或者使用更广泛的语言啊?你马上就要走向社会了,建议你多多学习C++和Java这样的语言,虽然相对C#来说复杂了,但是学好学精这两门语言,你的就业机会是非常大的。也许你会问我,学好C#不是一样可以找到工作吗,我并不否认你的看法,我要告诉你,语言的选择有个地域限制,如果单单是为了学习,可以随便选择,如果是想靠语言来找工作的话,C++和Java在我们北方就业面是非常广的,也是比较难学的两门语言。
你既然喜欢编程,就应该认认真真的学习一门语言,先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。
学习C语言,谭浩强的《C程序设计》是一部非常好的C语言书籍,学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。看到你的情况,编了一个学习系统,对语言的驾驭能力还是很不错的,我相信你,你一定能学习好C语言的。
我是2001年接触编程的,刚开始只是大概了解一下,并没有进行比较深入的学习,我是从VB开始入门的,学了1年多,然后转入C语言,按照C——C++——VC的顺序学习,C学了两年,现在开始学习C++,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。
我向你推荐一些C++经典书籍:
c++程序设计教程
c++编程思想
c++大学教程
c++程序设计语言
数据结构算法与应用c++语言描述
c++标准模板库------自修教程与参考手册
泛型编程与STL
深度探索c++对象模型
设计模式---可复用面向对象软件的基础
重构---改善既有代码的设计
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。
其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。
业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,
我是一名大三的学生,我也正在学习C++这门语言,一年多的时间,学习的感觉真的很累的,希望能和你成为朋友!
当你自感觉自己学习效果有很大提高的时候,你可以参加相应的培训,如北京的达内培训,南方也应该有,北大青鸟培训,印度NIIT软件培训等等。这些都是非常优秀的培训中心,是保证就业的。
下面,基于你对编程这么感兴趣,而且你是即将走入社会的大学生,我想把自学和老师教学的区别向你说一下,有不妥之处,请多多指正。
自学的时候,你可以花费一个月甚至更多的时间完成一个程序,并没有答案可供参考(在书店里,很多编程书籍里的习题是没有答案的,难度也特别高),可以尽情发挥自己的想象力去完成。当你看到一个个程序在没有任何参考资料的情况下,由你自己写出来的时候,是不是感觉很有成就感啊!如果你感觉自己对知识掌握的程度有很大提高的时候,我恭喜你,你可以进行更深一步的学习了,VC++,软件需求等知识。
在课堂,花费很长时间编写一个程序的情况,是不会出现的。因为老师是按照教学进度去辅导学生的,学习时间是很紧凑的,一个月不仅仅是做一个程序,要做很多很多,大部分程序和书中的例子有很大关系,或者说进行扩展,难度并没有很明显的变化,还有答案参考。这样不能满足程序的完整性。我自己感觉和学生的学习能力有很大关系。其实,老师应该在要求同学完成书面作业的同时,多读一些辅助性的书籍,对于学生来说,学习效果会更好。
好了,说了这么多,希望能给你一些帮助啊!可以参考一下,为自己做个学习计划,要对自己有信心,祝你在计算机学习的道路上,一路顺风。