在软件工程中,是否要求你擅长数学或物理?
在什么特定情况下,您需要深入了解软件工程中的数学/物理知识?
In what particular situation you will need a depth knowledge of math/physics in software engineering?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
强烈建议具备良好的数学知识[非强制]。在我看来,物理学并不是那么重要,但基本的物理学知识肯定会有所帮助。
计算机科学植根于数学,编程和数学都需要良好的分析和解决问题的能力。
Good knowledge of Mathematics is highly recommended [not mandatory]. Physics in my opinion is not that crucial to know but basic physics knowledge will surely help.
Computer science is rooted to Maths and both programming and mathematics require good analytical and problem solving skills.
有点取决于你的工作范围。如果您尝试为游戏引擎实现某种引力模型,物理学知识肯定会有所帮助。
我认为数学知识是必要的,但是,你总会遇到一些与数学有关的问题。例如,我是一名网络开发人员;对于一个客户,我们必须在他的网站上制作一个工具/功能来计算地点之间的距离。但程序员不知道如何实现/使用毕达哥拉斯定理......
Depends a bit on your line of work. If your trying to implement some kind of gravitational model for a game engine, knowledge of physics will surely help.
I think knowledge of math is required however, you will always encounter some problems that have to do with mathematics. For instance, I work as a web developer; for one client we had to make a tool/feature on his website that calculates distances between to places. But the programmer didn't know how to implement/use Pythagoras theorem...
对于编程本身来说:提出关系和函数是有帮助的,但不需要深入的知识。如果您不想处理更深层次的问题和更多理论知识:是的,它是数学。当然,除非您想解决物理问题,否则不需要物理。
For programming itself: it is helpful to come up with relations and functions, but no depth knowledge is needed. If you wan't to deal with deeper questions and more theoretical stuff: yes, it is math. Physics is not needed, unless you want to solve a physics problem of course.
回答你的问题:如果你正在编写科学(嗯,物理类型的科学)和工程程序,你将需要良好的数学和物理。对于更一般的目的来说,好的数学比糟糕的数学更好,但糟糕的数学通常就足够了,而物理可能完全无关紧要。好的数学是一个主题(例如图论比实际分析更有用,算术比拓扑更有用)和知识深度的问题。
To answer your question: you will need good maths and physics if you are writing scientific (well, physics-type scientific) and engineering programs. For more general purposes good maths is better than bad maths but bad maths is often enough and physics may be totally irrelevant. Good maths is a question of topic (eg graph theory more useful than real analysis, arithmetic more useful than topology) and depth of knowledge.
计算机科学优先选择数学来满足其需求,至少在您不将计算用于数学性很强的领域(例如游戏编程)的情况下是如此。
这包括逻辑、图论、统计学、向量和三角学、集合论。对于普通工作来说,您的日常任务将涉及逻辑,仅此而已。如果您获得高于平均水平的工作,那么情况可能会有所不同。
Computer science cherry picks mathematics for its needs, at least where you aren't using computing for an area that is heavily mathematical, for example games programming.
This includes logic, graph theory, statistics, vectors and trigonometry, set theory. For the average job your daily task will involve logic and not much more. If you get an above average job then this may differ.
我是一名游戏开发人员,坦率地说,我必须说你不需要太多的数学知识和很少的物理知识。到目前为止我使用的都是三角函数、线性代数(对于 3d 矩阵)和一些插值。我真的不会说这是复杂的数学。至于物理学,如果您想模拟环境,一些有关力学和力的知识应该会有所帮助,但否则我不会真正明白这一点。
我还在业余时间做了一些其他的应用程序,从来不需要任何八年级以上的数学。
I'm a Game developer and frankly I must say that you don't need a lot of math and very little physics. All I used so far are Trigonometry,Linear Algebra (for 3d matrices) and some interpolations. I woudn't really say that's complicated math. As for physics some knowledge about mechanics and forces should help if you want to simulate the environment but otherwise I woudn't really see the point.
I also did some other applications in my spare time never needed any math that's over 8th grade.
编程基本上是以有组织的方式思考问题。数学和物理也是你需要清晰思考的领域。因此,如果您了解一些数学,它将对您有用,因为您将学会如何构建问题并解决它们。
至于具体的数学概念,数学是一个非常广泛的领域,无论您最终可能会编程什么专业主题,您都必须拿起一本书来学习它。例如,我修了一门包含大量物理和数学内容的工程课程,但当我开始工作时,我必须学习所有的金融数学,因为这类事情非常专业。但如果您习惯以有组织的方式思考,那么学习并不难。
Programming is basically thinking in an organised way about a problem. Math and physics are fields where you need to think pretty clearly too. So if you know some math, it will be useful to you because you'll have learned how to structure problems and solve them.
As for specific mathematical concepts, math is such a wide field that whatever specialised topic you might end up programming, you'll have to pick up a book and learn it. For instance, I did an engineering course with loads and loads of physics and math, but I had to learn all the financial mathematics when I started work, because that kind of thing is pretty specialised. But not hard to learn if you're used to thinking in an organised way.
这个问题专门询问了“软件工程”,当然,软件工程可以包括比编程更多的内容。作为一名软件工程师,您需要做一些事情,例如估计完成项目所需的工作量,或估计风险的影响。风险缓解和一些工作量估计模型基于并非微不足道的概率分布,并且为了按预期使用,必须被理解。
震级估计是另一个领域。如果您正在设计一个可能被多次使用或需要处理大量数据的算法,那么您将需要评估当需要多次执行或随着数据负载的增加时,候选算法所需的时间将如何增长,与其他一些可能或多或少有效的算法相比。这需要你的算法的数学模型。
我的建议:如果您计划参与软件开发的一些较大方面,请不要绕过数学课程。
The question asked about 'Software Engineering' specifically, and, of course, Software Engineering can include somewhat more than programming. As a software engineer you'll need to do things like estimate the effort required to do a project, or estimate the impact of risks. Risk mitigation and some effort-estimation models are based on probability distributions that are not trivial, and, to be used as intended, must be understood.
Magnitude estimations are another area. If you are designing an algorithm that can potentially be used many times or need to handle large amounts of data, then you will want to evaluate how the time required for a candidate algorithm will grow when it's required to execute many times or with increasing data loads, versus some other algorithm that may be more or less efficient. That requires a math model of your algorithms.
My advice: if you plan to be involved in some of the larger aspects of software development, don't bypass the math courses.