駁 《停止學習框架》

leoythonc發表於2019-03-03

今天下午正在碼程式碼的時候,一個朋友微信給我推了一篇發表在掘金的譯文
停止學習框架

一看標題,就覺得是標題黨,本來只是覺得文章誤人子弟,但是一看閱讀量太大,截止寫這篇文章為止,閱讀量已經達到3K,所以覺得還是有必要專門駁斥一下的。

首先宣告觀點,文章的前半部分是贊同的,但是後半部分完全是不負責任的誤人子弟。

更新

發完文章之後就去寫程式碼了,剛剛發現挺多人對本文有疑問,方老師也在文章上說不認為有什麼好駁的,可能是我一直沒寫文章,詞不達意吧,所以就更新一下我的核心觀點,以免本文被人誤解。

1、我的態度

我對方老師那篇譯文是持有3個觀點的。
一是贊同原文作者的前半部分關於不要只顧著學習框架而丟掉基礎建設。
二是對於書單的反駁。
三是對於方老師最後的觀點的反駁

下面就來詳細說明以上觀點
複製程式碼

2、關於原文作者的前半部分

原文作者前半部分以對話的形式傳達給讀者 `不要只專注框架,重點應該放在基礎建設`
對這個觀點我是持贊成態度的
複製程式碼

3、關於原文作者的書單部分

有一點要宣告的是,我並不是說那些書不好,而是認為不應該放在此處,
或者說不應該全是方法論的書,原文作者說明了問題,並且提出瞭解決方案
但是卻在實際操作中無意的漏掉了最核心的部分,這部分是什麼?是關於如
何提升寫程式碼這一核心競爭力的部分,核心競爭力不是通過讀幾本方法論的
書就可以提高的,需要的是通過大量的實踐以及正確的道路指引,很遺憾,
我的觀點,書單中的書都不夠資格承擔起道路指引這一價值。所以我要反駁的
是書單的書不夠核心,從而導致無意中會使得讀者產生讀幾本方法論的書就
可以提高核心能力的錯覺。
複製程式碼

4、關於反駁方老師的部分

方老師在譯文最後給出了2類人,在我看來,都是不符合實際的,沒有哪一個
真正的程式設計師會只知A框架而不知基礎,也不會有哪一個真正的程式設計師
只知基礎而不知框架。方老師翻譯國外文章的本意是好的,但是最忽略了
文章本身的問題,並且在最後提出了自己的觀點,但是這個觀點卻是有問題的
我不知道方老師是處於什麼想法而提出這個觀點,但是卻容易給讀者造成錯誤
的認知。
複製程式碼

5、其他

有幾個需要闡述的觀點是
1、關於寫文章,我對寫文章的態度是非常嚴謹的,我至今從來沒有在社群中寫過什麼文章,因為我自覺
我的能力還不足夠支撐我給文章的讀者以正確的、有價值的知識輸入。希望社群的大V不要將文章作為賺
點選的手段,而是真正作為技術圈中幫助大家解決問題、提升能力的手段

2、關於原文的態度我覺的還是有必要著重闡述一下核心觀點
原文作者的提出的問題沒有問題,解決問題的方法也沒有問題,但是有問題的是最後解決問題的
書單中缺少了最核心的部分,只有方法論,而沒有正確的,對提升寫程式碼有實際幫助的書,類似SICP、
CSAPP等。真正讀過這些書的讀者會很清楚的認知到,相比SICP,原文書單中的書只能算是課外讀物。
原文書單中書的價值歸納來自於成熟的軟體工程實踐,但是這部分在閱讀SICP的同時會潛移默化的灌輸
到讀者的腦袋中。

3、對方老師的態度
方老師在更新中說 "本文已經翻譯了「正反雙方的觀點」,不知有什麼好駁的哦"
基於這個觀點,我只能產生2種認識,1、方老師沒有看到文章中的不足。
2、方老師因為某種原因刻意不指出這一點。不管是哪種原因,我都不希望社群中此類文章大行其道,
這才是我寫這篇文章的本意。

另外本文單純的就事論事,不希望掀起罵戰,我只是希望方老師類的人能承擔好一個社群大V應該有的責任,
不要只會割韭菜,這也算是對現在社群烏煙瘴氣的環境的一種抨擊,希望社群中傳播的都是有價值的東西,
而不要為了區區點選量將讀者帶到溝裡面,初出茅廬的人很少有能清楚的認知自己的道路的,每一個作者
都有責任避免自己文章坑到讀者
複製程式碼

1、贊成部分

導師:艾德,你在做什麼?
我(自豪地說):我在讀一本關於如何使用 GWT 構建現代 Java 應用的書呢。
導師:你讀它做什麼?
我:作為一名 Java 開發者,我需要跟上潮流。GWT 就是現在的潮流。
導師:你在讀這本書之前還讀過什麼書?
我:我讀了一本關於 Apache Tapestry 的書,那本書有 500 頁。Apache Tapestry 是之前的潮流。
導師:Apache Tapestry 現在還是潮流嗎?
我:不是了,GWT 才是。
導師:你之前從 Tapestry 學到的技能現在還能用嗎?
我:不能用了呀。
導師:Tapestry 能幫助你更好地理解 GWT 嗎?
我:不能。不過兩者都用到了一些設計模式。
導師:那就是設計模式了,設計模式能幫你解決你遇到的問題嗎?
我:可以,而且幫助很大。
導師:新事物來了又走,其實有很多共同點。你應該學你該學的。你應該把你 80% 的學習時間用在學習基礎上,剩下 20% 的時間才是用來學習框架、庫和工具的。
我:哦……只留 20% 的時間學習框架、庫和工具?
導師:是的。你在工作中解決問題時自然就會學會框架、庫和工具。
我:謝謝指導。
導師:你之後還會謝我的。
複製程式碼

這部分的觀點我是贊成的,作為一個程式設計師,專注基礎建設才是正確的。

2、駁書單

我買了一些不會過時的書,並用 80% 的學習時間來讀這些書:

程式設計師修煉之道 The Pragmatic Programmer
程式碼整潔之道 Clean Code
程式設計師的職業素養 The Clean Code
領域驅動設計和實踐 Domain-Driven Design
測試驅動的物件導向軟體開發 Growing Object-Oriented Software, Guided by Tests
持續交付 Continuous Delivery
複製程式碼

這些書,有些的確是可讀的,但是不應該放在這個地方,與框架對應的是什麼?是設計模式嗎?是程式設計師的素養嗎?還是其他各種方法學?

我認為都不是,與之對應的應該是計算機基礎,是什麼?是作業系統、組成原理、資料結構與演算法等基礎。此處可以說是譯文的第一個誤人子弟的地方,明擺著會給讀者灌輸一種不需要學框架,只需要學各種方法學就好了的觀點。其結果可想而知。

另一方面,我認為不需要刻意的去讀書單中的這些書,我們需要學習的是如何去寫程式,但是現在網路上大量充斥著一些垃圾文章,導致大部分程式設計師對如何提升寫程式碼這核心一能力十分迷惑。在提升核心能力面前,我只會推薦SICP、CSAPP等幾本書,而不是各種方法論,這其實應該也算是中國大學的一種特色,不好好教學生寫程式碼,反而去研究一些方法論,我們必須要明白,方法論都是從實際操作中得出來的,不好好提升核心能力,而去學習各種方法論,只會讓自己成為一個空心木頭。

駁譯者觀點

假設你面前有兩個應聘者,一個對框架特別熟,但是對基礎知識一點都不懂;另一個對框架一點都不熟,但是基礎知識特別懂。你會僱傭誰?

小公司僱傭前者,能用就行。大公司僱傭後者,能堪重任。
複製程式碼

這一段,會很明顯的告訴讀者,哪怕是不會基礎,只要會API,學過框架,就會要公司要,哪怕不是大公司。但是我要說的是,這根本就是天方夜譚,作為過來人,可以很明確的告訴你們,如果你對基礎一點都不懂,根本不會有真正的公司要你。哪怕是再小的公司,而且,越是小公司,越會要求你基礎紮實的同時還要熟悉框架。因為:

越是小公司越是珍惜來之不易的業務,不會將一個一點基礎不會的定時炸彈放在身邊,真正有經驗的招聘者都明白,基礎越差,招進來後會需要越多的額外的人手去幫助,得不償失。
複製程式碼

我的觀點

我本來是從不在社群中發聲的,因為一旦發聲,必定會有很多SB攻擊,不管出於什麼原因。

但是今天必須說的是,可能正是因為持有我的這種觀點的人太多,導致現在社群中有太多半桶水都在發文賺點選,給許多初出茅廬的程式設計師灌各種垃圾。前段時間在知乎一直看到一個問題,為什麼靠譜的高階前端這麼難找?原因就是因為社群太多這些垃圾資訊,導致很少有人明確進步的方向,能夠提升成為高階前端。僧多粥少的環境下,當然難找。

另外,對譯者,以及類似譯者的人,給你們一句忠告,希望你們發文的時候不是這麼隨便的寫一些毫無營養甚至誤人子弟的話,不要以為寫文章是一件這麼簡單的事情。

相關文章