轉:一個理智的生命個體是怎么一步步走向瘋狂?

看到此文深有感觸,轉給在各種語言和各類技能樹中迷茫的開發者們~
我穿著西裝,坐在辦公室里,腦子里有一個模糊的創業想法。然后,我決定學習編程。我曾經無意中聽到過幾個人在那吹牛說自己怎么使用一種叫Ruby的語言輕松實現自動辦公。我想"呵,Ruby"。我回到家,谷歌Ruby。15秒之后,我隨機選擇了一個Ruby教程,開始學習。

一周以后,我參加人生中的第一次黑客聚會。在場的每個人都在討論什么Scala,Clojure,Go。我想,他們學得還真是多。轉身我就借了三本O'reilly的書,每本書看了大概50頁。

什么?你問我為什么沒有完整地看完一本書?那還不是因為每本書開始的時候簡單易懂,然后就開始做假設,假設你具備這個知識,假設你會使用那種工具,可是這些我都不會好嗎?
我的一個朋友告訴我應該學Emacs,并且給了我他的配置文件。我又花了幾個小時學習基本的Lisp語法,以便我能自己設置配置文件。

然后一個人從我身邊經過,看見我正在使用Emacs,就問"你怎么還在用Emacs(表情自行腦補),你不知道Vim更好嗎?"我想"呵,Vim",于是我開始背誦Vim成堆的鍵盤快捷鍵。

工程師們經常討論這樣一個話題,文本編輯器哪家強?并且,工程師們將這看成是一場宗教戰爭——評判的標準不在于客觀的準則,而在于歷史分歧。

那時候,我認為如果我打字越快,我編程的速度也會越快。所以我拋棄了傳統的鍵盤布局,用上了程序員必備的Dvorak鍵盤布局(就像下面這樣)。客觀上來說,對程序員而言,這是最高效的一種鍵盤布局。

看著上面的鍵盤布局,你能告訴我有多少字母鍵,數字鍵,特殊字符鍵的位置沒有變動嗎?答案是個位數。

等我能夠成功啟動Linux,一分鐘能夠敲出十個單詞的時候,我開始通過看書和Udacity的課程學習Python。

經過七個月的艱苦奮戰,我得到了第一份軟件工程師的工作。

CTO面試我的時候,我告訴他所有我學過的工具和我正在使用的高大上的配置文件。CTO禮貌地聽我說著,時不時點點頭。等我吹噓完自己淵博的知識之后,他看了我一眼,然后說"其實,大部分事情都有很多解決的辦法,但是只有其中的極小一部分是有意義的"。

四年以前,我所在的公司決定使用Ruby on Rails構建他們的產品。對于語言的選擇,所有的工程師都沒有意見,現在,他們的許多原始代碼還在工作。所有的工程師都用MacBook,因為MacBook不僅可靠,并且和他們在產品中使用的Ubuntu Linux服務器非常類似。這里的工程師不討Vim和Emacs哪家強,每個人使用的文本編輯器都是RubyMine,這是一個強大的集成開發環境,默認配置非常好用。這里的每個工程師使用的工具完全一致,意味著每個人可以隨便挑選自己的座位,然后立馬和左邊或右邊的同事開始結對編程,而不需要糾結開發環境的配置問題。使用完全相同的配置能極大地方便兩個開發者之間的合作。

雖然我不會Ruby on Rails,公司也覺得我能勝任工作。因為我會Python和Django,并且贏得了黑客馬拉松的比賽,公司認為這些可以說明問題。

最開始的幾周真是艱難,這種艱難不僅僅來自于我來到一個新的團隊,使用一種新的語言,新的框架和新的代碼庫,而是因為我發現身邊的人都是以一種自虐的態度在學習編程。

我獨自在圖書館、咖啡廳坐了幾個月,每天就是盲目的通過命令行安裝各種工具,調試Linux驅動,解決一些細枝末節的問題,比如說括號不匹配。我涉足每一個能想到的在線課程,報了無數的MOOC課程。我認為實際上我什么都沒學到,直到在某個月的考核中,我上升至第五位。這些經歷給我的印象是,編程是一場你永遠無法取得勝利的戰斗。我開始明白那些看起來正常的程序員他們的過往實際上是那么灰暗,他們經歷過太多,又壓抑得太久,不得不說,學習編程簡直就是一個反社會的活兒。

辭掉上一份工作的第一個周末,我上傳了這張自拍。那天我起了個大早,穿了件體面的西裝,穿西裝是為了提醒自己:我可是要去學習編程的人。Facebook的標語"我的新辦公室——餐桌上。我每天過著朝8晚6的生活,只有在必須要休息的時候才休息"。在生活中,我學程序員說話,像他們一樣思考,現在,我已經習慣了這個詞。

我的同事幾乎從沒遇到過語法錯誤,因為他們的IDE替他們解決這個問題。而當他們遇到一個錯誤信息,如果在幾分鐘內不能解決問題,他們就會給其他同事發送一條即時消息,請求其他人的幫助。他們會隨意跳到別人的桌旁,然后開始結對編程。這里的程序員不會太自我,也不自詡為精英。他們也不認為編程是一件痛苦的事。有的只是成年朋友之間的建設性的對話。

一個團隊中的成員使用的工具是高度一致的。在Passion Project和黑客馬拉松中,開發者可能會使用新的JavaScript框架,比如說Angular.js。而在一個真正的團隊里,成員把精力主要放在使用現有的技術提升產品之上。從這個角度來說,他們是保守的。

在ThoughtBot你也會看到類似的情況,在ThoughtBot中,每個人都堅持使用一個小且高效的工具集(Rails,Vim,Postgres和Redis)。因為工具集小,所以工程師容易成為該領域專家,又因為每個人使用的工具集都是一樣的,所以相互之間進行互操作就變得很容易。

所以真正的問題是,如果高效的團隊在使用一個小且固定的工具集的時候最高效,那么是不是人們在學習編程的時候使用一個小且固定的工具集是最好的。那些在線編程課程和編程訓練營顯然是這么想的。

但是作為一個個體,可以選擇的工具那么多,真的很難決定到底該怎么選。我知道這一點是因為我經歷過。一個好的程序員的技能集合可以用T形來表示——涉獵的領域很多,但是真正擅長的領域不多。但是,經過經年累月的積累,T形將會慢慢變成下劃線形。

我遇到過許多學習編程的人,上來就想什么都學,什么都會,最終,他們都失敗了,放棄了他們成為一個程序員的夢想。我不想這種情況也發生在你的身上。

你需要專注更多方面

事不宜遲,下面給出一些新手容易犯的大錯誤:

從這種語言轉到那種語言,又從那框架跳到這個框架,或者騙自己可以精通所有的語言或框架

使用小眾的工具來搭建自己的開發環境,而不是選擇傳統的、可信賴的工具。

學習像Docker和Famo.us這樣的工具,僅僅因為它們新奇,雖然更加基礎的技術都還沒掌握好。

如果非得用一個詞來總結我的建議,我會說:專注。

我問你,你會用專注這個詞來描述你的編程學習計劃嗎?如果你認為你的計劃夠專注,好,你現在可以停止閱讀,回到你的計劃開始學習,因為我不想說任何可能導致你失去專注的事情。

如果你還的計劃不夠專注,那你也有福了——照我說的去做,你也能專注,但是這需要花費你幾分鐘的時候做幾個艱難的決定。等等,你們別走啊!

好的,你還沒走。下面就是你需要做出的艱難的決定。

選擇一種軟件類型,可以是Web應用,手機應用,游戲,或者嵌入式。我推薦web應用,因為它夠靈活。學習的資源也很多,工作機會更是數不勝數。如果你的興趣點不在web應用上,關掉這個頁面,在Google搜索框里面輸入"getting started in _____ development",將返回的結果一條條點進去看。

選擇一種編程語言:JavaScript,Ruby或者Python。每種語言有自己的強項,都有與之相對的用于構建web應用的工具(分別是Node.js,Rails或Django)。除非你自己明確知道自己該學哪種語言,否則我推薦你學習JavaScript,因為它使用最廣泛。

選擇一門在線課程。這里有一些選項供你選擇:如果對JavaScript感興趣,去FreeCodeCamp.com或者NodeSchool.io上找;如果對Ruby感興趣,去TheOdinProject.com或者TeamTreehouse.com上找;如果對Python感興趣,去Udacity.com上找。相信設計這些課程的老師們的智慧,按照建議的順序完成這門課程,不要跳來跳去。

買一個新的/舊的MacBook,或者在你現在的電腦上安裝Ubuntu Linux。至于其他你可能需要的工具,按照在線課程的建議安裝即可。

一旦你做出了這些決定,剩下的路就太簡單了。你只要保持清醒,不要被周圍的新工具所迷惑。一周七天,每天學一點在線課程,哪怕一次只有半小時。相信你今天做出的決定。最后,請記住:只要有耐心,任何能干的人都能成為絕世coder,當然也包括你。

標簽:FreeCodeCamp, NodeSchool, 學習

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容