了解最新公司動態及行業資訊
1.軟件工程師的工作是什么?
為了了解數學與軟件開發之間的關系,首先我們需要了解一名普通的軟件工程師的工作。
大多數工程師最終都會從事Web或業務應用程序的開發,要么是前端,要么是后端,或者兩者兼顧。
這類項目通常要求你需要掌握 Java、JavaScript、Python、C# 和 Go 等語言,以及SQL等查詢語言。
除了語言本身外,你還需要學習使用框架和庫,例如 React、Angular、Express、Django 和Spring 等,這些框架和庫能夠加快開發應用程序的速度。
除此之外,你可能還需要學習開發運營方面的知識,例如 Docker 和 Kubernetes 等容器化產品,以及學習使用各種云計算平臺,例如亞馬遜的 AWServices,Google云平臺等。
2.什么時候需要數學知識?
雖然學好這些軟件工程知識是一項艱巨的任務,但是重點在于,這些知識與數學都沒有直接的關系。盡管很多知識都是以數學領域的理論為基礎,但學習這些知識并不需要了解數學。
這些技術所需的大多數知識都是獨立的,不涉及大學課程中講授的理論內容。
即使是大多數計算機科學課程也只能幫助你了解這些技術的皮毛。大學課程可能會為你提供有關這些技術的設計及其實現方式的背景知識,但很少具體講解如何在實踐中使用這些技術。
話雖如此,基本的數學概念和知識仍與大多數軟件工程工作有一定的關系。但是這些數學知識都不要求任何正規的教育,你可以通過互聯網輕松自學。
以下就是軟件工程師需要掌握的基本數學知識和概念:
通過快速的估算(例如費米問題),估計成本和系統負載。
對概率和統計信息有基本的了解,能夠做出數據驅動的決策(例如使用A/B測試),以及進行基本的數據分析。
對邏輯的簡單理解,能夠編寫正確的代碼并理解他人編寫的條件判斷式。
對漸進分析有基本的了解,能夠編寫復雜的代碼,并引導自己尋求有效的解決方案。
3.數學有幫助嗎?
即使大多數軟件工程的工作都不需要數學知識,擁有扎實的數學基礎自然不是壞事。
雖然數學課和常見的軟件工程活動之間可能沒有太多可直接傳遞的信息,但是學習數學的過程可以培養你解決問題的重要能力。
從根本上講,軟件工程的工作就是通過編寫代碼和設計軟件系統來解決問題。同樣,數學,尤其是以證明為主的數學需要用數學語言撰寫一系列正確的聲明來解決問題。
從較高的層次來說,這兩項活動都涉及將邏輯和事實翻譯成某種表達語言。在這兩種情況下,邏輯的一致性和正確性都至關重要。
然而,這并非數學獨有的能力。許多其他領域(例如哲學)以及STEM領域(例如物理學)也涉及類似的能力。甚至還有一些活動,例如玩某些電子游戲或解決難題,也需要類似的邏輯和解決問題的能力。
數學只是幫助軟件工程師在編程之外,建立批判性思維能力的眾多活動中的一個。
4.什么時候需要使用數學?
雖然軟件工程的大多數子領域都沒有直接使用數學,但的確有一些領域需要使用數學。
這些領域包括機器學習、圖形、游戲開發、機器人技術和編程語言開發等領域。
在這些領域中,你的工作需要直接應用數學知識,其中包括微積分、線性代數、圖論、概率、統計、邏輯和離散數學等。
但是,即使在大量需要數學知識的領域中,我們也很少將數學知識直接轉換為代碼,因為我們還可以使用庫。
這些庫(例如主要用于神經網絡編程的庫TensorFlow)可以抽象基本操作,程序員只需更多地關注高級概念。
例如,作為使用此類庫的工程師,你無需編寫代碼即可使用梯度下降。你只需指定神經網絡的架構以及訓練方式即可。
因此,即使在這些領域中,你仍然無需了解所有的底層數學知識。通常,僅了解概念以及應用方式就足以有效地完成你的工作
上一篇:沒有了!
下一篇:社交電商APP開發方案