作者:ninechapter
鏈接:https://www.zhihu.com/question/27574436/answer/152417898
當(dāng)你提出這個(gè)問題的時(shí)候津滞,總有人會(huì)告訴你,你應(yīng)該學(xué)習(xí)這個(gè)灼伤,學(xué)習(xí)那個(gè)触徐,亦或者是刷題根本沒用,你應(yīng)該去做項(xiàng)目狐赡,亦或者你看這個(gè)視頻沒什么卵用撞鹉,你應(yīng)該自己去實(shí)現(xiàn)一遍,亦或者是你應(yīng)該使用xxx框架,xxx語(yǔ)言鸟雏,做一個(gè)xxx系統(tǒng)享郊,這樣你才能學(xué)到很多。我想說這些跟放屁沒什么兩樣孝鹊。對(duì)于一個(gè)編程新手炊琉,很多事情都是陌生的,即使拿到一個(gè)文檔惶室,也不知道如何去使用它們温自。因?yàn)楦菊也坏角腥朦c(diǎn),找出我該如何入手皇钞,萬(wàn)事開頭難悼泌。
這個(gè)問題可以做如下分解,對(duì)象是編程新手夹界,他要提高馆里,提高的是編程能力,首先我們要知道什么是編程能力可柿。能把程序?qū)懗鰜砭褪蔷幊棠芰Ω吡嗣答伲珹CM總冠軍選手編程能力就高么,他們高复斥,高在解決腦經(jīng)急轉(zhuǎn)彎問題的能力上营密,這是遺憾的,當(dāng)然什么是編程能力這本身就是一個(gè)很大的問題目锭,這里不做過多展開评汰。
編程本質(zhì)就是一門技術(shù),一門手藝活痢虹,最好有老師傅帶著你被去,告訴你這部分你可以先完成,那部分你也可以先入手奖唯,一點(diǎn)一點(diǎn)的積累惨缆,從小部分做到整體,孰能生巧游刃有余丰捷。
但是很不幸坯墨,你的生活中不會(huì)有這樣的老師傅,你需要靠自己尋找機(jī)會(huì)瓢阴,我把這樣的尋找機(jī)會(huì)的步驟分為三步:
- 1 瘋狂的積累代碼量畅蹂,瘋狂的刷題,瘋狂的積攢你的自信心荣恐。
- 2 尋找實(shí)習(xí),找到自己感興趣的地方,跟著別人做叠穆,了解工業(yè)屆到底在使用什么技術(shù)少漆。
- 3 當(dāng)你實(shí)習(xí)結(jié)束的時(shí)候,你將不會(huì)再對(duì)那些名詞感到陌生硼被,你有了一定的經(jīng)驗(yàn)示损,你可以嘗試獨(dú)立的嘗試用一些開源框架做一些簡(jiǎn)單的project。
具體該如何做呢嚷硫?
首先
當(dāng)你還是一個(gè)新手的時(shí)候检访,你需要瘋狂的積累你的代碼量,你可以從基本的問題出發(fā)仔掸,做一些簡(jiǎn)單的問題脆贵,怎么輸入數(shù)據(jù),怎么輸出數(shù)據(jù)起暮,然后熟悉各種數(shù)據(jù)結(jié)構(gòu)卖氨,各種常見算法,瘋狂的刷題负懦,比如 http://www.lintcode.com 就是一個(gè)很不錯(cuò)的刷題網(wǎng)站筒捺,不會(huì)怎么辦!看答案纸厉,了解怎么寫系吭,然后自己實(shí)現(xiàn)一遍。你可以先從easy難度的問題做起颗品,每一個(gè)程序也就20-40行左右肯尺,甚至你可以一旦AC,反復(fù)提交抛猫,以增強(qiáng)自信心蟆盹,雖然這只是一個(gè)玩笑,但是它可以讓你提高你對(duì)編程的自信闺金,對(duì)編程的喜愛逾滥,當(dāng)你有自信的時(shí)候,你才能真正的把一件事情做好败匹。當(dāng)你反復(fù)解決一個(gè)又一個(gè)的問題的時(shí)候寨昙,你要告訴自己我是個(gè)天生的編程者!然后你就可以挑戰(zhàn)更高難度的問題掀亩,當(dāng)你積累到10W以上的代碼量的時(shí)候舔哪,你會(huì)發(fā)現(xiàn)你會(huì)有一個(gè)質(zhì)變。一切將變的順手槽棍。當(dāng)以前要想半天的語(yǔ)句捉蚤,現(xiàn)在信手拈來抬驴。恭喜你跨出了很重要的一步。
其次
你該去找實(shí)習(xí)了缆巧。當(dāng)你有了第一步作為鋪墊以后布持,你應(yīng)該去業(yè)界提高你的編程能力,這個(gè)很重陕悬。什么是編程能力题暖,用程序去解決真正的問題,你的程序?qū)懙母屓四茏x懂捉超,這是編程能力胧卤,你的程序高效可維護(hù),這是編程能力拼岳,你的程序被review的次數(shù)很少枝誊,質(zhì)量很高,這是編程能力裂问,你能快速理解一個(gè)小項(xiàng)目侧啼,小模塊在做什么,怎么做的堪簿,這也是編程能力痊乾。所以你應(yīng)該去公司,有mentor指導(dǎo)你的情況下椭更,去做一些事情哪审,參與到團(tuán)隊(duì)中去。同時(shí)實(shí)習(xí)生的面試門檻比Full time會(huì)低很多虑瀑,只要你把第一步做好了湿滓,好好的準(zhǔn)備面試,拿到一個(gè)不錯(cuò)的實(shí)習(xí)也問題不大(實(shí)習(xí)生也更容易拿到return off)舌狗。
最后
當(dāng)你實(shí)習(xí)結(jié)束以后叽奥,做一下總結(jié),業(yè)界到底在干什么痛侍,業(yè)界使用的技術(shù)到底有哪些朝氓,他們平時(shí)的編程工具等等這些都是值得你學(xué)習(xí)的地方,你可以用你學(xué)到東西嘗試著去做一些簡(jiǎn)單的project主届。你會(huì)發(fā)現(xiàn)原來毫無(wú)頭緒的事情赵哲,慢慢變得清晰起來。瘋狂的訓(xùn)練君丁,超強(qiáng)的自信心枫夺,去工業(yè)界實(shí)習(xí)一下,你就會(huì)明白我要什么绘闷,我要為了我所想要的我該怎么做橡庞。
-----補(bǔ)充-----
有人問在哪里看答案较坛,這里給大家提供一個(gè)看答案的網(wǎng)站,是我覺得比較高質(zhì)量的答案:LeetCode / LintCode 答案查詢
-----3月21日補(bǔ)充-----
看了評(píng)論里有人說毙死,我在學(xué)校老師那里按部就班學(xué)不到什么燎潮。我想多說幾句喻鳄,雖然說大學(xué)教育和社會(huì)有一些脫節(jié)扼倘,但是并不是所有都是無(wú)用的。首先談一下為什么會(huì)脫節(jié)除呵,沒有一個(gè)大學(xué)的校長(zhǎng)會(huì)站起來說我們?cè)O(shè)置計(jì)算機(jī)相關(guān)專業(yè)就是為社會(huì)提供碼農(nóng)的再菊。大部分學(xué)校的目的都是培養(yǎng)計(jì)算機(jī)科學(xué)家的,只有培養(yǎng)殘的颜曾,成為了碼農(nóng)纠拔。當(dāng)然這就玩笑的成分,但是的確真正有用的可能20%都不到泛豪,就是因?yàn)樯傥覀兙涂梢苑穸闯砘澹幸恍┱n是很重要的,它們奠定了你的計(jì)算機(jī)素養(yǎng)诡曙,那些課你不用很深入的學(xué)習(xí)臀叙,而是擴(kuò)展你的廣度。雖然你現(xiàn)在覺得無(wú)用价卤,但是不要否定它們的價(jià)值劝萤。
說說另一個(gè)問題“我需要刷題么”,如果一個(gè)有科研前途的人慎璧,我會(huì)毫不猶豫的說床嫌,停下來,搞你的科研去胸私,不要在刷題上浪費(fèi)你的時(shí)間厌处。但是當(dāng)你問這個(gè)問題的時(shí)候,我會(huì)毫不猶豫的告訴你岁疼,你不適合做科研阔涉,你在科研的道路上注定成為一個(gè)次品,何不早點(diǎn)做好成為碼農(nóng)的準(zhǔn)備呢五续?刷題不是目的洒敏,刷題是一種手段,為了積累代碼量疙驾, 為了找到實(shí)習(xí)凶伙,為了面試,為了走向業(yè)界它碎,為了拿到好的offer函荣,為了打開成為碼農(nóng)的大門显押,它是簡(jiǎn)單的,它是適合大部分人的傻挂,它適合成為碼農(nóng)的你乘碑。如果你還表示懷疑的話,你可以去了解一下金拒,當(dāng)今國(guó)內(nèi)外各大IT互聯(lián)網(wǎng)公司是如何面試的兽肤,我相信你會(huì)有一個(gè)明確的答案。