要突破技術瓶頸?80%的人忽略了這個因素

大學時候學的軟件工程有用嗎?這是很多人經常問我的問題。大多數人覺得這門課很虛,似乎都是一些條條框框的知識點。比如說書中提到的軟件過程、敏捷方法、需求分析等等內容,讀起來有些道理,但細想又覺得是正確的廢話。

當我們結束學生時代,開始投入軟件開發工作,回過頭來想想,是不是經常遇到這樣的場景:

  • 你接到一個開發任務,想開發出需求的功能,你是不是先要做需求分析;
  • 你接手一個複雜的、大的功能模塊,是不是先要做設計,才能把複雜的拆成簡單的,才能和大家一起分工去開發;
  • 你完成一個功能模塊,如果要保證質量,是不是需要寫一些測試代碼,還要做一些功能測試;
  • 還有日常用的那些工具,像源代碼管理、Bug 跟蹤;

可以確定的說,不管你用什麼開發語言,不管是前端和後端,現代軟件項目開發,都離不開軟件工程知識的應用。

既然工作中在用,爲什麼很多人會覺得大學時候學的軟件工程很“虛”,卻又能作爲國家教育體系中的一門必修學科呢?

那是因爲大學期間的“軟件工程”更側重理論,缺少問題導向意識,理解起來枯燥乏味,很難學以致用,但衆所周知“程序 = 數據結構 + 算法”,而“軟件 = 程序 + 軟件工程”,跟數據結構、算法一樣,軟件工程也是技術人的“基本功”。

從當下考慮,學好了軟件工程,你的工作可以按時完成,你的軟件質量有保證,你做開發的時間和成本都可控。

經常有人說程序員是吃“青春飯的”,“中年危機、碼農、搬磚”,這些程序員的日常焦慮,究其根本,是計算機技術更新迭代太快,大家總在追趕潮流,擔心被淘汰。

更長遠的去想,在軟件開發領域,有哪些知識是 10 年前很重要,現在仍然重要,未來可能同樣重要的?哪些知識會決定你發展的高度?

相信大家心裏是有答案的,無外乎就是數據結構與算法、操作系統、計算機網絡、編譯原理,以及軟件工程這些“基本功”。

技術更新迭代速度再快,軟件開發背後的邏輯和知識體系卻萬變不離其宗,這些過去在用,現在在用,未來還會用的知識,就是經典的價值,就是行業最爲本質的東西。

2019 年 1 月,任正非還發表了一封刷屏朋友圈的公開信《全面提升軟件工程能力與實踐,打造可信的高質量產品》,相信大家都不陌生。越是優秀的技術公司就越強調軟件工程的應用,Google、Facebook、百度、阿里巴巴、華爲、微軟這些公司的方法論和軟件開發流程裏處處滲透着軟件工程的影子。

我經常會跟身邊的朋友“安利”軟件工程的重要性,絕大部分人對這門學科的印象是枯燥、難學。2015 年,我到美國攻讀計算機的碩士學位,學校經常會聘請企業的專家作爲兼職講師,他們總能把一些知識點和鮮活的案例結合起來,和學生一起探討這些知識點背後的歷史和邏輯。

受此啓發,經過數月打磨,我在極客時間的專欄《軟件工程之美》上線了,與學校常規的軟件工程學科不同的是,希望它既有趣又有用,我將結合國內外前沿的、典型的項目案例進行講解,教你如何將軟件工程運用在實際項目開發中,真正地解決程序員在軟件開發全流程中的疑難雜症。

我是誰?

我是寶玉,碩士畢業於美國德保羅大學,現在是團購鼻祖網站 Groupon 的資深開發工程師,出國前是上海衆遊的技術總監,曾深度參與過中國移動飛信項目的核心研發,也是微軟最有價值技術專家。我的個人從業經歷比較獨特,做過普通程序員,也做過技術總監,參與過大大小小很多的項目,這些豐富的經歷,讓我更好地理解了軟件工程的價值,也知道如何應用它可以發揮最大的功效。我希望將我這些年的思考,系統分享給你。

如何學習拿來即用的軟件工程?

我會從道、術、器三個維度來講解軟件工程的知識內容。

  • “器”就是軟件工程中的各種工具。
  • “術”就是軟件工程中的各種方法。
  • “道”就是軟件工程知識的核心思想、本質規律。

我做了張軟件工程的思維導圖,把各個關鍵知識點展示出來,結合專欄學習中的日常工作真實場景,及谷歌、微軟等公司的最佳實踐案例,幫你系統化的學習,真正做到即學即用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章