軟體開發的三重門

2021-07-25 07:41:34 字數 1297 閱讀 9337

軟體開發的三重門:

第一重門是業務功能,在這重門裡,的確是會程式設計就可以了;

第二重門是業務效能,在這一重門裡,技術的基礎就很管用了,比如:作業系統的檔案管理,程序排程,記憶體管理,網路的七層模型,tcp/udp的協議,語言用法、編譯和類庫的實現,資料結構,演算法等等就非常關鍵了;

第三重門是業務智慧型,在這一重門裡,你會發現很多東西都很學院派了,比如,搜尋演算法,推薦演算法,**,統計,機器學習,影象識別,分布式架構和演算法,等等,你需要讀很多計算機學院派的**。

總之,這主要看你職業生涯的背景了,如果你整天被當作勞動力來使用,你用到的技術就比較淺,比較實用,但是如果你做一些知識密集型的工作,你就需要用心來搞搞研究,就會發現你需要理論上的知識。比如說,我之前做過的跨國庫存調配,需要知道最短路徑的演算法,而我現在在亞馬遜做的庫存**系統,資料探勘的那些東西都需要很強的數學建模、演算法、資料探勘的功底。

我覺得真正的高手都來自知識密集型的學院派。他們更強的是,可以把那些理論的基礎知識應用到現在的業務上來。但很可惜,我們國內今天的教育並沒有很好地把那些學院派的理論知識和現實的業務問題很好地接合起來。比如說一些雜湊表或二叉樹的資料結構,如果我們的學校在講述這些知識的時候能夠接合實際的業務問題,效果會非常不錯,如:設計乙個ip位址和地理位置的查詢系統,設計乙個分布式的nosql的資料庫,或是設計乙個地理位置的檢索應用等等。

在學習作業系統的時候,如果老師可以帶學生做乙個手機或嵌入式作業系統,或是研究一下unix system或是linux的原始碼的話,會更有意思。在學習網路知識的時候,能帶學生重點學一下乙太網和tcp/ip的特性,並調優,如果能做乙個網路上的pub/sub的訊息系統或是做乙個像nginx一樣的web server,那會更好。如果在學圖形學的過程中能帶領學生實踐乙個作圖工具或是乙個遊戲引擎,那會更有意思。

做為乙個程式設計師,我們除了要掌握多門程式語言和多種資料庫,了解前端技術、後端技術,通曉網路七層

架構,知道 tcp/ip三次握手和四次揮手,編寫漂亮的**,設計優美的架構……之外,我們還要解決研

發、程式執行和產品上線過程中遇到的各種問題,而且被要求以最小的代價來解決問題……我們容易嗎?

除了程式設計技巧和程式設計能力,解決問題的穩準狠是衡量乙個程式設計師是否優秀的重要因素之一,也是資深技術人員真正的價值所在。在科技浪潮澎湃、技術資訊撲面而來的今天,一位剛畢業的大學生如果足夠勤奮,他可以在兩三個月之內掌握一門程式語言,並編寫出像模像樣的軟體,他們的學習速度甚至超過了我們這些老程式設計師,但是解決問題的能力是無法速成的,只能依靠時間、經驗和慘痛的教訓歷練而成。有時候還需要靈感和運氣。

大資料三重門

這是大資料的第一階段,也是大資料當前所處的階段。這個階段的表象是 大資料部門在大部分公司遍地開花,大家一擁而上 這一階段的必然結果是 大家發現耗費了大量人力物力,終究是收效有限 雖然大部分企業的消耗了大量的資金,卻沒有帶來應有的價值,但帶來的乙個副產品是 企業花的錢給工業界和學術界 積累了大量的大資...

聊聊大資料的三重門

人類實現了資訊的儲存,就像time machine一樣,回到任意乙個點,通過已有的資料重新構建過去的影像,也能夠 未來,模擬乙個虛擬而準確的未來環境。兄弟連雲計算培訓就跟大家聊聊這大資料的三重門 大資料第一重 這是大資料的第一階段,也是大資料當前所處的階段。這個階段的表象是 大資料部門在大部分公司遍...

推開革命的三重門(《程式設計師》第八期卷首語)

推開革命的三重門 對於旁觀者來講,沒有什麼比目睹一場革命更過癮,然而對於捲入其中的人來說,革命 是乙個充滿著惶恐無助的 的殘酷的蛻變過程。曾 經得意忘形的既得利益者被掀翻在地,苦澀地目送著新得利益者走向得意忘形的廟堂,那是怎樣的一種刺激!在某些領域裡,這樣的刺激來得太少,來得太慢,讓人 總也學不聰明...