新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > 「代碼家」的學(xué)習(xí)過(guò)程和學(xué)習(xí)經(jīng)驗(yàn)分享

「代碼家」的學(xué)習(xí)過(guò)程和學(xué)習(xí)經(jīng)驗(yàn)分享

作者: 時(shí)間:2017-03-13 來(lái)源:網(wǎng)絡(luò) 收藏

  每天,都會(huì)有人在微博上私信我,問(wèn)我關(guān)于學(xué)習(xí)和成長(zhǎng)的問(wèn)題。這種問(wèn)題我一般都不會(huì)回復(fù)某個(gè)j,畢竟每個(gè)人的情況不一樣,每個(gè)人對(duì)待事物的性格也不一樣,我不能夸下海口的說(shuō),你看某本書(shū)幾個(gè)月就能如何如何,我能做的多數(shù)時(shí)候只是鼓勵(lì)鼓勵(lì),其次我也從不認(rèn)為我已經(jīng)成長(zhǎng)到一個(gè)多高的境界上,讓我去給別人做指導(dǎo),我還是當(dāng)之有愧的。

本文引用地址:http://www.butianyuan.cn/article/201703/345136.htm

  但是,有時(shí)候看到大家私信我的時(shí)候,確實(shí)是處于一種很痛苦或是需要幫助的狀態(tài)上。

  最近晚上有空,就想寫(xiě)寫(xiě)自己從第一次接觸程序,到一路顛簸學(xué)到今天的一些故事和經(jīng)驗(yàn),希望對(duì)大家有所幫助。

  學(xué)習(xí)的三個(gè)階段

  第一階段:消費(fèi)者階段

  我在快上高中的時(shí)候,開(kāi)始接觸的程序。那會(huì)兒家里有一本 Visual Basic 的書(shū),30 多頁(yè)左右,也是家里唯一一本計(jì)算機(jī)類書(shū)籍,是我哥學(xué)校發(fā)的一本課外書(shū),他對(duì)計(jì)算機(jī)貌似沒(méi)有什么興趣,就一直堆在家里,直到無(wú)意中被我翻到。

  書(shū)里的程序格外的簡(jiǎn)單,幾行簡(jiǎn)單的英語(yǔ)代碼,就能讓計(jì)算機(jī)彈出一個(gè)對(duì)話框,當(dāng)時(shí)看到簡(jiǎn)直神奇極了!躍躍欲試的在老媽店里的電腦上一步一步的敲下代碼,彈出一個(gè)簡(jiǎn)單的對(duì)話框,那一瞬間,感覺(jué)像是推開(kāi)了新世界的大門,從此一發(fā)不可收拾。

  實(shí)踐完 VB 后,又在小書(shū)攤,看到了一本 《黑客 X 檔案》,看著各路高深的入侵,木馬,盜號(hào),試圖努力學(xué)會(huì)這些技能,然后去跟朋友們炫耀,但一直都無(wú)法入門。因?yàn)樾枰嘤?jì)算機(jī)的基礎(chǔ)知識(shí)了,不是寫(xiě)個(gè)彈框,或者計(jì)算器水平的人能搞定的。

  那會(huì)兒家里也沒(méi)有懂電腦的,也沒(méi)有人可以問(wèn),又處在小城市,連個(gè)培訓(xùn)班都沒(méi)有。

  隨即,開(kāi)始漫漫買書(shū)求學(xué)路。

  一旦開(kāi)始買書(shū),就進(jìn)入了學(xué)習(xí)的第一個(gè)階段:消費(fèi)者階段。當(dāng)個(gè)消費(fèi)者其實(shí)是個(gè)挺輕松的事情,對(duì)著書(shū)本照貓畫(huà)虎,一會(huì)兒就能跑起來(lái)一個(gè)看著很有趣的程序。

  那會(huì)兒,瘋狂的買各種書(shū),但是由于周圍沒(méi)有人指導(dǎo),買了很多類似 21 天 xxx 系列的書(shū),那會(huì)兒真的有這種書(shū),我還抱有幻想??覺(jué)得 21 天后我就??

  現(xiàn)在想想國(guó)內(nèi)的圖書(shū)市場(chǎng)簡(jiǎn)直惡劣到一定程度。很多高校,教師升職評(píng)比需要考察發(fā)表書(shū)籍情況,導(dǎo)致國(guó)內(nèi)一大批爛書(shū)其實(shí)都是高校老師發(fā)出來(lái)的。我現(xiàn)在依然認(rèn)為國(guó)內(nèi) 95% 的技術(shù)類書(shū)籍是不值得買的,除了像侯杰老師這種文筆很好的技術(shù)人以外。

  很多作者總是做不到『以讀者能理解的順序,而非自己認(rèn)為的順序』寫(xiě)文章,坑害了不少對(duì)計(jì)算機(jī)有興趣的同學(xué)。我一直很崇拜侯杰老師的另一個(gè)原因是侯杰老師的書(shū),總是能把你最想問(wèn)的,如同庖丁解牛,深入淺出的解答出來(lái)。就如同 MFC 框架(很早前的一個(gè) Windows SDK 框架,現(xiàn)在已經(jīng)用的很少了),MFC 是很復(fù)雜的一個(gè)框架,所有初學(xué)的人,都會(huì)問(wèn)一樣的問(wèn)題:"這玩意兒是怎么工作起來(lái)的?!",但所有國(guó)產(chǎn)的 Visual C++ 的書(shū),都避而不答,讓你照貓畫(huà)虎的做,就能彈出一個(gè)窗體。當(dāng)初國(guó)內(nèi)只有 《深入淺出 MFC》一書(shū),講明白了背后的一切。

  學(xué)完一些基礎(chǔ)知識(shí)后,就進(jìn)入了學(xué)習(xí)的第二個(gè)階段 實(shí)踐者階段 階段。所謂實(shí)踐者,就是開(kāi)始用自己所學(xué),去開(kāi)發(fā)程序,成為一名專業(yè)或非專業(yè)的碼農(nóng),很多人的職業(yè)生涯,也就停留在了這個(gè)階段,過(guò)上了小富即安的程序員的日子。

  我從消費(fèi)者階段過(guò)度到實(shí)踐者階段大概用了三四年的時(shí)間,其實(shí)已經(jīng)挺長(zhǎng)的了。我一直都認(rèn)為我是一只笨鳥(niǎo),無(wú)意中起飛,卻飛了很久的那種。

  第二階段:實(shí)踐者階段

  我真正開(kāi)始實(shí)踐的,是在本科學(xué)校做的幾個(gè)網(wǎng)站。

  第一個(gè)是個(gè)學(xué)校的匿名聊天系統(tǒng),就是所有人都可以登錄學(xué)校的站點(diǎn),然后會(huì)匿名匹配到一個(gè)異性,開(kāi)始聊天,當(dāng)時(shí)用的 ASP.NET 做的開(kāi)發(fā),配合 ajax + jquery,但由于當(dāng)時(shí)技術(shù)太差,導(dǎo)致很多人聊著聊著就斷線了,導(dǎo)致小產(chǎn)品不告而終。

  第二個(gè)是給我們信息學(xué)院開(kāi)發(fā)的一個(gè)官網(wǎng),用的 PHP。在做這個(gè)網(wǎng)站的同時(shí),我選修了一門叫《網(wǎng)絡(luò)安全》的課程,這門課的老師叫陳路,我曾當(dāng)著老師的面兒,夸下??冢议_(kāi)發(fā)的官網(wǎng),堅(jiān)不可摧...(大概這個(gè)意思)陳老師知道了我做的網(wǎng)站,隨即下達(dá)一個(gè)作業(yè):“誰(shuí)能攻陷我們的官網(wǎng),一個(gè)漏洞加五分...”,后來(lái),咳咳?網(wǎng)站數(shù)據(jù)沒(méi)有了??有個(gè)同學(xué)用一個(gè)很通用的掃描工具,在他也不知道發(fā)生了什么的情況下,工具把網(wǎng)站內(nèi)容都刪除了??恩,我犯了個(gè)超低級(jí)的錯(cuò)誤??GET 請(qǐng)求可以刪除數(shù)據(jù),外加身份認(rèn)證代碼有誤??

  幸好,查看 Apache 日志的時(shí)候,發(fā)現(xiàn)刪除請(qǐng)求到來(lái)的前幾分鐘,Google 爬蟲(chóng)來(lái)過(guò)(那會(huì)兒 Google 還能用),隨即馬上去 Google 的緩存里找回了所有的數(shù)據(jù)。

  后來(lái)陳路老師被學(xué)校批斗了一頓,批斗的罪名是『鼓勵(lì)學(xué)生攻擊校園網(wǎng)絡(luò)』,我其實(shí)是極力跟學(xué)校執(zhí)事說(shuō)明這個(gè)錯(cuò)誤是我犯的,陳老師做的并沒(méi)有錯(cuò),而且我到現(xiàn)在還是很喜歡陳老師這種教學(xué)方法,畢竟實(shí)踐出真知。

  可能現(xiàn)在陳老師在教《網(wǎng)絡(luò)安全》課程的時(shí)候,會(huì)以“當(dāng)年有個(gè)學(xué)生....”作為開(kāi)頭,有時(shí)候想想也挺有意思的。

  再后來(lái)我花了很多實(shí)踐學(xué)習(xí) Web 安全相關(guān)的知識(shí)。寫(xiě)各種 Web 程序時(shí),都會(huì)最大程度的考慮安全問(wèn)題。

  網(wǎng)站攻陷后沒(méi)多久,Android 出來(lái)了,我買了第一部 Android 手機(jī),然后自己照著官方文檔開(kāi)始學(xué) Android,動(dòng)力的源頭,是我聽(tīng)說(shuō)寫(xiě) App 能賺錢。賺錢真是學(xué)技術(shù)的很強(qiáng)的動(dòng)力,之前寫(xiě)網(wǎng)站零零星星的賺了六七千塊錢,作為同學(xué)里的小土豪,我又把目光轉(zhuǎn)到了剛出來(lái)沒(méi)多久的 Android 上。

  當(dāng)時(shí)先定了一個(gè)目標(biāo),寫(xiě)一個(gè)圖片類 App,打算叫『無(wú)盡畫(huà)廊』。因?yàn)楹芟矚g WeHeartIt(http://weheartit.com/) 這個(gè)小眾文藝圖片網(wǎng)站。隨即計(jì)劃利用正則解析圖片地址,然后再把圖片呈現(xiàn)在 App 上。那會(huì)兒 Java 和 Android 完全零基礎(chǔ)。

  自己在入門 Android 的時(shí)候真的超級(jí)拼。早上 6 點(diǎn)起床,然后開(kāi)始悄悄下床(不能吵著舍友),打開(kāi)電腦開(kāi)始研究加開(kāi)發(fā)。折騰到早上 7點(diǎn)半左右就和舍友一起去吃早飯,然后上課。中午回來(lái)也不午休,開(kāi)發(fā)到快上課,晚上基本都會(huì)熬到 12 點(diǎn)左右。持續(xù)了 1 個(gè)月左右,終于從零基礎(chǔ)到開(kāi)發(fā)出一個(gè)粗糙的 1.0 版本,發(fā)到了國(guó)內(nèi)的幾個(gè) App 市場(chǎng)。反饋不是很多,但是都挺積極,隨即決定開(kāi)發(fā) 2.0 版本,還加入了廣告積分墻。就這樣超拼的持續(xù)了 3 個(gè)月左右?,F(xiàn)在網(wǎng)上能看到的基本都是 2.0 版本。我從這個(gè) App 里,也賺到了一些廣告費(fèi),大概幾百塊。但是因?yàn)閺V告服務(wù)商倒閉了??錢到現(xiàn)在還沒(méi)取出來(lái)??心痛??持續(xù)更新那個(gè) App 到快畢業(yè)的時(shí)候,選擇了保送到北師大。

  暑假的時(shí)候去上海一家小公司去實(shí)習(xí)了,在實(shí)習(xí)的這家小公司,我做了一個(gè)到現(xiàn)在來(lái)看依然很屌的功能?,F(xiàn)在來(lái)看是一個(gè)相當(dāng)不錯(cuò)的 Growth Hacker 的一個(gè)案例(那會(huì)兒可沒(méi)有增長(zhǎng)黑客這個(gè)概念)。

  實(shí)習(xí)所在的公司,是做類似小米盒子的東西。當(dāng)時(shí)的盒子,最重要的當(dāng)屬內(nèi)容,版權(quán)還處于蠻荒時(shí)代的時(shí)候,大家紛紛解析優(yōu)酷、土豆這類的網(wǎng)站,以最少的成本,盜用優(yōu)酷的帶寬。簡(jiǎn)單點(diǎn)而來(lái)說(shuō),就是做視頻聚合。視頻聚合最麻煩的就是提取視頻的真實(shí)文件地址,這樣能為所有的創(chuàng)業(yè)公司免去版權(quán)糾紛,同時(shí)解決帶寬費(fèi)用問(wèn)題。

  我去那家公司實(shí)習(xí)的主要內(nèi)容,就是用 Node 語(yǔ)言做視頻地址解析,費(fèi)勁功夫搞定了幾乎所有的視頻網(wǎng)站,各種黑科技都用上了,抓包,逆向,Headless Browser 等等。搞定所有網(wǎng)站后,也算勉強(qiáng)跟競(jìng)爭(zhēng)對(duì)手站在同一起跑線。實(shí)習(xí)第二周的時(shí)候,已經(jīng)有些沒(méi)事兒干了,就在這會(huì)兒瘋狂的想法出現(xiàn)了!

  可能很多人還記得當(dāng)年偉大的迅雷云播,解救了不知道多少個(gè)少男寂寞的夜。我們瘋狂的想法就是要讓我們的小盒子,能夠流暢的播放用戶從電腦上推送的任意種子文件,無(wú)需等待。在那會(huì)兒 TV 上,這種功能簡(jiǎn)直就是創(chuàng)舉!

  想法出來(lái)后,我抗下大旗,開(kāi)始用代碼模擬迅雷云播的全套流程。開(kāi)發(fā)的過(guò)程十分艱難,得從不同平臺(tái)的迅雷上抓包,尋找蛛絲馬跡。優(yōu)先從 Web 端模擬登陸和提交種子文件,這些都相對(duì)容易一些,最難的是如何提取到視頻的真實(shí)地址?;舜蟾乓恢軙r(shí)間攻陷了所有的流程,然后公司買了 10 幾個(gè)迅雷會(huì)員,又和各路 BT 網(wǎng)站開(kāi)始合作,開(kāi)啟了浩浩蕩蕩的用戶增長(zhǎng)之旅。具體增長(zhǎng)了多少新用戶,其實(shí)我心里沒(méi)有數(shù),但是看見(jiàn)旁邊的小朋友,每天都在加服務(wù)器,優(yōu)化 Socket 連接數(shù),我猜那一周得新增了5-10萬(wàn)用戶,更為壯觀的是每到夜里,所有的迅雷賬號(hào)里就瞬間塞滿各種不可描述的日本電影,全部清空后,又被瞬間塞滿。以至于后來(lái),實(shí)習(xí)到第十七八天的時(shí)候,我的老板和 CTO 喊我過(guò)去,直接送了我 20 萬(wàn)期權(quán),那感覺(jué)也是蠻爽的。后來(lái)微博上,這個(gè)功能也是火了一陣子,不過(guò)很快就掛了,起因是有用戶在微博上 at 了小米電視和迅雷,讓他們跟我們學(xué)著點(diǎn)兒??然后,不超過(guò)半小時(shí)??服務(wù)就掛掉了??不過(guò)掛掉沒(méi)幾天我就去帝都準(zhǔn)備研究生報(bào)名了。

  還有一件很爽的事,就是我上了研究生后的半年里,那家公司一直給我支付著工資??每個(gè)月輕輕松松就有幾千塊錢零花錢??再后來(lái)的后來(lái),那家公司倒閉了??

  快從上海實(shí)習(xí)結(jié)束的時(shí)候(實(shí)習(xí)一個(gè)月),我又認(rèn)識(shí)了少楠,加入了 AT!組織。AT! 組織是一個(gè)分享優(yōu)質(zhì)原創(chuàng)動(dòng)畫(huà)的小團(tuán)隊(duì),從此我從一枚野生開(kāi)發(fā)正式晉升為一枚正規(guī)軍。少楠是一枚非常優(yōu)秀的產(chǎn)品經(jīng)理兼設(shè)計(jì)師,跟著他學(xué)到了很多產(chǎn)品的知識(shí)和團(tuán)隊(duì)協(xié)作的技巧,也讓我最后真的開(kāi)發(fā)出了近百萬(wàn)用戶的 App。AT!組織到現(xiàn)在都是我愛(ài)的組織,大家雖然從事不同行業(yè),但就跟親人一樣。每次聚會(huì)都是一年一度最嗨皮的日子,都是我經(jīng)歷過(guò)最真誠(chéng)的聊天。從后來(lái)做了 AnimeTaste 再到 EverMemo,我第一感覺(jué)到團(tuán)隊(duì)的重要性,第一次見(jiàn)識(shí)到優(yōu)秀的設(shè)計(jì)師和 iOS 開(kāi)發(fā)者。

  以上的諸多經(jīng)歷也為自己創(chuàng)業(yè)埋下了很多伏筆。這些都是我的實(shí)踐者階段,漫長(zhǎng)的三四年。

  第三階段:創(chuàng)造者階段

  實(shí)踐者階段之后,自己開(kāi)始嘗試創(chuàng)造。也是我認(rèn)為學(xué)習(xí)的第三個(gè)階段 — 創(chuàng)造者階段,這個(gè)階段是沒(méi)有結(jié)束節(jié)點(diǎn),就一直這么存在著。

  我大致是研究生一年級(jí)的時(shí)候開(kāi)始摸到創(chuàng)造者階段的門梁,大三的時(shí)候接觸的 ,感覺(jué)是我學(xué)程序來(lái),打開(kāi)的第二個(gè)世界的大門(第一個(gè),算是那個(gè) VB 程序的彈框)。接觸到  讓我第一次開(kāi)始學(xué)習(xí)和研究腳本語(yǔ)言( Python,Node,PhantomJS 等等),第一次開(kāi)始接觸真正的生產(chǎn)工具(類似 Less,Sass 等等), 簡(jiǎn)直是求學(xué)者的寶庫(kù),你會(huì)很期待明天的 Trending 榜單上會(huì)是什么新東西冒了出來(lái)。

  那會(huì)兒在研究生階段,每個(gè)月有了公司發(fā)的幾千塊錢,也開(kāi)始入手了人生第一臺(tái) iPhone,一臺(tái)土豪金版的 iPhone5s,買 App 太貴便折騰起了越獄(現(xiàn)在都是買 App 了)。裝了一款越獄后的 Store(我忘了叫什么了),那個(gè) Store,在下載一個(gè) App 的時(shí)候,有個(gè)超漂亮的進(jìn)度條,我每次都會(huì)認(rèn)真的的盯著那個(gè)進(jìn)度條,一邊看,一邊感嘆,一邊也暗許自己也要在 Android 上實(shí)現(xiàn)一套,這也是我開(kāi)始第一次開(kāi)發(fā)自定義組件的初衷,也是 NumberProgressBar 誕生的最初原因。

  啃下第一個(gè)自定義組件,對(duì)很多人來(lái)說(shuō)都是很痛苦的,我也一樣,那會(huì)兒的 Android 組件少的可憐,不斷的看文檔,看源碼,讀別人的代碼,試圖搞清楚更多更底層的東西,不斷的嘗試運(yùn)行,折騰了一周左右(每天超過(guò) 10 小時(shí)投入),終于做出來(lái)了,照貓畫(huà)虎的寫(xiě)好文檔,做好測(cè)試,小心翼翼的發(fā)布到 GitHub,然后發(fā)表到當(dāng)時(shí)為數(shù)不多的 GitHub Android 分享社群里。

  再到后來(lái)的幾個(gè)月,又陸續(xù)寫(xiě)了一些其他的庫(kù),發(fā)到 GitHub 上,其實(shí)我根本沒(méi)想到會(huì)有那么多人去 Star,可能跟下手比較早有關(guān),恩。

  創(chuàng)造者階段,就是努力創(chuàng)造那些沒(méi)有的,源自你腦海里的東西,而不是別人安排給你的。努力做到讓更多的人用到,可以是一個(gè) App,可以是一個(gè)幫助人們提高效率的 Chrome 插件,也可以是一個(gè)簡(jiǎn)單的組件。創(chuàng)造是最挑戰(zhàn)你對(duì)一個(gè)行業(yè)的熱愛(ài)程度的。

  我從來(lái)不反對(duì)重復(fù)發(fā)明輪子。每一個(gè)輪子即便有一些小的改進(jìn),都是適應(yīng)自然法則,優(yōu)勝劣汰的。

  就我身邊而言,我最崇拜的創(chuàng)造者是尤小右,將一個(gè)小的 Framework,一點(diǎn)點(diǎn)的做大,再到做出國(guó)際影響力,真是個(gè)不得了的事情,也是很多技術(shù)人夢(mèng)寐以求的事情。

  總而言之:如果你忽然覺(jué)得自己這幾年一直處在一個(gè)很穩(wěn)定的狀態(tài)中,覺(jué)得自己沒(méi)有提升,那你得想想是不是我卡在了某個(gè)階段,一直無(wú)法突破,你是否需要做些什么,突破到下一階段去。隨后的文章我也總結(jié)了一些誤區(qū)和突破方法。

  被誤以為的學(xué)習(xí)

  當(dāng)年,有一本書(shū)刊特別流行,叫《故事會(huì)》?!豆适聲?huì)》后來(lái)銷聲匿跡了,在我眼里,取代《故事會(huì)》的是知乎。對(duì),就是那個(gè)知乎。

  我其實(shí)一直很反對(duì)一個(gè)論調(diào):“上知乎,學(xué)知識(shí)”。醒醒吧。知乎明顯就是現(xiàn)代版的故事會(huì)好嗎?!我不否認(rèn)知乎存在有價(jià)值的知識(shí),但,根本不值得你花那么多時(shí)間,去發(fā)現(xiàn)那少的可憐的知識(shí)。去讀書(shū)吧。用最系統(tǒng)的邏輯,去學(xué)會(huì)一項(xiàng)技能,哪怕你去《硅谷百年史》里去讀那些振奮人心的仙童半導(dǎo)體的故事,也比你不斷的知乎看著水的一筆的帖子要強(qiáng)的多。現(xiàn)在,最可怕的是大家在知乎上消費(fèi)著垃圾,卻依然覺(jué)得自己在吃著奶酪,學(xué)習(xí)的過(guò)程都是伴隨著思考和痛苦的,如果你邊笑邊學(xué)習(xí),那你真的得醒醒了。

  目標(biāo)和激勵(lì)很重要

  我在大三下半學(xué)期被保研后,開(kāi)始了另一個(gè)小項(xiàng)目,一個(gè)叫“小熊詞典”的 App,起因是因?yàn)樵趯W(xué)英語(yǔ)的時(shí)候,所有詞典類 App 想要獲取最全的詞語(yǔ)解釋都需要聯(lián)網(wǎng),流量消耗大不說(shuō),電量是最大問(wèn)題,自習(xí)一早上電量就沒(méi)了。所以,自己想動(dòng)手寫(xiě)一個(gè)詞典 App,主打離線詞庫(kù)和快速查詢。

  但最后的時(shí)候,小項(xiàng)目胎死腹中。說(shuō)實(shí)話,整個(gè) App,已經(jīng)開(kāi)發(fā)到 95% 了,抓取了非常多有名的詞庫(kù)的數(shù)據(jù),并且整理成了規(guī)范格式。但項(xiàng)目最后還是放棄了。即便今天來(lái)看這個(gè)詞典依然很酷!(最豐富的詞庫(kù)和最快的查詢速度)

  現(xiàn)在想想,當(dāng)初一個(gè)人開(kāi)發(fā)的時(shí)候,每次想到一個(gè)很酷的功能,就決定加進(jìn)來(lái),項(xiàng)目進(jìn)度遙遙無(wú)期。完全沒(méi)有項(xiàng)目管理的思路,也沒(méi)有意識(shí)到這樣會(huì)很快拖垮我的體力,消磨掉自己的意志和熱情。

  對(duì)于很多初學(xué)者來(lái)說(shuō),總是抱著書(shū)學(xué),其實(shí)也是同樣的后果,你無(wú)法獲得任何的反饋和激勵(lì),以至于覺(jué)得一件事情越做越難。學(xué)習(xí)的過(guò)程,最好能定一個(gè)簡(jiǎn)單的目標(biāo),比如:“我即便現(xiàn)在什么都不會(huì),我就要做個(gè)小游戲出來(lái),這個(gè)游戲應(yīng)該是這樣的一個(gè)玩兒法,blablabla。”,做出來(lái)后,快些去找用戶,可以是你的朋友,也可以是你的父母,最好是那些不吝惜贊美的朋友們,讓他們無(wú)形之中給你一些動(dòng)力。

  你永遠(yuǎn)無(wú)法一步達(dá)到完美

  我認(rèn)識(shí)的朋友中,他們都有各種稀奇古怪的想法亟待實(shí)現(xiàn),但最后,以信誓旦旦開(kāi)始 Side projects,最后卻都銷聲匿跡了,這是不無(wú)原因的。因?yàn)楹芏嗟拈_(kāi)發(fā)者在剛開(kāi)始的時(shí)候,缺乏清晰的計(jì)劃,卻想一步登頂完美的境地。這是很可怕的想法。就好比,我一個(gè)很少登山的人,卻在第一次的時(shí)候,就決定登頂珠峰,結(jié)果自然可想而知。在實(shí)踐自己想法的時(shí)候,最好能考慮以最低成本去展現(xiàn)你想法的核心部分,而非一個(gè)大而全的方案。

  從最小成本的想法核心,一步步的去驗(yàn)證自己的想法,去收集反饋,調(diào)整策略。最終抵達(dá)一個(gè)正確的目標(biāo)。

  趕在興趣消失之前,去學(xué)習(xí)新知

  不得不承認(rèn)懶惰是人的共性,當(dāng)你看到別的朋友做出來(lái)很酷的小游戲的時(shí)候,你是否也有幾分鐘沖動(dòng)的想要去學(xué)習(xí)游戲制作。不要等!快去買兩本書(shū)抓緊學(xué)起來(lái),哪怕你知道你這個(gè)熱情的苗頭很快會(huì)熄滅,但請(qǐng)不要放棄任何發(fā)現(xiàn)新大陸的機(jī)會(huì),在學(xué)習(xí)沖動(dòng)消失之前,去入個(gè)門先。

  我每次跟人互相分享初高中生涯的時(shí)候,我總是能想起來(lái)我初中時(shí)候的一位語(yǔ)文老師,微胖,性格和藹。她在一次自由復(fù)習(xí)準(zhǔn)備期末考試的時(shí)候給我說(shuō): “你復(fù)習(xí),不要局限在課本上,你背會(huì) 24 節(jié)氣都是很有意義的,想看什么書(shū),就去看,不要等,不要擔(dān)心自己學(xué)不會(huì)?!?/p>

  這話對(duì)我學(xué)習(xí)新東西影響特別深,現(xiàn)在我基本上想學(xué)習(xí)什么東西,立馬去學(xué),即便可能一周后氣餒了,放棄了,但是從來(lái)不會(huì)懷疑學(xué)這些零碎知識(shí)的意義。

  我學(xué)過(guò)吉他,寫(xiě)過(guò)毛筆字,寫(xiě)過(guò) Delphi,用 Sketch 畫(huà)過(guò) icon,用 Blender 畫(huà)過(guò) 3D 保齡球,寫(xiě)過(guò) Unity 小游戲?? 很多我都沒(méi)堅(jiān)持下來(lái),但給我?guī)?lái)的最大改變就是我不會(huì)懼怕去接受新事物,思考問(wèn)題的時(shí)候總是能把很多場(chǎng)景考慮到。也能慢慢的找到自己最愛(ài)做的那件事情,更清楚的定位自己。

  所以,當(dāng)你忽然對(duì)某件事情有興趣的時(shí)候,抓住那幾分鐘,那幾天,趕緊去學(xué)點(diǎn)新東西。

  畢竟,點(diǎn)總是會(huì)串成線的。

  少看別人寫(xiě)的文章,多看優(yōu)秀的代碼

  我做 Gank 以來(lái),很多開(kāi)發(fā)者都投稿過(guò),以至于現(xiàn)在后臺(tái)還擠壓著 2000 多個(gè)投稿沒(méi)有處理??催^(guò)這么一圈而后,我開(kāi)始不主張去看別人寫(xiě)的技術(shù)類文章。看別人的文章,你看到的是他想講給你的,而這些可能只是他在自己的項(xiàng)目里用到的,而不是一個(gè)客觀全面的角度。時(shí)間一長(zhǎng),以至于你只知道這個(gè)東西的一兩種用法,更可怕的是你可能已經(jīng)對(duì)思考喪失興趣,總想走捷徑,可能這樣前期學(xué)習(xí)效果顯著,但是后期會(huì)很快到達(dá)瓶頸。我想如果你經(jīng)常讀各種語(yǔ)言的官方文檔,總是會(huì)有 “啊哈!這樣都可以,我以前都不知道還有這種方法存在?!?nbsp;的感嘆,但你看別人的文章,卻很少有這種感覺(jué)。

  至于主張看優(yōu)秀的代碼,其實(shí)是希望學(xué)習(xí)一個(gè)技術(shù)細(xì)節(jié),是伴隨著思考的。其實(shí),評(píng)價(jià)某一種方案好與不好,是沒(méi)有意義的。只有多積累其他人解決同一問(wèn)題的方法,才能在下一次做決策的時(shí)候,找到適合當(dāng)前場(chǎng)景的最優(yōu)解,很多時(shí)候,也能觸類旁通,給解決其他問(wèn)題提供思路。

  慢慢減少對(duì)二手知識(shí)的依賴

  技術(shù)提升這個(gè)過(guò)程,其實(shí)是你對(duì)二手知識(shí)減少依賴的過(guò)程。二手知識(shí)是什么?就是那些經(jīng)過(guò)別人翻譯,總結(jié)的文章。一開(kāi)始入門,大家看到的都是二手知識(shí)(也可能是三手,四手的知識(shí)),但,想要提升自己的能力,強(qiáng)迫自己多去看些更官方的文檔,體系化去學(xué)習(xí)。這個(gè)過(guò)程是很消耗體力和腦力的,但多堅(jiān)持,一定會(huì)有明顯改善的。

  收藏的意義不大,收藏也不能改變什么

  很多人看到不錯(cuò)的文章,總要 @我的印象筆記?? 我之前也會(huì)這么干,經(jīng)常把一些不錯(cuò)的文章,存到 Pocket 或者 Readability 里,但,真的回顧去看那些文章的機(jī)會(huì)太少了,而收藏這些文章給我?guī)?lái)不少壓力。有的文章,我只是淺顯的讀了讀,腦子里總是得記著有時(shí)間了再去讀完剩下部分,正如大多數(shù)人一樣,再也不會(huì)去讀了。久而久之,拖延癥也就變得理所應(yīng)當(dāng)。

  有可能你會(huì)說(shuō)萬(wàn)一哪天用到呢?其實(shí)我覺(jué)得再 Google 一次就好啦,可能會(huì)找到比這篇文章更好的。就這樣。

  現(xiàn)在,看到一篇不錯(cuò)的文章,首先從標(biāo)題推測(cè)下內(nèi)容,再掃一眼,如果跟我猜測(cè)的八九不離十,我基本就關(guān)掉了。如果有跟我的推測(cè)大相徑庭,我一定會(huì)一口氣讀完,而不是收藏起來(lái)以后再讀。

  之所以我說(shuō)收藏什么也改變不了,是因?yàn)樽x別人的東西,思考的過(guò)程是別人的。努力去減少?gòu)膭e人文章里閱讀學(xué)習(xí)的頻率,多去讀一手資料然后自己總結(jié)。

  培養(yǎng)一些對(duì)產(chǎn)品的感覺(jué)

  你有沒(méi)有在 PM 說(shuō)了要實(shí)現(xiàn)某個(gè)效果或者功能的時(shí)候,你站出來(lái)反對(duì),說(shuō)這樣并不合理。如果你有過(guò),那么我想你也是一個(gè)有理想的開(kāi)發(fā)者,而不是一個(gè)“碼農(nóng)”。聰明人喜歡跟聰明人合作,大家一開(kāi)口就互相明白了。沒(méi)有人是天生聰明的,只是看的多了,想的多了,就顯得聰明了。

  看些什么呢?看看一個(gè)優(yōu)秀的 App 早起的冷啟動(dòng)是怎么做的,看看 Apple Store 或者 Google Play 上最近有沒(méi)有什么新奇的 App 出現(xiàn),看看 Tech Crunch 上最近又有什么天馬行空的項(xiàng)目融到了錢。

  想些什么呢?想想一個(gè)產(chǎn)品功能的存在有沒(méi)有意義,他的下個(gè)階段又會(huì)怎么發(fā)展,想想某段文案是否會(huì)降低產(chǎn)品某個(gè)功能的轉(zhuǎn)換率,想想某個(gè)動(dòng)畫(huà)效果是否是很惱人的存在,如果你可以對(duì)微信加一個(gè)功能,減一個(gè)功能,你又會(huì)作何選擇。

  每個(gè)人都應(yīng)該有個(gè) idea list

  我在西安讀大學(xué)那會(huì)兒開(kāi)始,就有一個(gè)小本子,記錄著突然沖入自己腦海的一些靠譜或是離譜小想法。上面會(huì)寫(xiě)著類似:

  做個(gè) Every big moment,用手機(jī)記錄自己的每個(gè)值得紀(jì)念的瞬間,然后打印成相冊(cè)發(fā)給我或者放在網(wǎng)上當(dāng)做自己的 Profile。

  狗狗出門便便,主人打掃很不方便,有沒(méi)有更好的方案?

  程序一旦崩潰,直接發(fā)送操作記錄和堆棧信息到 Dashboard,而不要讓測(cè)試人員努力重現(xiàn),寫(xiě)個(gè) SDK,搭建一套服務(wù),一定會(huì)很好用。

  很多的 Bug 追蹤服務(wù),為什么不在錯(cuò)誤堆棧旁邊,展示出來(lái)這個(gè) Bug 的解決方案,哪怕是一個(gè) StackOverflow 的鏈接也好,這樣我就不用去自己搜索了。

  那個(gè)小本上記錄了自己好多做產(chǎn)品的想法,有不少,后來(lái)市面上都出來(lái)了相應(yīng)的產(chǎn)品。也有一些現(xiàn)在看來(lái)很可笑,有的想法今天再翻看的時(shí)候,仍然會(huì)沖動(dòng)的想要組團(tuán)隊(duì)去實(shí)現(xiàn)。

  Idea list 總是能激發(fā)你去創(chuàng)造的欲望,有空,就去不斷的記錄自己的 Idea list 吧。

  另外,不要把自己的 idea 當(dāng)做一個(gè)秘密,多和人去討論自己的想法,在不斷的否認(rèn)和肯定中,完善自己的想法,idea 是不值錢的,只有實(shí)現(xiàn)它才是有價(jià)值的。

  爭(zhēng)取去更優(yōu)秀的地方

  這句話可能大家都懂,但我的體會(huì)卻比大家都深刻。

  我在西安一個(gè)叫西北大學(xué)的地方讀的大學(xué),是一個(gè)普通的 211。計(jì)算機(jī)專業(yè)客觀來(lái)說(shuō)比較一般,在來(lái)北京師范大學(xué)讀研究生之前,我甚至沒(méi)聽(tīng)說(shuō)過(guò) ACM。

  Python、Ruby、Node 這種編程語(yǔ)言在我們的計(jì)算機(jī)系,根本連影子都沒(méi)有,所以正統(tǒng)的計(jì)算機(jī)技能點(diǎn)基本都是 C,C++ 這樣,這并沒(méi)有什么錯(cuò)?? 但路子就變窄了很多,學(xué)長(zhǎng)畢業(yè)去個(gè)騰訊、阿里,已經(jīng)能被大家推上神壇。

  本科學(xué)校大二會(huì)給計(jì)算機(jī)系開(kāi)一門日語(yǔ)課。為什么會(huì)給計(jì)算機(jī)系開(kāi)日語(yǔ)課呢?因?yàn)楹芏嗤獍鼇?lái)自日本。這個(gè)邏輯我一直都接受不能。這都什么年代了,我們?cè)缍疾恍枰猛獍挝覈?guó)的 IT 產(chǎn)業(yè)了。

  學(xué)校給學(xué)生的定位更多是一個(gè)學(xué)校展示就業(yè)率的棋子,你會(huì)什么不重要啦,只要你最后有個(gè)工作就好了,不要拖累了學(xué)校的名聲。

  來(lái)師大后,感受到了前所未有的轉(zhuǎn)變。學(xué)校整體的氣氛相當(dāng)自由,很多老師們,都是各自領(lǐng)域的專家,你問(wèn)一個(gè)問(wèn)題,他們能給你引導(dǎo)出很多有意思的點(diǎn)。久而久之,你也會(huì)被這些感染到。有時(shí)候,我也會(huì)想,以后穩(wěn)定下來(lái)之后,要不要去申請(qǐng)個(gè)美國(guó)名校讀一讀。

  結(jié)尾

  目前能想到的一些學(xué)習(xí)的技巧和陷阱,大致都列了出來(lái)。都是我個(gè)人的一些學(xué)習(xí)的經(jīng)驗(yàn),如果對(duì)你有幫助,想必也是極好的,如果你覺(jué)得我寫(xiě)的有不合理的地方也歡迎指出。堅(jiān)持著去實(shí)施提及的一些方法,一定會(huì)對(duì)你的生活和職業(yè)帶來(lái)改變。



關(guān)鍵詞: GitHub Android

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉