1. 程式人生 > >“6年的程序員還不會寫委托”,問題在哪?

“6年的程序員還不會寫委托”,問題在哪?

屏蔽 更多 應該 開發人員 開業 md5加密 軟件 準備 ram

今天在QQ群閑聊,一位群友的話突然引起了我的興趣,

還有個6年經驗老手,委托都不會寫,(吐血.jpg

於是我反問了一句:

為什麽你會覺得6年老手就要會寫委托呢?(壞笑.jpg

其實我經常看到這種說法,但本能的我就覺得不舒服。為什麽呢?我仔細的想了想,可能這麽幾個原因。

首先,我自己就是個老碼農,然後我自己知道自己其實很多東西都還不會(啊!崩了人設,是不是作死?)。我很怕有一天有人說:飛哥十年的老碼農,XXX都還不會……這應該就是兔死狐悲吧?

好了好了,“自黑”就到此為止,接下來開始我的自我辯護。

我記得我有一個回答,面試前端工作7年以上的人,總感覺他們水平一般般?我的回答:

換一下,讓他來面試你,你就知道他有多厲害了。

抖了下機靈,收獲了180個贊。

這個回答第一個層次的解釋可以是:你不能用別人剛好不熟悉的領域來判斷一個人。

但我想挖得更深一點,為什麽不能呢?!

我找了很久很久終於找到了,這幾幅圖,很可惜,原作者@itlr已經被知乎幹掉了(我估計我遲早有一天也會被知乎幹掉,?( ̄??)?):

很多人假設知識之間的關系是這樣的:

技術分享圖片

而沒有意識到,更多時候真實的關系是這樣的:

技術分享圖片

甚至是這樣的:

技術分享圖片

太特麽一針見血了!

其實說:“xxxx還不知道/會xxxx”的人,他們潛意識裏就認為知識結構是“金字塔”或者“階梯”形狀的,同時把你不會的那一個知識點放在了“基礎”級上,進而再推論出:你基礎的都不會,上面的自然更不會了。這對不對呢?只能說有時候對,有時候不對。

作為程序猿,理解這一點其實應該更容易,因為:

封裝

我不覺得6年的程序員不會寫“委托”有什麽問題,但我發現很多6年經驗的程序員不懂得“封裝”才是要命的。(好吧,誇張了一點,其實也沒那麽嚴重,只要能把功能實現一樣可以領工資,不要命,O(∩_∩)O哈哈~)

假如我問:面向對象的封裝是幹嘛用的?我估計很多同學會回答public/private之類的……

但其實不是的,或者說,遠不止於此。

封裝的作用,是屏蔽細節,或者說屏蔽復雜度。簡單的說,就是讓你“沒有基礎”“不知道原理”一樣可以幹活。

我們可以想象,如果沒有封裝的話,在現代社會,從事一個任何職業,得有多累!因為任何事情,你都要從“基礎”學起,要了解他的“原理”,天啊,一臺汽車多少零部件多少力學原理,車間裝配工人要了解這些怕是博士生都不夠用。

我們程序開發人員也是一樣的,至少軟件就只管軟件,別去關心硬件,這是一個最基本的隔離(封裝)……別拽你學了計算機組成原理,USB2.0和3.0的區別說得清楚不?會造不?還有說什麽數據結構和算法的,天天在用的MD5加密,算法怎麽實現的,為什麽不可逆你說得清楚不?你不知道,這不丟人,因為你也根本不需要知道。他們被封裝好了,你只需要拿過來,直接使用它,完成你的工作就OK了,這一點不丟人。

我真不明白為什麽程序員圈子裏會有這麽奇怪的一個文化:用別人封裝好的東西就是丟人。每個人都想去造輪子,有必要麽?看看現在前端造出來的那些鋪天蓋地、奇形怪狀的輪子,不知道他們是怎麽想的,我要是前端,我簡直都要崩潰了。

我記得這種觀點我以前說過?就不啰嗦了,其實我寫這篇博客,是因為我被刺激了,因為QQ群裏的這位網友問我:

你別告訴我你們培訓不講這個(委托)?那就太誤人子弟了!

我本來是準備要講一講委托的,但他這麽一說,我不由得想:我就不講了又怎麽的呢?所以我的回答是:

完全可以不講啊!

直接lambda不行嗎?

我覺得這個現象很矛盾:作為學員,

  • 一方面他們想學“最新的”技術,比如我培訓的內容是ASP.NET MVC(我打算是Framework和core都講的,甚至WebForm都會分出幾個課時說一下),他們一定要問一問:“不是ASP.NET core嗎?”
  • 但另一方面,他們有很強調“基礎”。比如這位同學就把“委托”當成了學習Lambda的基礎,覺得不學委托,Lambda就學不會或者學不好……

你們說,飛哥該腫麽辦?

我覺得,很多同學,錯誤的理解了“基礎”。比如說,委托不是Lambda的基礎,委托只是Lambda“之前的”語法。

我的教學原則:當你理解當前的事物很困難的時候,如果其發展歷史可以幫助你理解,我就會給你講一講它的歷史;否則,沒有太大的必要,甚至有可能會有副作用。比如我剛入行的時候,理解C#裏面的“引用”,很多書籍資料都會提到“指針”——那時候我不知道“指針”啊,我理解“引用”都很困難了,你還給我攪一個“指針”進來,這不是把一個復雜的問題搞得更復雜了麽?但是我在講JavaScript的時候,講了一下這門語言的“黑歷史”,很多同學給我反映:茅塞頓開,原來如此……

差不多了,最後幾句話:

委托的語法很簡單啊,最多十分鐘就學會了。

搞明白為什麽要有委托、什麽時候用委托才是最關鍵的!

要說基礎,這才是基礎;要說本事,這才是本事。

+++++++++++++++++++

慣例廣告,飛哥的線下培訓班“源棧”已經開班了。開業酬賓大優惠,

技術分享圖片

詳見:【開業優惠】一折起!真的一折起啊!!!

不過一折早就被搶了,現在馬上報名,還有六折。

“6年的程序員還不會寫委托”,問題在哪?