大多时候并不需要,但也有好处。
以下为译文:
软件工程师的工作是什么?
为了了解数学与软件开发之间的关系,首先我们需要了解一名普通的软件工程师的工作。
大多数工程师最终都会从事Web或业务应用程序的开发,要么是前端,要么是后端,或者两者兼顾。
这类项目通常要求你需要掌握 Java、JavaScript、Python、C# 和 Go 等语言,以及SQL等查询语言。
除了语言本身外,你还需要学习使用框架和库,例如 React、Angular、Express、Django 和Spring 等,这些框架和库能够加快开发应用程序的速度。
除此之外,你可能还需要学习开发运营方面的知识,例如 Docker 和 Kubernetes 等容器化产品,以及学习使用各种云计算平台,例如亚马逊的 AWServices,Google云平台等。
什么时候需要数学知识?
虽然学好这些软件工程知识是一项艰巨的任务,但是重点在于,这些知识与数学都没有直接的关系。尽管很多知识都是以数学领域的理论为基础,但学习这些知识并不需要了解数学。
这些技术所需的大多数知识都是独立的,不涉及大学课程中讲授的理论内容。
即使是大多数计算机科学课程也只能帮助你了解这些技术的皮毛。大学课程可能会为你提供有关这些技术的设计及其实现方式的背景知识,但很少具体讲解如何在实践中使用这些技术。
话虽如此,基本的数学概念和知识仍与大多数软件工程工作有一定的关系。但是这些数学知识都不要求任何正规的教育,你可以通过互联网轻松自学。
以下就是软件工程师需要掌握的基本数学知识和概念:
通过快速的估算(例如费米问题),估计成本和系统负载。
对概率和统计信息有基本的了解,能够做出数据驱动的决策(例如使用A/B测试),以及进行基本的数据分析。
对逻辑的简单理解,能够编写正确的代码并理解他人编写的条件判断式。
对渐进分析有基本的了解,能够编写复杂的代码,并引导自己寻求有效的解决方案。
数学有帮助吗?
即使大多数软件工程的工作都不需要数学知识,拥有扎实的数学基础自然不是坏事。
虽然数学课和常见的软件工程活动之间可能没有太多可直接传递的信息,但是学习数学的过程可以培养你解决问题的重要能力。
从根本上讲,软件工程的工作就是通过编写代码和设计软件系统来解决问题。同样,数学,尤其是以证明为主的数学需要用数学语言撰写一系列正确的声明来解决问题。
从较高的层次来说,这两项活动都涉及将逻辑和事实翻译成某种表达语言。在这两种情况下,逻辑的一致性和正确性都至关重要。
然而,这并非数学独有的能力。许多其他领域(例如哲学)以及STEM领域(例如物理学)也涉及类似的能力。甚至还有一些活动,例如玩某些电子游戏或解决难题,也需要类似的逻辑和解决问题的能力。
数学只是帮助软件工程师在编程之外,建立批判性思维能力的众多活动中的一个。
什么时候需要使用数学?
虽然软件工程的大多数子领域都没有直接使用数学,但的确有一些领域需要使用数学。
这些领域包括机器学习、图形、游戏开发、机器人技术和编程语言开发等领域。
在这些领域中,你的工作需要直接应用数学知识,其中包括微积分、线性代数、图论、概率、统计、逻辑和离散数学等。
但是,即使在大量需要数学知识的领域中,我们也很少将数学知识直接转换为代码,因为我们还可以使用库。
这些库(例如主要用于神经网络编程的库TensorFlow)可以抽象基本操作,程序员只需更多地关注高级概念。
例如,作为使用此类库的工程师,你无需编写代码即可使用梯度下降。你只需指定神经网络的架构以及训练方式即可。
因此,即使在这些领域中,你仍然无需了解所有的底层数学知识。通常,仅了解概念以及应用方式就足以有效地完成你的工作。
分享到:
相关推荐
离散数学对软件的开发很重要,要学好离散数学,才能够为以后开发软件打下基础!
学生需要根据自己的兴趣和未来就业市场的需求,确定是否将软件开发作为职业发展的重要方向,以及是否继续深造或者直接步入职场。这样的规划将直接影响到C++学习的深度和广度。 其次,转变学习方法是学好C++的关键。...
学好数字信号处理,不仅需要扎实的理论基础,更需要能够将理论与实践相结合,将所学应用于实际工程中。 首先,要掌握数字信号处理的基本理论。这包括信号的基础知识,如连续信号与离散信号的转换,以及信号的傅里叶...
C语言的应用领域广泛,包括系统软件、应用软件、嵌入式系统、操作系统、数据库、游戏开发等。它的特点使其成为许多高级语言的基石,比如C++、Java等。 #### 怎样学习C语言 学习C语言的目标是为了掌握计算机程序...
总结来说,学好3D游戏引擎编程需要多方面的知识储备,从基础的3D图形理论到复杂的引擎架构设计,再到实际的游戏开发实践,每一步都需要系统地学习和深入的研究。此外,持续地跟踪最新的技术进展,以及不断地在实践中...
4. 社会需求:许多应用软件由非计算机专业人员编写,他们结合专业知识和计算机技能,能开发出更符合实际需求的软件。因此,掌握VB程序设计对非计算机专业学生尤其重要。 二、如何学好VB程序设计 1. 基本要求: - ...
作者建议,学习计算机专业需要有恒心,跟随技术发展的步伐,积极阅读课外资料,注重课堂听讲,强化实践操作,学好数学,合理安排时间,并关注领域最新动态。 其次,离散数学作为计算机科学的基础,对于软件工程至关...
这个软件我试过很强悍,很好用。这是微软公司开发的免费高数学习软件,以前我下过几个这类软件不过都要钱,还有就是功能不好用,操作也...为了便于大家也学好数学找个帮手,所以小Z我也给大家分享一下,希望各位喜欢。
C语言是一种广泛应用于系统开发、嵌入式编程和软件开发的高级编程语言,以其高效、灵活和可移植性而著名。学好C语言对于任何计算机科学或工程专业的学生都至关重要。以下是一些关键知识点和学习策略: 1. **C语言的...
VB是一门编程语言,所以能用VB做的很多很多,基本上除了底层开发(系统软件),VB都能做,而且在数据库应用方面VB也有他独到的一面。 3.如何学好VB(请详细说明) 这不是一句两句可以说清楚的。给你一个学习的过程:...
本课件主要介绍了这一领域的基础知识,特别是关于软件架构、B/S架构的软件开发以及学习方法。 首先,软件架构分为三种主要类型:C/S(客户端/服务器)、B/S(浏览器/服务器)和M/S(移动/服务器)。C/S架构如QQ,它...
熟悉开发平台,掌握常用开发工具,了解软件开发的基本方法。具备较强数据库安装调试与简单开发能力。掌握信息管理系统的应用、开发及维护技术。具有计算机网络系统的设计、安装、调试、管理能力,并且掌握计算机网络...
线性代数 同济5版 加有注解 ,学好数学才是学习软件的基础,在视频开发,人工智能有用,助你飞.
看别的同学在学asp.net就跟着学了,然后就了解到.net,j2ee,php是什么了,就觉得软件开发就是用这些了,而上 的那些专业课又与我们学的sqlserver啊,css啊,ajax啊,毫无关系,就感慨啊,还不如回家自学去就为一个文凭吗?...
在软件方面,学生需要掌握C语言、VHDL、汇编语言等编程语言,毕业后通常会在编程和软件开发领域工作。硬件方向则需要扎实的数字电路和信号系统知识,毕业生可以在电子设备制造部门或者电信部门从事硬件设计和研发。 ...
C 语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,适于编写系统软件,具体应用比如单片机以及嵌入式系统开发。 第二部分:使用 Putty 编写第一个 C 语言程序 ...
例如,E模块大全可能包括输入输出模块、数据库操作模块、网络通信模块、图形用户界面(GUI)模块等,这些模块覆盖了软件开发的各个方面。 1. 输入输出模块:这类模块通常包含读写文件、标准输入/输出、键盘鼠标事件...
学习C语言时,首要任务是学好数学,因为算法和数据结构的学习离不开数学思维。数学是计算机科学的基础,理解和运用数学方法能帮助解决复杂的编程问题。 明确学习目标至关重要,学习C语言的目的是掌握编程方法和理念...
学习C++,首先需要明确的是,它是一种强大的编程语言,被广泛应用于系统软件、游戏开发、设备驱动等各个领域。C++的语法基础是C语言,但又包含了面向对象编程的特性,使得它能实现更加高效和灵活的代码设计。 在...