我来说两句,第一,程序其实就是一道一道的数学题,当然,如果你搞的是普通的WEB开发什么的,这些东西都不重要,但是做大型软件和搞科学研究的话,算法对一个程序来说至关重要,举个粒子,对20万个数据进行排序,不同的排序算法的运行时间是不一样的,用最垃圾的算法可能要跑上好几天才能算出来,用好的算法可能几分钟就能搞定,而算法的研究是要有着深厚的数学基础的。
第二,讲一讲应该学哪些数学知识,我是大学生,所以就从大学的角度来讲吧,首先大学里的基础课程高等数学是必须的,这可能对于你写算法来说没有什么太直接的关系,但是,你要记住,高等数学是最基本的东西,里面的很多概念性的东西都是编写程序相关的,是你学其他几门数学课程的基础。第二,线性代数,这们课在工科专业一般都开,很重要,尤其讲到的举矩阵、集合等等,是你以后在程序开发中能直接用到的,而且,线性代数里一些问题的解决方式能很大程度地活跃你的思维。第三,离散数学,离散数学是计算机和软件工程专业必学的课程,和计算机程序直接相关,举例来说,你在设计一条数据库的SQL语句进行联表查询, 你可以直接写上一大串来实现你的查询,但如果你能用离散数学里学到的逻辑推理和范式对你的SQL语句进行简化,那么你的SQL语句查询速度可能会有上百倍的提升。
第四,有兴趣可以学一学组合数学,我也正在看这方面的书,这是研究生的课程之一,但提前学一学还是很有好处的,里面很多结论、推理都会让你受益非浅,学好了这门数学,你的程序质量将上升到另外一个高度。
就说这些吧,总之,学软件开发的人必须要学数学,不但要学,还要学很多。
很多人都在说中国程序员30以后就干不了了,为什么,不是干不了,是干不动了,因为太多的新东西要学,而且学着很费力,为什么,因为基础不好,所以学什么都不行,我想提高自己的数学素质一定会改变这一现状。
不说了,接分!
学编程需要用到微积分,离散数学,数学电路,还有函数,以及各种数学思想,对抽象思维和形象思想要求都比较高。
学编程要具备一定的基础,总结之有以下几方面:
1、数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
2、逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。
我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。 然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题 。后面的就可以学习VC什么的了。
C语言的书推荐谭浩强的,比较好。
我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。
当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵 。
还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。
在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。
只是一家之言,有不到之处,还望见谅!
加法