硬件工程师需要数学功底吗
When people start looking into software engineering as a career path, a typical first question asked is “I’m not very good at math. Do I need to know it for software engineering?” The short answer is “Probably not.”
当人们开始将软件工程作为职业发展道路时,通常会问到的第一个问题是:“我不太擅长数学。 对于软件工程,我需要知道吗?” 简短的回答是“可能不会。”
I will make a distinction here between software engineering and computer science. Computer science — the degree — requires a lot of math. It gives a well-rounded theoretical overview of the field that requires a lot of math (with courses like Discrete Structures being very proof-heavy).
我将在软件工程和计算机科学之间进行区分。 计算机科学-学位-需要大量数学。 它提供了该领域全面的理论概述,需要大量的数学知识(“离散结构”之类的课程非常繁琐)。
Software engineering — the career — usually requires much less math. It’s focused not on the theoretical structures but on practical problem-solving with code. Now, if you work in a quantitative or algorithmic field, this truth will not hold. A quantitative or algorithmic software engineer will use copious amounts of math in their daily jobs. The standard application or web developer will probably not use much at all.
软件工程(即职业)通常需要更少的数学知识。 它的重点不是代码的理论结构,而是代码的实际问题解决。 现在,如果您在定量或算法领域工作,这个真理将不成立。 定量或算法软件工程师将在日常工作中使用大量数学。 标准应用程序或Web开发人员可能根本不会使用太多。
数学会在我的软件工程职业生涯中受益吗? (Will Math Benefit Me in My Software Engineering Career?) The logical thought process behind math is very similar to the thought processes in software engineering, so in that respect, being good at math should translate very well into being good at software engineering. A lot of software engineering is about problem-solving and being creative in your approach. This is very similar to math in that to solve a problem, you have to pick a specific technique and be creative in how you use it.
数学背后的逻辑思维过程与软件工程中的思维过程非常相似,因此从这一方面来说,擅长数学应该很好地转化为擅长软件工程。 许多软件工程都是关于解决问题和在您的方法中发挥创造力的。 这与数学非常相似,因为要解决问题,您必须选择一种特定的技术并在如何使用它方面富有创造力。
This isn’t to say that knowledge of specific topics like calculus will be directly applicable — rather that if you can understand more advanced mathematical concepts, you should have no trouble understanding more complicated topics in software engineering.
这并不是说可以直接应用微积分等特定主题的知识-而是,如果您可以理解更高级的数学概念,则可以轻松理解软件工程中更复杂的主题。
Additionally, some fields of software engineering actually require a lot of math, and in these cases, being good at math will directly help you. As I mentioned before, quantitative (think investment banking or trading) and algorithmic software engineering fields are two key areas.
【python|硬件工程师需要数学功底吗_您不需要数学就可以成为软件工程师】 此外,软件工程的某些领域实际上需要大量的数学,在这种情况下,精通数学将直接为您提供帮助。 正如我之前提到的,量化(例如投资银行或交易)和算法软件工程领域是两个关键领域。
3个技能比数学重要 (3 Skills More Important Than Math) If you’re going into software engineering and you’re not good at math, I don’t think the best route to make yourself a more attractive candidate is to learn more math. There are many areas that you can get better at or study that will have more tangible benefits for your career.
如果您正在从事软件工程并且不擅长数学,那么我认为让自己成为更有吸引力的候选人的最佳途径不是学习更多的数学。 您可以在很多领域变得更好或学习,这将为您的职业带来更多实实在在的好处。
人际交往能力 (Interpersonal skills) This is one area that is seemingly overlooked, but improving your abilities in this area will help you from the interview stage all the way into your career. Starting in the interview stage, you will likely have a behavioral interview. Any soft skills you have will surely bolster your case for being hired. Even in technical interviews, soft skills will help you better articulate your solution and any help you may need with it.
这是一个似乎被忽视的领域,但是提高您在该领域的能力将帮助您从面试阶段一直到您的职业生涯。 从面试阶段开始,您可能会进行行为面试。 您拥有的任何软技能必将为您的录用提供支持。 即使在技术面试中,软技能也将帮助您更好地阐明解决方案以及您可能需要的任何帮助。
Once you get into your career, soft skills will help you develop better relationships with your coworkers, participate better in meetings, and articulate your work.
一旦进入职业生涯,软技能将帮助您与同事建立更好的关系,更好地参加会议并阐明您的工作。
学习其他专业领域 (Learning an additional area of specialization) Most people go into the field with one key area of specialization. This is great. Being very competent at one thing is a good way to make sure your skillset will remain valuable for a long time to come.
大多数人进入这一领域是一个关键的专业领域。 这很棒。 一件事非常胜任,是确保您的技能在很长一段时间内保持有价值的好方法。
It’s very difficult and takes a long time to get extremely competent in one area, so it’s unlikely — but possible — to become skilled in another. What one can hope to do is introduce themselves to new areas and gain a foundation. That new foundation may serve as a career stepping stone, allowing you to transition to a new area or further your insight in your current field. It’s possible that you may pick up a new paradigm that’s applicable to your current job.
要在一个领域取得卓越的能力非常困难并且需要很长时间,因此不太可能(但有可能)在另一个领域变得熟练。 一个人希望做的是向自己介绍新领域并获得基础。 新的基础可以作为职业的垫脚石,使您可以过渡到新的领域或进一步了解当前领域。 您可能会选择一种适用于您当前工作的新范例。
学习设计技巧 (Learning design skills) Though probably not a popular choice, this may prove to be rather useful. You don’t have to go out and become a Pixar animator or a Photoshop expert, but a basic understanding of the tools and concepts will help in your software engineering job. In my internships at Apple and Google, I was asked to put together presentations and sometimes struggled to visually articulate what I wanted. An understanding of layout would be useful in that scenario.
尽管可能不是一个流行的选择,但事实证明这很有用。 您不必外出成为Pixar动画师或Photoshop专家,但是对工具和概念的基本了解将有助于您的软件工程工作。 在苹果和谷歌的实习期间,我被要求将演示文稿放在一起,有时很难从视觉上表达我想要的东西。 在这种情况下,对布局的理解将很有用。
If you’re working in the mobile or web field, an understanding of basic UI/UX design will definitely help. You would be able to provide more useful input into UI/UX decisions and write your future code with those principles in mind.
如果您在移动或Web领域工作,那么对基本UI / UX设计的了解绝对会有所帮助。 您将能够为UI / UX决策提供更多有用的输入,并牢记这些原则来编写将来的代码。
Lastly, if you’re just trying to break into the field with side projects, you will find design skills to be immensely useful. I’ve done a lot of iOS development, and whenever I needed to design a screenshot, an icon, or an asset, it’s never quite turned out the way I wanted it. I always had the idea in my mind, but due to my lack of knowledge in design tools like Photoshop and Pixelmator and my basic knowledge of the theory of design, a lot of my assets in my iOS apps have just been mediocre.
最后,如果您只是想通过附带项目进入该领域,您会发现设计技能非常有用。 我已经做了很多iOS开发,每当我需要设计屏幕截图,图标或资产时,从来没有完全按照我想要的方式来设计。 我一直在想这个主意,但是由于我对Photoshop和Pixelmator等设计工具缺乏了解,而且对设计理论缺乏基础知识,因此我在iOS应用程序中的很多资产都表现平平。
结论 (Conclusion) No matter what new skill you choose to learn, the act of learning in and of itself will be beneficial not only in your software engineering career but in all aspects of life.
不管您选择学习什么新技能,学习的行为本身对您的软件工程事业乃至生活的各个方面都是有益的。
翻译自: https://medium.com/better-programming/you-dont-need-math-to-be-a-software-engineer-4ebd345be1d5硬件工程师需要数学功底吗
推荐阅读
- java|Java五年,已财富自由,美人在手!
- Python中循环的作用和分类、while循环详细讲解
- Python中if判断语句的综合应用(猜拳游戏(包含随机数知识点))
- Python中的if嵌套介绍【语法、实例、执行流程】
- 渗透测试|Metasploit(MSF)渗透测试框架使用教程及基本命令
- COMP9021 Assignment 1 难点
- Python 的 float 是单精度还是双精度
- 面试系列|阿里面试官偷偷给我的软件测试工程师面试题,拿offer率老高了
- java|JVM性能调优~JVM内存整理及GC回收