(27)技术人员的内功和外功
以下部分內容選自知乎,侵權刪。
看了很多人的問題和他們的困擾。諸如:
新技術不斷出現,舊技術不斷淘汰,無法跟上新技術的步伐或擔心學習的技術會被淘汰
學習那種語言比較有前途
那種語言比較好,不容易被淘汰
已經學了這個語言,要不要再學那個語言
等等諸如此類的問題。
其實電腦編程語言的世界里面是有編程語言的共性和通用的東西。當然每個語言也有自己的特性。
有個朋友在和我討論編程學習的時候,提出了編程內功和編程外功的觀點。他認為編程內功是所有語言通用的東西,外功是浮在表面上的那些具體的產品和工具。
外功是使用語言和工具的一種技能,可以一直在變化,可以隨意換。內功就是編程理論和共性已經通用的知識,是一種能力。
學好內功,用內功推動外功,以外功表現出來,可以做到型變神不變,通吃所有的語言和工具。
還有就是內功比外功重要,學好內功,任何新的語言和工具都能很快上手使用。外功是輔助工具來顯示內功實力,但卻更有現實的實踐意義。
假設內功外功理論是合理的,那些可以稱為編程內功那些是編程外功?他們的關系是怎么樣的?
作者:caoglish
鏈接:https://www.zhihu.com/question/22471978/answer/21468471
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
自己認為的編程內功有:
編程通用性的知識
算法+數據結構
編譯原理
設計模式
重構
性能優化
面向對象編程
數據庫
抽象化
語言內部的共性
字符串處理
正則表達式
變量與常量
控制語句if-else
循環
函數/方法
類/對象/接口
遞歸
哈希表
數組
還有工具類的內功:
構建工具 (通用知識)
單元測試 (通用知識)
依賴包管理 (通用知識)
MVC 框架 (通用知識)
代碼質量檢測 (通用知識)
JSON 和 XML 設計 (通用知識)
代碼版本控制 (通用知識) git svn cvs等
IT外的相關知識:
數學(離散數學,幾何學)
物理
圖形處理
圖形/UI設計
等等,這些都是可以各種語言內都能交叉使用的共同的知識。這些知識學好了,大部分語言都可以用到,也都能或多或少在項目和應用中體現出來。
編程的外功包括有:
各種編程語言包括C++,javascript,java,php,C#,perl,python等
各種編程環境,.NET, WAMP/LAMP,node.js 等
各種IDE和編輯器,notepad++,vim,Visual Studio,Sublime等
各種快捷鍵,
各種包依賴管理器,npm,composer,Nuget
各種版本管理器:git,svn,cvs
各種單元測試工具
各種構建工具
各種MVC框架
等等
內功和外功的相互關系和作用
外功就是一個個的獨立工具的使用知識。其實就是一個和內功的具體實現,具體的外功是抽象內功的具體實現。使用這些工具,你可以實踐你的內功。
由于內功的通用性很高,所以比如說你在java中能實現的數據結構,你可以立刻在C#中復制出一樣的數據結構,如果再學了一個新的語言,比如說python,ruby,也能很快實現出一樣的數據結構來。因為是相通的。 內功就是你在一個工具里面能實現的東西,在另外的那個工具也能同樣實現的東西。
另外,內功學好了,學習新的語言或者工具會很快,這是因為,所有的編程語言和工具都有很多共同點,知識語法改了一改,當然還有一些特有的特性,是要你針對學的。所以假設當你還沒有學習java或者C#的時候,你學java需要一年時間,學習C#也同樣需要一年時間,但是如果先學習了java后,在學習C#(或先學C#再學java), 兩個先后學習的時間總共只要1年2-3個月的時間,而不是2年。這是因為你用Java去學習語言的共性,修煉了編程的內功。
內功學好了,內功比外功重要,那要學習外功嗎? 要,當然要,還要好好的學。因為你是通過外功來學習內功的。沒有語言本身,那里表現內功的載體呢。當你把一種語言作為載體,把所有語言的共性都學完了,然后就關注特定語言的特性了,有了內功的基礎,這些外功很容易就啃完了,然后具體問題具體分析解決。比如要跨平臺的桌面程序,用Java;快速網站構建,用PHP;嵌入式編程,用C;網頁內編程用javascript; 然后還有不同語言之間的通信,用json或者xml。
而那些工具,可以輔助你的編程技巧,加速你的編程速度,提高你的編程質量,是你的編程得心應手,享受編程帶來的樂趣。
總結
編程的學習和提高,應該重點在編程內功上。通過某個編程語言和工具,去學習研究編程的通用功能和共性上。這樣就算未來有新的語言和技術出現,也能很快的適應新的語言和技術了。
而外功的提高,是可以大大提高自己的工作效率,它和內功相輔相成。外功作為輔助和內功的載體,也是很重要的。畢竟它可能是一個程序員吃飯看家領工資最具體的技術表現。
總結
以上是生活随笔為你收集整理的(27)技术人员的内功和外功的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巨一自动化工业机器人_2021第11届深
- 下一篇: ug编程内公差和外公差是什么_干货丨模具