千萬不要學程式設計!
今天我在CSDN博文中,不講技術,不講技術,不講技術!重要的事情說三遍!我要說的是,千萬別學程式設計,為什麼說“千萬不要學程式設計”呢?我們可以先反過來討論“我們為什麼要學程式設計?”這個問題討論清楚了,你也就明白我為什麼說千萬不要學程式設計了!
學習程式設計應該是這樣的邏輯嗎?
在討論為什要學程式設計這個問題之前,我想各位接觸過程式設計的夥伴們已經接受過程式設計的學前教育了,當然這個開啟你學前教育的人或許是你的老師或許是你的玩伴,或許是各個招牌崗位的工作要求!
是的,正如我們的程式設計學前教育老師所言,現在是人工智慧高速發展的時代,是網路高度發達的時代,每個人的生活或者工作都已經不可避免的要和這些智慧裝置打交道,所以,我們要學習……。可,我還會想問,難道就因為這個我們就要學習程式設計嗎?
我感覺這樣的邏輯還是很有漏洞的,比如我們的生活中每個人都要穿衣服,不會說每個人都要去學習紡織或者服裝設計,我們每個人每日都要吃飯,不會說我們每個人都必須是農名或者廚師。除非……
除非,你真的對程式設計充滿好奇和嚮往,除非你的事業需要程式設計來助你一臂之力,除非你很享受不分晝夜坐在電腦旁一遍敲程式碼一遍燒腦的感覺……但不論怎樣,你想靠程式設計來發大財,那就不是一般的困難了,你要知道本賈尼·斯特勞斯(C++之父)至今還沒有發財,還在寫書賣書呢!蓋茨、喬布斯、扎克伯格他們也不是頂著“程式猿”的頭銜發的財,但不可否認,是程式設計,不,準確的說,應該是計算機和網路這個行業將他們帶入了財富的王國。
如果我們冷靜的想想,我們會發現,各行各業都有成功獲取巨大財富的巨人,他們也沒有去學習程式設計啊!所以,如果你是想通過程式設計來改變自己命運,獲取財富的人,勸你再仔細斟酌,或許你更適合做銷售,做牙醫,做律師,或者做廚師、或者網紅……
學習程式設計真能為求職新增砝碼?
二十年前,不管你是不是名牌大學畢業的,如果你學習過一點C語言,能夠會幾行程式碼,你是一個軟體人才。如果你會用燒錄器擦寫51晶片,那麼你可能就會被當做一個嵌入式軟體開發人員,這和50年代拿小學生當知識分子是一個道理。但現在你僅僅拿著這些東西斷然無法撬開求職的大門的。
所以,如果是本著想學習點程式設計的皮毛知識來為求職新增砝碼的想法,那麼我又會勸你,不要耽誤寶貴的精力了,畢竟“業精於勤“,術業在於專攻,多用點精力把自己的本專業搞精深一些比學點皮毛程式設計強多了!
如今的就業環境已經不是二十年前了,許多領域都越來越專業深入化了,越來越多的中國公司都已經引領行業發展方向了,越優秀的公司對人才的要求就越苛刻,BAT的人才招聘幾乎都是在211和985學校舉行招聘宣講,為的就是找到更專更精的人才。作為理工科專業的同學,如果我們在專業過硬的基礎上,又能有紮實的程式設計技能,誠然可以為求職新增砝碼?但如果你是一個學新聞的或學導遊的,那恐怕在當今社會,別人只能認為你是個野路子,估計會唯恐避之不及吧!
不管哪個培訓學校也好(哪怕是培訓界的明星學校出來的)網路培訓也好,在沒有專業知識做鋪墊的時候,學完畢業所能幹最好的崗位就是傳說中的外包業務程式設計師了,就如流水線上的工人了。但不幸的是,外包業務十多年年每年都在下降,有核心競爭力的企業沒有一個不是自己去研發自己的軟體業務產品。
我們一輩子不能只知道學學學,而不知道問幾個為什麼,所謂學而不思則罔。人的精力總是有限的,學習任何知識和技能都是要消耗時間精力的,時間精力消耗了,那我們所專攻的領域和知識就要被冷落甚至擱淺,所以我們不能總是在學不好學不動的情況下才發問:我們為什麼要學英語,我們為什麼要學數學,我們為什麼要學程式設計?
實際,我覺得我們必須在動手做一件事情之前就要多問問自己,為什麼要做這件事情,我們為什麼要學程式設計呢?
別告訴我你學習程式設計是被綁架!
前面我們談到了,一種是為了“創業發達”,一種是為了求職新增砝碼,除了這兩種,我想最悲慘的就是學理工的同學們了,除了一部分真正喜愛程式設計,將來工作中用到程式設計且能從中受益的同學,其餘的那部分即用不到又無法從中獲益,但還是必須學,我稱他們為“被科學綁架”的學習者。
他們是最悲慘的,我記得我的同學中有百分之九十是這樣,九十年代末上大學的理工學生基本都已
開始學習程式設計了,可二十多年過去了,好多連電腦軟體都不會安裝的至少有八成,更別說他們工作在程式設計第一線以及從程式設計中受益了。他們就是當初被綁架著學習了程式設計,這和許多學中醫學國畫專業的同學被綁架者學英語基本一樣!
學習程式設計也是一種“貪”!貪念害己!
在學習的道路上,上帝給了人兩個最自相矛盾的人性,第一個就是害怕困難,第二個就是貪多求快。所以即使是一開始對程式設計懷揣夢想和憧憬的理工男,即使是自恃才高覺得自己分分鐘可以掌握一門語言的學霸,也有許多倒在了程式設計的各種困難沼澤裡了,有的倒在了起步中,比如幾個C++指標和回撥函式,又或C#的代理和事件機制,更有甚者甚至一個IDE都安裝不好,也就提早投降了;有的倒在編譯原理或者作業系統通訊機制上;有的則葬身於無休止的BUG修復中,一連幾個月為修復百小時通訊中一個位元的誤傳BUG或許你下輩子也不再想碰程式設計了!傳說中的華為騰訊百度淘寶,不給錢也資源往死里加班,那可是真的,否則你的這個BUG擋住了專案的進展,誰來負責!!或者你帶著這個BUG狼狽的辭職,或者往死里加班硬著頭皮解決它!
貪多求快,也許是現在社會快節奏的產物,我想古代應該有,但我感覺當今最嚴重,所以網路上或者市面上那些“七天掌握微控制器”“一個月精通java”的教程滿天飛,誘導者一批貪多貪快的小夥伴進入了程式設計。他們有的說,閒著也是閒著,隨便找點東西弄,總比閒著強,多學一點東西不好嗎?
我想告訴你,程式設計不僅僅是輸出一個hello world字串,不僅僅是在對話方塊上拖入兩個按鈕,顯示兩個MessageBox,更不是是教科書上關於printf的各種用法以及用printf列印各種花樣的星號圖形(什麼楊輝三角)。即使你成功的學會了printf,甚至學會檔案讀寫、學會了呼叫資料庫、學會了TCP/UDP、學會了各種框架,也只能說你會了最表面的一些東西,也只能說你已經學會了依樣畫葫蘆的基本功,這樣的基本功使你具備了在網路上抓程式碼為己所用而已。如果你麼有自己的智慧與語言及IDE的融通,你最多就是一個code copier!
好吧,就算你完全已經達到了能夠拷貝別人的程式碼了,但自己想實現的功能和設計要求如何實現呢?咱們不能總在網上守株待兔的等別人的程式碼來幫自己實現自己的設計需求吧!
如今,但凡有點技術含量的東西,尤其是AI領域的哪個不設計到一些演算法,簡單的則會涉及到高等數學,比如最小二乘數、微分、積分控制、傅立葉、拉氏變換等(如媒體處理),再如神經網路、遺傳演算法的各種變種演算法。當然,這些對於潛心學習理工的同學也非常小兒科,但如果我們只是為了貪多一項所謂的技能和打發無聊就來學程式設計,我想奉勸您,洗洗睡吧,那樣更實在。
至於那些希望求快的,那就更是要使你們失望、敗興甚至懊悔了,上當的感覺是不好受的!程式設計是需要積累的,時間的積累是基礎,知識的積累是更是前提!所以,貪念最終還是會害了自己!
說到這裡,當初由於玩遊戲玩得不錯,突然萌發一夢,想開發一款遊戲的夢幻小夥伴們,你們的程式設計夢是否已在面前轟然倒塌??!!
學習程式設計能使事業“錦上添花”嗎?
我說千萬別學程式設計,說得就是前面幾種,但對於,靠程式設計來使自己的事業“錦上添花”的人群來說,學習程式設計不失為一種選擇。但,我還是想說,術業有專攻,人不是萬能的,如今社會講究分工合作,專注自己的領域。即使是程式設計領域也是不斷的朝這讓程式設計師專業業務實現,讓美工專業前端和UI的方向發展。雖然一直沒有實現,但這方面的努力從未間斷過,如一直以來MVC的提倡和實現之路就是明顯的例子。2010年後慢慢火起來的arduino、樹莓派、伽利略以及後面出現的processing、p5js都企圖讓一些非程式設計專業領域的人進入程式設計領域,儘可能的使程式設計實現簡單化,但這麼多年了,最後能夠將他們用起來的人寥寥無幾,網路上一些有關這些程式設計工具及經驗的分享者仍然是一些老程式設計師。在商家們的簇擁下,老程式設計師裝扮成為非程式設計專業領域的新手,吸引更多的眼球和流浪,為商家的器材和商業計劃買單而已。
回到文章的開頭,我們仔細思考了為什麼要學習程式設計,思考清楚了,自我審視清楚了我屬於哪一類?如果我屬於上述幾類,那我奉勸,“千萬不要學習程式設計”!但~~~~~~~
如果您有機會成為程式設計界的“巨匠大咖”!
當然,如果你還是個小孩子或者長不大的小大人,不知道自己喜歡程式設計,會否愛上程式設計,想來一次"抓週",那也是未嘗不可的,或許一次嘗試就讓中國產生了一個程式設計界的巨匠和藝術家也未可知啊!
如果,您才思敏捷,數學基本功好(應該說喜歡鑽研數學問題有把握學好數學也可),趁著年紀小,早點開始學習程式設計吧。畢竟蓋茨13歲就開始了,傑克多西(Twitter創始人)8歲就開始了。咱們中國的強大,也需要一批這樣從小就表現出程式設計愛好的神童,來實現我們的軟體大國夢、軟體強國夢!