数学会对计算机编程的关系
我想大多人都会有这样的疑问,学习英语和数学会对计算机编程有用吗?我在上大学的也不知道,现在岁数大了,在这里结合我自己的经验和网上的资料说明下:
数学的重要性:
1.首先作为一个优秀的程序员,数学是十分重要的。数学是自然科学的基础,计算机科学实际上是数学的一个分支。数学主要能让人懂得一种分析问题的方法,然后再通过编程去实现它。
2.学习数学是一个潜移默化的过程,并不是说你学习了大学数学等就马上立竿见影的对编程有帮助了。所以,很多程序员说他们并没有用到太多的数学知识,就已经是一个很棒的程序员了。(他们是优秀的编程蓝领,但他们的成就也就到此为止了,因为开发平台的组件已经帮他封装好了一切,他只需要调用就可以了)。
3.数学对编程有如蔬菜对肌肉。你说你吃了这盘菜对你身上的哪块肌肉有好处谁也说不出,但如果你一点蔬菜都不吃,你身上的每块肌肉都会没用。
4.当你学会编程后,感觉学习数学好像更容易了。当然,学好数学再编程,编程也会变的很容易了。有了数学知识,你会发现数据结构与算法原来也是很简单的。
数学的学习:
1.如果你认为数学没有用处,那是因为中国的数学教授方法错了,没有教给我们需要的知识,而不是数学本身的错误。哪怕了解一点点相关的数学知识就能让你写出可爱有趣的程序,否则会有些小难度。换句话讲,数学是可以慢慢学的,只要你有时间。加油,兄弟们,你能行的。
2.对于程序员来说,什么是正确的学习数学方法,呵呵,我们不需要知道定理的证明和它们究竟怎么来的,我们只需要看懂他们,然后灵活运用就可以了。
3.所以,你数学究竟考多少分并不代表你运用数学知识的能力,实际上,很多的数学知识到死你都就不会用到,它们的确也不是为你的编程生涯准备的。我们只需要知道基本思想,基本原理和基本使用方法就可以了。
4.你对编程的兴趣将会使你只关注于数学实践性的部分,在这方面,你将做的和数学系的一样棒。
什么数学课程对编程有用呢?
1.高等数学是基础,对于你理解数据结构和算法、数据库等起到无与伦比的作用。
2.做计算机图像处理方面的话,线性代数必须要好。
3.压缩算法、人工智能都使用微积分的。
4.离散数学和计算机编程联系最紧密,最有效的离散数学的分支是概率理论.这是你在学校学完基本算术后的紧接着的课.你会问,什么是概率理论呢?你就数啊,看有多少次出现满堂彩?或者有多次是同花顺.不管你思考什么问题如果是以"多少种途径..."或"有多大几率的...",那就是离散问题.当他发生时,都转化成"简单"的计数.抛个硬币看看...? 毫无疑问在他们教你基本的计算用法后他们会教你概率理论.
5.不要单纯为了考试,考研而学习(我从来不认为一个学生的优秀用他的考试成绩来衡量,我的衡量标准是看平时),这会让你“一张白纸走进大学,一脑糨糊走出大学”。没有动手能力,到了社会,你除了比别人多了张文凭,什么都不是。
数据结构:
要对数据结构引起足够的重视。如果说计算机专业的学生与非计算机专业的最根本的差别绝对是数据结构(数学大家都一样学了,主要看你自己学得好坏)。对数据结构的掌握与运用能力是衡量你编程能力的一个很重要的指标。有的人对于看了链表,栈,树,广义表这些东西就头痛。然而这些东西往往能使你的程序的效率比别人高出百倍。由于一直搞信息学竞赛,到了大学又搞ACM,所以我对数学和数据结构都掌握得相对较好。这使我在应聘与工作中明显感到胜人一酬。记得自己大学时去一家公司应聘的经历,当时去应凭的还有3个人,有2个大学毕业,有个也工作了一段时间了。他们几个都在大讲自己的能力如何之强,会使用的语言及编程工具如何之多,经验如何之丰富。按理说我应该是资质最浅的。当时也是初生牛X不怕虎,也就硬着头皮去了。当时面试的题目是一个公司的资金管理项目的一个问题,要求每个人都在思考后给出自己的设计方案。其中比较核心的一个问题就是要计算一个资金最小波动值的问题,给出的数据量相当大,对效率要求很高。对于整个程序的面向对象化的分析我们几个都是差不多的,毕竟这些东西在学校里是很重视的,而且不是真正的难点。然而到了最关键的问题时其余的人都卡壳了,有两个是用简单的双重循环,时间复杂度(N^2),惨不忍睹。还有一个在冥思苦想了好一阵以后说用树,具体技术细节又讲不清楚,效率分析也很马虎。只有我当时很快就给出了采取AVL树的方案,并且利用高等数学推导作出了很详细的效率分析和时空换算,并提出了引入汇编的方法。很自然的我得到了这分工作。
在这里大家显然可以看到数学和数据结构对于一个优秀程序员是多么重要,它们是和一般的程序员打开档次的最关键的地方。数据结构你可以一点一点慢慢看,并不需要专门空出一段时间来专门研究,这样的目的是让你能够很好的掌握它,要学会用数据结构的知识来规范自己的程序设计和提高程序的效率。
编程能力:
最后编程能力的高低主要还是有以下几点决定:1。编程的习惯 2。数学能力(包括逻辑思维,分析问题的能力) 3。对数据结构的认识能力 4。经验的多少(包括多使用语言的掌握能力)。
如果你已经能够应用C++,懂得面向对象程序设计,对数据结构掌握很好,掌握汇编和编译原理。接下来的学习就是基于操作平台的了,一般是先学windows(Microsoft毕竟是老大),先学win32 api,搞清楚windows基本消息机制和原理,有汇编基础基本上不会碰到什么困难。
英语:
英语是从事计算机行业的最基本的条件,大多的计算机语言都是简单的英文,英文差空间有限。对于编程来说,英语的作用体现在阅读英文文档,适应国际化的编程环境,像微软MSDN文档等都是英文的,翻译过来的中文没法看。但请注意,学英语跟学习编程没有必然联系,英语好或许我在学习程序语言时要亲切些(因为高级语言诸多关键字是英语单词)。
数学会对计算机编程的关系相关推荐
- 厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...
作者 | 年素清 责编 | 王晓曼 封图 | CSDN付费下载自东方IC 出品 | CSDN(ID:CSDNnews) 他被公认为"大学生计算机编程第一人",是全球顶级黑客,是To ...
- 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略
李钰 摘要:在计算机编程中,合理地运用数学算法所拥有的优势不但可以完好地针对所拥有的问题进行总结分类归纳,还可以将其归纳作为基础从而进行针对性的统一计算,并且能够将非常复杂的问题进行整体的简化并且将其 ...
- 计算机编程免费ppt,计算机编程与C概述课件.ppt
<计算机编程与C概述课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机编程与C概述课件.ppt>文档请在天天文库搜索. 1.第1章 计算 ...
- 计算机编程课程顺序_九月份可以开始提供650多种免费的在线编程和计算机科学课程
计算机编程课程顺序 Seven years ago, universities like MIT and Stanford first opened up free online courses to ...
- 计算机算法对程序设计的作用,算法计算机论文,关于数学算法对计算机编程优化相关参考文献资料-免费论文范文...
导读:本论文主要论述了算法计算机论文范文相关的参考文献,对您的论文写作有参考作用. (重庆人文科技学院 理工学院数学系,重庆 401572) 摘 要:数学算法是一种将很多问题进行归纳总结,然后采用统一 ...
- 计算机编程的 20 年变迁!
技术在更迭,科技在变化.20 年前,或许只是处于概念型的技术,如今早已深入落地我们的日常生活中,而从计算机编程角度来看,在互联网发展的 20 年间,究竟有哪些根本性的变化?本文即将揭晓答案. 作者 | ...
- 数学与计算机的微妙关系
数学与计算机的微妙关系 一.高等数学 1.为什么要学习高等数学 2.高等数学的分类 3.高等数学的应用 1)生活上 2)科技上 4.高等数学发展阶段 1) 解析几何学建立 2) 微积分的创立 3) 集 ...
- 青少年计算机编程少儿编程小学生编程是否适合
青少年少儿小学生是否适合学习计算机编程,今天遇到学校的群里面又在推荐免费计算机编程的教程.就自己的感悟说几句. 我觉得青少年小学生,少儿不适合学习编程. 1. 学生是学习各种基础知识为主. 以现在小学 ...
- 计算机与英语关系,计算机底层和英文毫无关系
最近看到一些人在讨论计算机只能识别英文,中文不适合编程的问题. 决定针对这个问题,做一次科普. 这种说法完全是错误的! 1.计算机不仅不能存储汉字,英文也不可以存储. 计算机存储的仅仅是01代码而已( ...
最新文章
- 突破性进展!上海光机所成果登上《Nature》封面!
- 常用的几种大数据架构剖析
- c++ primer5th,习题12.24
- linux下nand flash驱动工作原理,Linux驱动之Nand Flash四问,原理、工作方式都包含了...
- ExtJs2.0学习系列(14)--Ext.TreePanel之第三式(可增删改的树)
- gitlab releases
- [Python] L1-028. 判断素数-PAT团体程序设计天梯赛GPLT
- 深度学习笔记_各种激活函数总结对比
- 湖北省疫情数据可视化分析
- 深度可分离卷积vs标准卷积
- 操作系统--磁盘调度题目
- 用计算机计算勾股定理,勾股计算器(勾股定理计算器)
- 【SEO案例】百度快照劫持怎么处理
- 计算机老师感言,信息技术教师感言
- Arduino检测不到串口的问题(改)
- 计算机网络学习——套接字实验(二)
- 如何正确理解SEO优化与搜索引擎优化之间的关系
- Oracle常見問題查詢
- 关于安装Python过程中 无法访问Windows Installer服务问题解决
- This beta version of Typora is expired, please download and install a newer;Typora的测试版已过期,请下载并安装更新版本
热门文章
- Android Native程序crash的一些定位方法简介
- linux7创建vsftp服务器,Centos 7 FTP(vsftp)服务安装及配置
- 25个细致微妙的扁平化2.0风格网页设计
- python蓝牙编程代码_以编程方式通过python将蓝牙设备绑定到rfcomm
- Android 安卓实现Neumorphism(新拟物化)UI控件
- 辅助类GenericOptionsParser,Tool和ToolRunner
- mysql用了索引为什么还是查询很慢?
- ssd固态硬盘寿命查询检测 SsdDiskInfo工具
- 解读银保监“个人信息保护专项整治”,强监管下金融业个人信息安全保护如何“守”?|特邀专栏
- 计算机组成原理六单元答案,计算机组成原理第六章中央处理器(含答案)