寫給一些迷茫的程序員的編程進階之道

Cover

Touch Dream

人最大的缺點就是跷车,好為人師。這次也不例外,我又想做一次別人的老師双饥。

寫給誰

寫給那些學(xué)完一門或幾門語言之后還是只會寫一些A+B之類算法題的,認(rèn)真卻找不到門路想精進的弟断,真正想用技術(shù)做些事情的人咏花。

為什么寫

因為好多我認(rèn)識的,上了大學(xué)開始學(xué)編程阀趴,學(xué)C語言卻到現(xiàn)在做不出來東西的人昏翰,他們也有想法,也有做自己的努力刘急,但是被9年的義務(wù)以及應(yīng)試教育的學(xué)習(xí)方式所影響棚菊,找不到編程真正的門道。 而我寫這篇文章叔汁,無他统求,就是站在能用技術(shù)做點東西的技術(shù)水平角度上,告訴他們据块,編程是怎么樣的码邻,做東西是怎么做的。

一些前提

  1. 編程絕對不是一件輕松的事另假,反而很麻煩像屋,而且要細(xì)心,要耐心浪谴。所以經(jīng)常有人說在配置開發(fā)環(huán)境這個環(huán)節(jié)就淘汰了一半的人开睡,更何況碼半小時代碼debug一天這種事。所以我認(rèn)為這一行能做好苟耻,必須要對技術(shù)抱有很大的熱情篇恒。
  2. 編程也絕對不是一件很難的事⌒渍龋看完上面那條胁艰,你又聽到我這么說,肯定是覺得我有病智蝠。如果說你要建造金字塔的話腾么,是不是覺得這個工程很難,那么我說建造的最后在金字塔頂上放一塊磚頭很簡單杈湾,你可能不會反駁我解虱,那是因為之前放了很多磚頭了。同理漆撞,你說想成為一名程序員殴泰,我當(dāng)然說這不是輕松的事于宙,但是如果量化下來,編程精進的每一步都是放一塊磚頭這樣簡單的事悍汛。所以不要覺得編程這件事多么高大上捞魁,多么難學(xué)。
  3. 實踐是最重要的离咐,甚至編程的思想或知識大部分是從實踐中得到的谱俭。所以這一條的意思是說,教程可以看宵蛀,理論可以背昆著,但是看完不敲,背了敲术陶,不編碼實踐是傻逼的行為宣吱。
  4. 看是書是沒用的,或者說有些書是沒用的,哪些呢,就是那些標(biāo)著“27天”匠襟、“入門”猫态、“基礎(chǔ)”以及類似字樣的書。為什么看這種書沒用兆解,首先書中廢話太多馆铁,這些廢話雖然也是一些細(xì)節(jié),但是聽我的锅睛,這些細(xì)節(jié)后面慢慢再了解埠巨,其次用百度獲取除去細(xì)節(jié)的部分太簡單了,而且編碼都是在電腦上现拒,還有一個原因參考上一條辣垒。哪些書有用呢,就是那些百度不好找的印蔬,高端算法勋桶,數(shù)據(jù)分析方面的書,是值得看的侥猬。雖然我沒看過例驹,但是我是這么認(rèn)為的,也歡迎看過一遍這種書的人來打我的臉退唠。
  5. 用好百度鹃锈。怎么樣叫用好,就是你不知道的一個知識點瞧预,你可以用關(guān)鍵字來找出來屎债,很多人用書仅政,記理論就是因為自己不知道百度什么關(guān)鍵詞能把這個東西找出來。所以扔茅,一定要訓(xùn)練自己歸納關(guān)鍵字的能力已旧,我們可以不知道一個語法的結(jié)構(gòu),但是每當(dāng)要用的時候召娜,可以很快的用百度找出來并且自己寫出來运褪,這才是真正的編程能力。
  6. 這是一件需要自學(xué)的東西玖瘸。我們從小就一直是老師教我們什么秸讹,我們學(xué)什么,所以每當(dāng)我們想學(xué)什么的時候雅倒,第一反應(yīng)就是找一位老師教自己×Ь鳎現(xiàn)在,丟掉這個觀念蔑匣,試著一切靠自己解決劣欢,相信我,一旦你體驗過自己解決問題的快感裁良,就再也擺脫不了這種學(xué)習(xí)方法凿将。
  7. 絕對不要舍不得運行,寫代碼最正確的姿勢就是价脾,對效果/數(shù)據(jù)做一點改動牧抵,跑一下看看結(jié)果,再做一下改動侨把,再跑一下結(jié)果看看犀变。很多東西不知道這樣行不行,是不是這樣寫秋柄,驗證方法就是簡單粗暴:跑一遍看看获枝,讓計算機告訴你這樣到底行不行。而不是你自己去記住每一條华匾。

自上而下的學(xué)習(xí)

之前我們每次學(xué)一個東西的時候映琳,總是從最基礎(chǔ)的東西學(xué)起,比如我們從小開始學(xué)橫豎撇捺然后從簡單的字開始學(xué)起蜘拉。當(dāng)然萨西,這種方式在最開始的時候是有效的,比如很多大學(xué)的編程入門課程是C語言旭旭。但是谎脯,讓我們來思考一個問題:一個母語是漢語的人,如何最快速度的學(xué)會英語持寄,或者說能夠用英語交流源梭?然后我們想一下娱俺,是從英標(biāo)學(xué)起,一個一個單詞記起的人學(xué)的快废麻,還是一個直接去美國生活的人學(xué)的快荠卷?答案肯定是后者。所以我們得出一個結(jié)論烛愧,當(dāng)我們了解一個東西是什么的時候油宜,我們就不應(yīng)該在學(xué)習(xí)下一個類似的東西的時候再從零開始學(xué)習(xí),這是非常浪費時間的怜姿。
** 從而引出一個問題慎冤,當(dāng)我們學(xué)完一門編程語言之后,如何精進或者學(xué)習(xí)其他的技術(shù)沧卢? **
答案是蚁堤,自上而下的去學(xué)習(xí)。當(dāng)一個只會說漢語的人第一次來到美國的時候但狭,首先要能吃上東西吧披诗,所以他要知道如何去點餐。然后他需要解決的問題就是:

  1. 哪里有餐廳
  2. 從家里到餐廳的路怎么走立磁,可能還需要知道過馬路的交通規(guī)則是什么樣的藤巢,我們不需要知道所有的交通規(guī)則,我們只需要知道從家里到餐廳這段路上需要遵守什么交通規(guī)則就好了
  3. 怎么點餐息罗?點餐用英語怎么說?
  4. 帶夠飯錢
    當(dāng)把這個在美國吃東西的問題拆分成這幾個小問題的時候才沧,每個小問題是不是都很好解決迈喉。

在這個例子里,我們沒有去把英語完全掌握再去吃飯温圆,也沒有學(xué)習(xí)了美國的所有規(guī)矩再去吃飯挨摸。
映射到編程中,我學(xué)完了C語言岁歉,然后我想做一個小游戲得运。首先收起自己對做游戲的高端看法,收起自己的恐懼锅移。來拆分一下自己需要解決的問題熔掺,然后百度每個問題的解決方法,如果一個問題比較大非剃,那就把它拆分成多個簡單的問題置逻,然后逐步解決這些問題,就能夠完成自己想要的目標(biāo)了备绽。關(guān)于如何拆分問題券坞,逐步解決問題鬓催,這篇文章可能會有一些幫助 用C++做一個貪吃蛇游戲

在解決如何用C++做一個貪吃蛇小游戲這個問題之前,我沒有做過游戲恨锚,而是先把自己需要實現(xiàn)的功能列出來宇驾。


拆分之后

然后再想如何在編程中實現(xiàn)這個功能,有功能不能實現(xiàn)的時候猴伶,就拆分课舍,拆分不了,就百度蜗顽。

在知乎上看到這樣一句話布卡,我覺得很適合這個場景。當(dāng)你要做一個沒做過的東西的時候雇盖,不需要將所有知識點都學(xué)完再去做忿等,而是在拆分的時候遇到什么,就去學(xué)什么崔挖,一邊學(xué)一邊做贸街。


圖片發(fā)自簡書App

所以,編程能力最終變成了拆分與解決問題的能力狸相,也就是分治的思想薛匪。

所以,當(dāng)我們使用一門完全沒有學(xué)過的編程語言脓鹃,該怎么做逸尖?

  1. 先寫一個Hello World,來了解程序入口是什么
  2. 然后就直接上手做自己要做的東西瘸右,在這其中娇跟,可能會遇到:
    1. 它的數(shù)組是怎么寫的? 百度一下
    2. 它的函數(shù)是怎么寫的太颤? 百度一下
    3. 它的類是怎么寫的苞俘? 百度
    4. 它的文件引用是什么語法? 同上
      總之龄章,一切之前在C語言學(xué)過的東西吃谣,在這個語言中,肯定有同樣的東西存在做裙,就算不存在岗憋,也有替代的解決方案。當(dāng)你需要實現(xiàn)一些復(fù)雜的功能的時候锚贱,就去百度一些這個語言的庫澜驮,其實在熟悉了一門語言之后,大部分的開發(fā)都是依賴庫的惋鸥。所以經(jīng)常去看看語言的一些優(yōu)秀的庫杂穷,百度搜搜悍缠,github上逛逛,收集一些優(yōu)秀的庫資源耐量,在開發(fā)的時候用飞蚓。很多優(yōu)秀的庫都有完善的文檔,從最簡單的例子到復(fù)雜的配置都有列出來廊蜒,所以看文檔是一個很好的習(xí)慣趴拧。一般性在使用庫的時候,都是用一個配置/方法山叮,跑一遍看看這個屬性/方法是干什么用的著榴,最后找到自己需要的。

結(jié)語

因為看到很多人想努力學(xué)好但是卻無法突破屁倔,所以想寫這樣一篇文章脑又。以上都是自己實踐+總結(jié)的也是自己相信有用的,也希望會對你有用锐借。

寫在最后

我是iimT, 一個固執(zhí)的技術(shù)直男问麸。

我的微博 : @_iimT

我的微信公眾號 : iimT   個人博客: www.iimt.me

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钞翔,隨后出現(xiàn)的幾起案子严卖,更是在濱河造成了極大的恐慌,老刑警劉巖布轿,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哮笆,死亡現(xiàn)場離奇詭異,居然都是意外死亡汰扭,警方通過查閱死者的電腦和手機疟呐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來东且,“玉大人,你說我怎么就攤上這事本讥∩河荆” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵拷沸,是天一觀的道長色查。 經(jīng)常有香客問我,道長撞芍,這世上最難降的妖魔是什么秧了? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮序无,結(jié)果婚禮上验毡,老公的妹妹穿的比我還像新娘衡创。我一直安慰自己,他們只是感情好晶通,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布璃氢。 她就那樣靜靜地躺著,像睡著了一般狮辽。 火紅的嫁衣襯著肌膚如雪一也。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天喉脖,我揣著相機與錄音椰苟,去河邊找鬼。 笑死树叽,一個胖子當(dāng)著我的面吹牛舆蝴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菱皆,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼须误,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仇轻?” 一聲冷哼從身側(cè)響起京痢,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎篷店,沒想到半個月后祭椰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡疲陕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年方淤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹄殃。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡携茂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诅岩,到底是詐尸還是另有隱情讳苦,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布吩谦,位于F島的核電站鸳谜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏式廷。R本人自食惡果不足惜咐扭,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝗肪,春花似錦袜爪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至逛绵,卻和暖如春怀各,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背术浪。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工瓢对, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胰苏。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓硕蛹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親硕并。 傳聞我的和親對象是個殘疾皇子法焰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,791評論 25 707
  • ** 編程技能層次**編程技能層次,指的程序員設(shè)計和編寫程序的能力倔毙。這是程序員的根本埃仪。 0段—非程序員 初學(xué)編程者...
    Bobby0322閱讀 1,892評論 2 30
  • 有愛情的地方 荷花笑了 迷迷茫茫的我 幽怨的漫步在茫然的鄉(xiāng)村 夕陽下尋找著一樣迷失的你 漫長寂靜的小路 空曠畏懼的...
    李家長安閱讀 168評論 0 1
  • 感謝老師分享,讓我們不斷的學(xué)習(xí)到各種方法陕赃。 如果更好的成交顧客卵蛉,首先要擺正心態(tài),態(tài)度決定一切么库,技巧和能力決定勝負(fù)傻丝。...
    鄭美美閱讀 891評論 0 0