search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

IT行業年薪40W,如果沒有能力自學,培訓班根本幫不了你

今天偶然間看到這篇文章覺得作者寫的非常中肯,現在IT行業工資高,一批一批的人都來學,不管有沒有天賦,也不管基礎怎麼樣,一股腦進來,結果呢,大家都懂。分享給大家。

在嗎

寫這篇文章之前我的顧慮非常多,因為它很得罪人而我卻撈不到一點好處。但反過來說我寫這篇文章並不是針對說「達○」這樣的培訓機構,或者「李○○」老師的一些言論,也不是針對說 Ruby China 上最新一些類似的培訓帖。我是說在座的,都是○○。

我要針對的甚至都不是培訓行業,反過來,我認為對於整個軟體行業而言,培訓整件事情就不靠譜。這不是說我心血來潮,我想諸位的公司只要不是沙丁魚罐頭類型的外包公司,對於培訓這件事本身都多少抵觸。至於高端的培訓班,我想你們也有自己的看法,只是有時候不方便說出來。但我最近了解了一些底層勞苦人民悲慘的事實,使我實在看不下去,只能出來批判一番了。

這裡還是要推薦下我自己建的前端學習群:611-482-142,不說別的,進來你必須是愛好前端的,營造一個好的交流環境很重要,不管你是小白還是大牛,小編我都挺歡迎,小白嘛,主動點,勤快點,多問點問題也就學好了,就怕你自己死敲代碼啊,不定期分享乾貨,歡迎初學和進階中的小夥伴。

我們先拋開培訓班的問題,我們先來討論一個經典的面試題,它叫做「FizzBuzz」。輸出數字 1-100,逢 3 的整倍數輸出 Fizz,逢 5 的整倍數輸出 Buzz,又是 3 又是 5 的整倍數輸出 FizzBuzz。那麼稍有常識的人都知道,無論你學習什麼語言,學的水平有多糟糕,這道題都很容易實現。但我們來看一下最常見的一些錯誤是怎麼出現的:

很多培訓班會告訴你這些演算法的基礎知識毫不重要,但事實上嚴格來說這都算不上是一道演算法題,這沒有任何已有的演算法模板來解決,這只是一個最簡單的循環和條件分支語句,有超過 9 成的開發者沒法正確寫對這道題。我認為,這些人壓根就不該也不適合來寫代碼。

令人驚訝的是,這些人並非不能寫業務邏輯,比如說讓他們寫個 CRUD,他們甚至不比你寫得慢。但它們的問題在於連理解文字、理解需求的基本能力都不具備。當你說「整倍數」的時候他們無法想到用餘數,當你先提到 3 和 5 的整倍數時,他們無法想到 15 應該放在他們兩個之前判斷。

對程序最基本的邏輯的考察沒有通過,並不代表他們無法進行日常的開發,就好像數學應用題不會做也不一定會被當掉一樣。他們通常會寫出非常糟糕的抽象,常見的例如在一個社交網路里給每種類型的 UGC 內容單獨建表,然後再為每種類型單獨建回復和點贊的表;將用戶重置密碼和管理員重置密碼完全拆成兩個方法來實現;無法正確判斷自己方法在邊界條件下的情況等等。

培訓班對於培訓這樣的程序員來說是容易的,而且市場上需要這些程序員。各位可能很難相信,今天的互聯網應用大多都沒有什麼魯棒性可言,市面上至少一半的產品都存在高危的漏洞只不過是沒有人想要攻擊他們而已。市場需要這些能用的垃圾來建一個原型、騙一筆投資或者交付一筆外包。

培訓班能教你的歸根結底解決的問題是「如何使用一個工具」,而不是「解決問題的方法」。然而在使用工具這件事上,你無論如何都無法描述清所有的場景,就好像你在通過人為地輸入一些邏輯,來讓汽車學會自動駕駛一樣是不完整的。然而在這層嘴臉上,無論是低端的還是所謂的高端的培訓班都會用一種方式來糊弄過去,那就是「老師教給你的東西是有限的,更重要的是,你從老師這學到了代碼的基本方法,你要上進才能更好學習」。但我們平心而論,老師真的教你們代碼的基本方法了嗎?他帶著你們去學習如何閱讀官方文檔了?還是教你們程序背後的基本原理了?都沒有,他明明在教你語法和一些非常弱智的場景。「解決問題的方法」是學不來的,是你大量日常的工作積累的,所以什麼號稱兩個月掌握別人兩年知識的都是騙子,你以為人家兩年都在那裡划水呢?你以為你兩個月真能幹出來什麼嗎?

承認吧,如果有人真的寫好了代碼,就算他沒報班,自學也不會比現在差。

暗示了,明搶了

我覺得從某種角度來說所謂低端的培訓班和高端的培訓班都是一丘之貉,都在宣傳時給你過高的期望,而畢業后這個期望永遠是落空的。低端的培訓班告訴你培訓后你們就可以月入上萬的工程師,主要面向的是二線和是三線城市學業失敗的人。畢業后通常需要通過偽造簡歷才能進入一家沙丁魚罐頭外包公司,拿著三四千的薪水,成天干著重複而無用的最底層的編碼工作。

而高端的培訓班則面對一線城市的中產階級,宣傳時讓他們認為通過培訓后他們能大大改善現在的生活,甚至利用自己的技術成為創業公司的 CTO,成為自己財務自由的墊腳石。然而畢業后他們能找到的工作也不過如此,根本沒有脫離他們中產階級的生活。

如果單單是這樣,我其實並不會寫今天這篇文章,因為他們至少是無害的。但事實上,低端的培訓班通常伴隨貸款出現,可以先上課後付款,學員因此被賣身;而高端培訓班高昂的學費常常消耗掉一個中產家庭的全部積蓄,使其最少的財富積累化為烏有。可以說,培訓班是坐莊穩賺,而學員們在培訓后大多都變得更拮据和悲慘。這種資本驅動下的套路,就和賣老年保健品的那些灰色產業一樣灰色。他們通過給你看到一個事物的片面使你盲信,從而滿足了他們自己的利益。

放棄吧,如果你沒有能力自學,培訓班根本幫不了你。

黑暗劍,不存在的

如果反過來回憶一下我們自己學習代碼的歷程,你會發現都是類似的,是螺旋上升的,是循序漸進的。你是從先會一些最簡單的邏輯,到開始寫一些能用但不好的代碼,慢慢自己通過閱讀文檔、閱讀別人的源碼來慢慢提升。如果你一上來就來看 Rails 的實現,你肯定根本看不懂嘛。你對於一項技術的理解,也一定是先認為這是黑盒,這是魔法,再到了解其技術細節,最後和人說這東西其實很簡單。

我相信不少 Ruby 程序員都是從 Java 程序員過來的,對於這些程序員來說,他們很容易理解 Ruby 的面向對象的機制,但對於開類和模塊注入的一些方法卻覺得很魔法。而如果你是從一門 FP 語言過來的程序員,比如說 Lisp,那你會對 Ruby 的 Block 機制感到很親切,對於開類和注入覺得很容易理解。相反對於一些面向對象的一些手段感到不是很熟練。

這些都是人類「遷移學習」的能力,你將已知的東西來做類比從而理解新的未知的技術。全棧工程師之所以成為全棧工程師,是因為他一開始精通一部分,隨著不斷學習新技術,不斷將已知的遷移上去,從而對技術棧擁有非常全面的大局的認識。然而一些培訓班甚至能號稱自己能培訓「全棧工程師」,你連基礎都沒有,就相當於同時學習操作十台機器,你想想那可能嗎?所以出來的那個不叫全棧工程師,那個叫全棧 Hello World 工程師。你可以在簡歷上寫上:精通各種語言 Hello World 寫法、掌握各種資料庫的安裝、熟練各種操作系統開機。你其實什麼都不會。

寫代碼一方面需要靈性,需要實踐經驗的積累,另一方面需要打好基礎。這些東西本應該是由大學部教育提供給你的,但不得不說國內大多數大學的大學部教育也沒有提供合適的基礎教育,而培訓班在拮据的時間內也不可能教你這些基礎教育的部分。舉例來說,如何計算一段程序的時間複雜度、空間複雜度,如何理解棧、隊列等數據結構,了解網路協議的基礎。這些東西就像是 RTS 或者 MOBA 遊戲的經濟一樣,當前的經濟並不會直接影響到當前的局勢,但發展一段時間之後,特別是後期和大後期就會立刻成為你的局限之處。如果你連時間複雜度都不會算,你怎麼知道兩段程序誰的性能更好,又是甚至性能差到根本不能工作的時候你又去求助誰。

醒醒吧,寫代碼沒有捷徑,如果你希望在這條路上繼續走下去,你必須打好基礎,不斷學習新的知識才有可能。

RUA

有位大佬曾告誡我,如果不是觸及到自己的利益,那麼就不要去斷別人的財路。但也就是這樣,業界和學界都充斥著一股藥丸的氣息。所有人做教育都是想著幫你賣出去,而你自己學習的目的也是把自己賣出去。所以大學連「SICP」都不上了,培訓班才越來越猖狂;所以越來越多的人相信基礎知識無用,認為存在讓自己成功的捷徑;所以加班昏天黑,干不到 35 歲就被退休了;所以發的 paper 申請的專利都是為了完成指標;所以學術上造假,商業上抄襲,技術上停滯;所以你只有跑不起來的代碼,快不起來的程序,加不上的薪資,屆不到的戀。

希望所有在這行業里奮鬥的同學們能沉下心多鑽研,不要相信有所謂的捷徑。

最後再說2點建議吧:

  • 千萬不要嘗試著速成javascript,少看點十天,21天速成任何編程類的書,除了浪費時間,也會讓人覺得你不夠靠譜,至少我本人是非常反感看這類書籍的人。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦