大學?做碼農?做工程師?

    最近看到一個知乎裏很熱鬧的討論,其中討論到科研能力與工程能力,我有很多感想。想說說大學CS方向的一些東西。

    我不是計算機專業的,現在大二本科工科在讀。

    我接觸編程起先是因爲必修課有一門C語言要學,課結束之後還是一直寫些零零散散的代碼,逐漸觸及很多軟件領域的知識,諸如linux使用,android開發……折騰了許久,逐漸發現這個行當裏有很多讓初學者,尤其是在校生,很迷惑的地方。

    作爲業餘編程愛好者,沒人要求我學習那一大堆計算機或者軟件專業的枯燥理論,我自然有更多時間和精力去做我感興趣的事情。我感興趣的事情正是花一段時間去讀API以及範例,然後去動手實現一個小應用。實話講,這種小東西對算法的要求很低,更多的是關注函數的調用和相關功能的實現。

    動手實踐,的確是不錯的。但這裏有個問題。你看API寫程序,讀範例然後模仿,老實話說這是一種低級智力活動。簡而言之,只是一種熟能生巧,是典型的技工(碼農)。

    如果一個人不太笨,肯下功夫,那完全是可以做一個很好的技工的。這意味着,成爲技工的成本很低。如果只想做一個熟練的技工(碼農),何必上大學裏那麼多枯燥的理論課?那些理論課的目的是什麼?我想是爲了教你具備成爲一個工程師而非碼農的素質。

    工程師需要的不只是API,更多的是對系統的架構,對性能的評估,因而需要更加紮實的計算機相關理論。我想CS專業的培養目標就是輸出一流工程師甚至計算機科學家吧!

    對於非專業的愛好者而言,他們更多關注產品實現,而頭疼於晦澀的理論,就像我現在一樣。如果想要把編程的愛好做成自己的職業,愛好者往往不佔據優勢。因爲他們多數沒有科班學習的經歷,全憑興趣,缺乏系統的認識和理論,小打小鬧足夠了,但做真格的大型項目就處於明顯劣勢了。

    我認爲,像我這樣處在大學階段的非專業同學可以擴展視野,通過這樣建立對這個行業的認識,然後選擇感興趣的方向鑽研下去,並一定要輔以對理論知識的學習,那樣可以加深對理論之於實踐的理解,最終讓自己的愛好變得專業起來。

    大學?做碼農?做工程師?我想應該有個答案了。

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