① 学编程需要精通数学中的哪些知识
我来说两句,第一,程序其实就是一道一道的数学题,当然,如果你搞的是普通的WEB开发什么的,这些东西都不重要,但是做大型软件和搞科学研究的话,算法对一个程序来说至关重要,举个粒子,对20万个数据进行排序,不同的排序算法的运行时间是不一样的,用最垃圾的算法可能要跑上好几天才能算出来,用好的算法可能几分钟就能搞定,而算法的研究是要有着深厚的数学基础的。
第二,讲一讲应该学哪些数学知识,我是大学生,所以就从大学的角度来讲吧,首先大学里的基础课程高等数学是必须的,这可能对于你写算法来说没有什么太直接的关系,但是,你要记住,高等数学是最基本的东西,里面的很多概念性的东西都是编写程序相关的,是你学其他几门数学课程的基础。第二,线性代数,这们课在工科专业一般都开,很重要,尤其讲到的举矩阵、集合等等,是你以后在程序开发中能直接用到的,而且,线性代数里一些问题的解决方式能很大程度地活跃你的思维。第三,离散数学,离散数学是计算机和软件工程专业必学的课程,和计算机程序直接相关,举例来说,你在设计一条数据库的SQL语句进行联表查询, 你可以直接写上一大串来实现你的查询,但如果你能用离散数学里学到的逻辑推理和范式对你的SQL语句进行简化,那么你的SQL语句查询速度可能会有上百倍的提升。
第四,有兴趣可以学一学组合数学,我也正在看这方面的书,这是研究生的课程之一,但提前学一学还是很有好处的,里面很多结论、推理都会让你受益非浅,学好了这门数学,你的程序质量将上升到另外一个高度。
就说这些吧,总之,学软件开发的人必须要学数学,不但要学,还要学很多。
很多人都在说中国程序员30以后就干不了了,为什么,不是干不了,是干不动了,因为太多的新东西要学,而且学着很费力,为什么,因为基础不好,所以学什么都不行,我想提高自己的数学素质一定会改变这一现状。
不说了,接分!
② 做程序员编程需要什么数学知识,初中文化可以学吗
1.学习方法:本人认为这比什么都重要如果这个没掌握的话,可能直接影响你的成败。众所周知。。计算机知识 尤其是编程涉及到的知识可以说浩如烟海---那么面对这么多的知识该怎么去学呢?
---重点:1重实践,不要去想,把一个知识点完全彻底的掌握,那将是非常恐怖的,有编程经验的朋友都知道,编程里每个知识点深纠起来的话是非常困难的,更不要说是新手了。。那么知识点该掌握到什么程度呢? 个人认为:1-知道它是做什么 2-知道怎么使用。 这就足够了。。。。不要去管他的原理是什么,能把东西做出来才是王道。。。
---重点:2多写, 这个在编程界可以说是真理了,真正写程序的人都知道,一段程序你理解了并不代表你就会写了,那么怎么样才能提高“写”的能力呢? 本人认为要注意一下几点 1- 练习多做是必然的。 2- 做练习时不要因为觉得代码简单就只看不敲,哪怕多敲一遍HelloWorld 都是有好处的。 3- 相似的代码不要复制,我见过很多朋友,遇到两段程序类似,就懒的敲直接粘贴过去修改。。。请记住这是软件开发人员的做法,而你不是,目前你还只是一个学习者而已。所以 原则就是 能敲的就不要复制。
---重点:3把精力用在理解上而不要用在背上 写程序的朋友都知道,函数---关键字---常用类什么的,都非常的熟悉,为什么我们背过吗?没有 写的多了自然就记的牢了, 所以建议新手不要去死背什么概念,或语法 一定要理解它的作用。。。
---重点:4 笔记,我认为这点很重要,我自学时全是看书,和视频教程,然后总结对自己有用的东西。记在本上,而将来如果印象不深刻了由于是自己用自己理解的方式写的,简单翻一翻就能回忆起来,而如果,你忘了再去翻视频 或 翻书的话。。那么即使你曾经学过,也可能一时想不起来。。。
1.关于数学。。。这个问题,我觉得是目前争论最多的话题,我见过N多人说 学编程要学XX数学---什么微积分---什么离散---吓的新手连想都不敢想,我只想对这些人说一句,如果你懂,请你们帮助新手,如果你们不懂 请你们闭嘴 谢谢不要 误人子弟。。。那么下面我来 具体回答一下数学方面的问题。。。
1- 编程用数学吗? 用! 回答是肯定的,但要看你是做哪方面的程序。 懂编程的都知道,现在编程基本分B/C构架,即:客户端/浏览器端 与 C/S构架 即:客户端/服务器端 前者基本上就是JAVA PHP ASP.NET 等等。。。其中有多少地方用到了数学,如果还坚持没数学学不了编程的朋友请站出来回答下我的问题。。。
至于C/S 如果不是做系统级的程序员 或 大型3D图象处理 或者是音频处理的软件我请问又有多少地方用到了数学?如果你觉得x/y=z 这也算高等数学的话,我无话可说。。。。总结--除了3D等图象处理编程 或 音频处理编程 或系统级编程以外 其他编程对数学要求并不很高。。。。
2.关于英语, 我认为这个是个不可回避的话题,学编程一点英语不懂我觉得不太现实,毕竟有很多文档也是用英文写的,而且程序员都知道,编程时经常要用简单的英文,哪怕是定义个变量名,也要用英文起名, 没见过哪个程序员定义的变量叫什么aaa或bbb的。 那么新手该怎么面对英语呢, 我觉得很容易,按照书上或教程上去做就足够了,1 编写程序时 按规范要求去做,首先变量名,用见名知意思的英文单词, 写注释时 也用英文短句。。。 抛异常时 也用英文来标注等等。。。。慢慢积累,时间久了你就会发现其实计算机里的英语 就只有那么几句而已。。。
3.关于学校 这个我也想提一下,有很多想以程序员为工作的朋友可能都考虑过找个培训班---但我的建议是。不要去---起码一般的不要去,为什么?效果不好,就这么简单,我亲自到XXX着名编程培训学校试听过。。。结果很遗憾 一周才那么几天课,我3天阅读的知识点比他们1个兴趣 教的还多。。。而且上机和理论还是分开,新学的知识不能立刻上机实践等等。。我觉得都是很严重的弊病。。。跟严重的那些所谓的学校给学生们造成了一种假象。。。只要在学校里考试合格了,出去就能做程序员,甚至软件工程师了。。。最后他们将发现,原来他们在学校里学的 只是基础中的基础而已 - -
4. 自学的资料,我个人认为,自学第一重要的是 视频教程,懂的人都知道,编程学习时重点并不完全是知识点,而是如何运用那些知识点,这也是项目经验今天被人们这么看中的主要原因。。。所以视频教程绝对是不二的选择,现在网上的视频教程非常之多 各种各样的都有 具体怎么找相信不用我教了 google 电驴 迅雷--我就是靠他们活过来的 。。。而且视频教程还有一点是学校比不了的,那就是 你可以随时看 重复看,一个知识点没明白 你可以反复的听10遍 20遍都没问题, 学校恐怕就不行了吧。 另一个优点是可以在你状态好时看, 大家都有状态不好的时候,累了-困了 很正常,可在学校,谁管你? 老师讲完了 听不懂你自己的问题,而视频呢,好办 累了 先休息一会 有精神了 想怎么看就怎么看。。。我觉得 找到好的视频教程。。比任何老师都重要。。至于出现问题不懂怎么办? 相信能来到着找到我这篇文章的朋友 都有办法解决的。。
5.书 --- 我非常喜欢看视频教程,但我坚决反对只看视频不看书,为什么?很简单视频传授的是 写程序的经验 而书则是细腻的为你讲解其中的原理。。所以我的建议是 先把一个知识的视频看一遍,然后再把书翻一遍 然后自己再写2遍 量变必然引起质变 我相信这是放之四海 而皆准的道理(指编程行业)
6.时间+态度 我认为这也很重要,很多人经常这样问我,我1个月能学会编程么? 我半年能成为编程高手么? 我觉得有这样心理的人比适合学编程。。。 学编程最忌心浮,一个知识点还没弄明白 就想写个项目出来 这是不可能的,这样最后只能导致你自己丧失信心,编程要一步一步的来,相信我哪怕用一天时间才掌握了一个知识点,起码比你用一天的时间 看完整本书强。。因为前者起码你还是有点收获的(指新手,老手两天一本书很正常有经验了吗 - -) 这里我可以给大家一我的学习时间大家可做为参考。。。我是从0基础开始一直到现在掌握j2ee基本所有的基础开发技能 用时一年半,本人觉得不算慢 每天最少看书+练习5小时 每天不停这个是我的进度。
③ 程序员需要怎样的数学基础
离散数学对程序员来说非常重要,还有组合数学、线性代数、概率论、数论等等,即使你将来不做研究,这些基础知识也能极大地提高你的水平。计算机科学对离散数学的要求很高,建议你先学习前面提到的这些课程,然后学习计算机算法和数据结构,再配合到网上的在线题库做题,过程很艰辛,但是对你的帮助会很大。
推荐书目:
《具体数学》(先学完前面的数学课程,在水平有一定进步以后再看)
《算法导论》(应该人手一本的好书)
简单来说,学数学的目的,一方面是活跃你的思维;另一方面是为了深入学习算法打基础,设想一下,同样的问题,普通人的程序要几十分钟甚至几小时几天才能解决出来,甚至根本无法解决,而你精心设计的程序却能在1秒内解决出来,这就是数学的魅力、算法的魅力。
其实,一切取决于你是否想做一个高级程序员。如果你做体力活(其实一般编程别人都认为是体力活),那你可以不学,因为你用不到,但是,你要是做技术上的创新,做个很强的程序员,没有数学的支持,很难。
你既然学习了C,c++,你也知道算法的重要性,同样一个问题,我用13行程序解决了,我的同学居然用了33行,因为他不懂的用数学。你要达到什么高等,取决于你的数学修养。当然,要做一个普通的程序员就不用学习了。要挑战自己,做个好的,优秀的,学习数学吧!
④ 软件开发的程序员需要掌握多的数学知识
需要数学,但是这个数学不是说你现在学的数学这点知识,而是你是逻辑思维,如果你仅仅是想成为一个程序员,只是一个写代码的人,那你数学不需要太好,但是,如果你真想好好从事计算机这方面,尤其是想软件开发,你必须得学好数学,计算机本来就是从数学里分支出来的,你越往上走也就越接近数学,你相信吗,一个计算机的顶级专家不会写代码的人大有人在,什么是程序。有一本书是,程序=数据结构+算法。任何一门语言给你两个月你都能把基本的学的差不多,就想盖房子,写代码的程序员就相当于砖匠,你永远成不了设计师。一个大的正规的项目,有80%的时间是在设计,设计有哪些模块,用什么技术,怎么架构这个项目,怎么通信等等。。。。而等设计完了20%的时间给程序员把代码写出来。写了这么多,你自己好好想想,随便问一个高手,看看那个会告诉你计算机不需要数学,
需要注意的是,数学课本里的具体知识、公式,而是一种数学的思维方式、逻辑思维能力。最后祝你能够坚持走这条路,好运。
⑤ 学习编程需要会哪些数学知识
个人观点:编程,无论是用低级的汇编、C语言还是现在的OOP语言,与《数字电路》和《离散数学》关系不是太大。这两门号称计算机学科的基础,实际上是用于研究计算机的组成原理、架构之类的“深层次”科目。而编程的话,你只要了解语言的基本语句结构、能将问题分解成模块关用语言描述之就可以了。要说与逻辑的关系吧,也有,编程的时候经常用到逻辑判断以发展程序走向,这是与数学运算不相同的。
⑥ 高级程序员需要具备的数学知识有哪些
最开始我也不知道有啥关系,直到大三的时候看一些图像处理的书
卧槽!矩阵是干这个用的啊
⑦ 一个高级程序员所需要掌握的数学知识是多少
高级程序员最需要的数学知识:
算术:二进制、十进制、十六进制之间熟练转换
逻辑知识:与、或、非、空等各种运算
概率与统计:各种报表的编制开发,数据使用挖掘等等都需要
⑧ 当一个程序员需要多好的数学
任何面向工作的功利的学习行为都可以视为一种投资,必须考虑成本和收益的tradeoff;总体来看,个人认为计算机系本科不教的数学对于绝大多数程序员来说都是没有必要熟练掌握的数学。
数学不包括算法。算法一直是属于计算机科学领域的。数据结构算法能力是程序员的核心能力之一,而且永不过时。
当程序员做开发工作,有些方向不太需要数学,有些方向需要特定类型的数学(比如游戏开发、图形学会用到大量数值工具等);解决特定问题需要学习特定类型的数学;专门做特定领域的计算机科学研究需要用到大量特定领域的数学;既然如此,那就在碰到相应问题的需求去学习对应的知识就好了,没有必要非要计较到底哪个重要(前提是你应当知道你这个方向需要什么样的知识),也没有必要仅仅是为了提高“数学基础”而盲目不加选择的去学习所有种类的数学。
⑨ 电脑程序员要学什么知识
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握操作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本操作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
⑩ 编程需要学好数学的哪些内容
一般的编程只是一个技巧和熟练度的问题,真正见数学功夫的时候我想你还没达到。。。学数学只是在练逻辑,和更效率的程序。。。
先把基本的编程的思路技巧学会了,当你发现自己需要提高程序效率的时候在看看高数、线代、离散,数值分析 ,甚至更精神的练抽象能力的近世代数。。。
其中 学习过程:先学习 数值分析 离散数学 ,其次学习 高数、线代, 最后学习: 更精神的练抽象能力的近世代数。。。
另外,学编程数据结构和算法也很重要,总之要持之以恒!