為什麼應該學好軟體工程?

2021-09-11 18:07:04 字數 2057 閱讀 8998

我大學學的專業是通訊工程,設定的課程裡沒有軟體工程相關的課。畢業後從事軟體測試工作,作為測試人員,與開發人員溝通是重要的工作內容之一,所以做測試的十多年來,接觸了很多的開發人員,有些開發人員留下了深刻的印象,當然這個印象有好的也有差的。

在這些開發人員中,有些人fix bug的速度超快,還不會引入新的bug,有點像武俠裡的小李飛刀,刀無虛發,出刀必致命,用三個字形容:「快」、「準」、「狠」

而有些開發人員fix bug 的時候吭哧吭哧花費了很長的時間,qa提報的bug雖然解決了,又引入了新的bug,整個過程拖泥帶水。

到底為什麼差異這麼大呢?誠然,和經驗有一定的關係。久經沙場的老將,一眼能看出門道。

最近在抽空學習軟體工程的課程,突然領悟到開發人員有沒有系統地學習過軟體工程?有沒有學好?這個也是影響開發人員能力和素質的乙個重要因素。

開發人員裡不乏各種專業畢業的,相當一部分是非科班出身,也沒學習過軟體工程。

這種開發人員fix bug 時沒有系統性的理論做指導,fix 乙個是乙個,經驗沒辦法積累和系統化,所以會出現上面所提到的情況。

下面是一些典型的例子:

 開發時沒有分析沒有設計,上手就寫,後期難維護,加班熬夜去填「坑」;

 缺少理論指導,遇到新專案不能舉一反三,工作很平庸;

 遇到需求變更這種事,除了抱怨兩句客戶,只能悶頭做,無力反抗;

 做專案沒計畫性,想到哪做到哪,總是延期,比其他同事做的慢;

 不知道如何與團隊協作,職業發展遇到瓶頸,無法得到晉公升。

什麼是軟體工程?

有人參與、有計畫、有步驟地造一件產品,通常稱為「工程」

不用軟體工程做指導,能不能開發? 能,但會出現一系列的問題。就像不用建築工程去造房子,造出來的房子會出事故甚至死人的。

在計算機發明出來之後,隨著軟體的規模越來越大,複雜度不斷增加,軟體專案開發維護過程中的問題就逐步暴露出來:軟體產品質量低劣、軟體維護工作量大、成本不斷上公升、進度不可控、程式人員無限度地增加。所以在60年代,「軟體危機」的概念被提出來。

為了擺脫軟體危機,2023年秋季,北大西洋公約組織的科技委員會召集了近50名一流的程式設計人員、計算機科學家和工業界巨頭,討論和制定對策。在會議上第一次提出了軟體工程的概念。

從此誕生了一門新興的工程學科:軟體工程,它是為研究和克服軟體危機而生。

在這次會議上,同時也提出了「軟體工程」的定義:為了經濟地獲得在真實機器上可靠工作的軟體而制定和使用的合理工作原則。

2023年,電氣電子工程師學會(ieee)給出了乙個更加綜合的定義:

將系統化的、規範的、可度量的方法用於軟體的開發、執行和維護的過程,即將工程化應用於軟體開發中。

軟體工程定義的本質:就是用工程化方法去規範軟體開發,讓專案可以按時完成、成本可控、質量***。

基於軟體過程,有了角色分工,有了對過程的管理和工具,對工程中每個階段細分的方法學和工具。用乙個簡單的公式表達,就是:軟體工程 = 過程 + 方法 + 工具

亞馬遜的創始人傑夫•貝索斯曾經在一次演講中說:「人們經常問我,未來10年什麼會被改變?我覺得這個問題很有意思,但也很普通。從來沒有人問我,未來10年,什麼不會變?」

在軟體開發領域,有哪些知識十年前很重要,現在仍然重要,未來可能同樣重要?

這些知識包括:資料結構、演算法、物件導向思想、設計模式、軟體工程

如果範圍不侷限於程式開發,還要算上測試、產品設計、專案管理、運維這些崗位。

掌握了軟體工程的各種工具、方法、核心思想、本質規律,才能步步為營,持續積累經驗。

總結

最近頗流行系統思維,系統性思考等,其實軟體工程就是用系統化的思維去解決乙個問題。有了軟體工程的保障,才能把軟體開發做好。

為什麼軟體工程師應該養成寫作的習慣?

在學校裡,有 文科生 和 理科生 的區分,學習內容不同,思維方式也有差異。我是一名理科生,大學裡我的專業是電腦科學,畢業後我的工作是軟體工程師。在這個過程中,我發現文理科之間的鴻溝始終無法彌合。我見到的很多任務程師害怕寫文章,而文科生看到 就頭疼。我認為,程式設計師應該養成寫作的習慣。因為寫文章會鍛...

為什麼軟體工程師應該養成寫作的習慣?

在學校裡,有 文科生 和 理科生 的區分,學習內容不同,思維方式也有差異。我是一名理科生,大學裡我的專業是電腦科學,畢業後我的工作是軟體工程師。在這個過程中,我發現文理科之間的鴻溝始終無法彌合。我見到的很多任務程師害怕寫文章,而文科生看到 就頭疼。我認為,程式設計師應該養成寫作的習慣。因為寫文章會鍛...

軟體工程 軟體的估計為什麼這麼難

前兩年在網上看到乙個笑話集錦,列舉電視劇集中的穿幫情節。其中乙個是在某纏綿冗長的言情劇中,乙個叫 書桓 的角色沉痛地說 長達八年的抗日戰爭就要開始了 書桓同學當時是怎麼估計到抗日戰爭要打八年的?這一技術讓軟體工程師和專案經理望塵莫及。軟體專案計畫的乙個重要環節就是估計專案各類工作 特別是各種功能 所...