自學(xué)編程四個月的心得記錄-給和我一樣的普通人#3

過往學(xué)習(xí)經(jīng)驗:

2016年年初學(xué)了大概100個小時左右的HTML和CSS,今年8月辭職後花了約30小時學(xué)Ruby。

但是後來發(fā)現(xiàn)太沒有系統(tǒng)性而且當時自學(xué)能力還不夠有系統(tǒng),所以我就報了XDite推薦他朋友創(chuàng)立的Launch School的課程自學(xué)(誰知道現(xiàn)在就打?qū)ε_了),從九月初有系統(tǒng)性的上課到現(xiàn)在大約4個月了。

為何開始學(xué)編程:

從工作的角度:(1)編程是相對不容易被取代的技能(2)復(fù)利效應(yīng)好(3)一個底薪高而且相對來說沒有收入天花板的職業(yè)

從個人的角度:我一直想要不受地域限制,有一臺電腦和網(wǎng)路就能工作,而顯然編程能夠完美的符合這個條件。作為一個過往沒有什麼積累和成就的加上興趣相對廣泛,既然要從頭開始所以我選擇了一個能滿足自己目標丶收入丶未來發(fā)展的技能。

為何選擇Ruby:

因為在先前的實習(xí)還有打工經(jīng)驗都會碰到網(wǎng)站,曾經(jīng)用wordpress架網(wǎng)站。但發(fā)現(xiàn)花了數(shù)百個小時只學(xué)會了下載一堆套件丶跟客服寫信溝通丶自己手動調(diào)整網(wǎng)頁,完全沒有技術(shù)可言,加上當時想要離職而且深信會coding是未來的機會,所以我就跳下去學(xué)了。

而Ruby作為架網(wǎng)站的語言之一,有慣例優(yōu)於設(shè)定丶DIY等特點,感覺起來雖然有限制性,但卻給了初學(xué)者有更多的時間專注在真正有價值的事物上,所以我才開始學(xué)Ruby。(但讓我晚幾個月開始我可能會學(xué)Python就是了)

是否該選擇線下/上課程:


以臺灣的alphacamp為例(澄清一下我沒上他們的課程哈),這個營隊最大的好處是,他會把同時在進行營銷丶iOS開發(fā)丶網(wǎng)頁開發(fā)丶UI設(shè)計的學(xué)生組合在一起,讓不同領(lǐng)域的人一起做出一個畢業(yè)專案,讓在老師手把手的情況下進行像業(yè)界一樣開發(fā)產(chǎn)品的過程,而這種學(xué)習(xí)協(xié)作的能力是一般線上課程辦不到的。

除此之外在入門時有高手手把手教你,絕對可以讓你在未來省下很多力氣,像是如何debug丶怎麼寫出漂亮的代碼丶如何設(shè)計userstory等。這樣的課程強度高效率又好,但是唯一的缺點就是:貴。

相反的,線上課程的最大好處在於相對便宜和時間自由,還有另外一點是可以鍛煉個人的英文跟自學(xué)能力。所以最終要衡量的話應(yīng)該要把學(xué)費丶總共學(xué)習(xí)時間丶何時能找到工作丶第一份薪水多少錢等等納入計算。

像是臺灣的alphacamp要3.5w人民幣,耗時兩個月,但是在畢業(yè)一個月內(nèi)可能可以找到一份1.3w人民幣的工作,所以這樣以一年的區(qū)間來看,我的凈收入應(yīng)該是13 X 9 - 35 = 82 k人民幣。

相反的,如果今天一個學(xué)生自學(xué)6個月,每個月學(xué)費1.2k人民幣,在畢業(yè)一個月內(nèi)找到工作,以一年來看凈收入是13 X 5 - 1.2 X 6 = 57.8 k人民幣。雖然這個計算可能會隨著個人的學(xué)習(xí)效率還有很多變動因素影響,但我在這邊是想提供一個比較完整的計算方式供大家參考。

如何選擇編程的教材:

「花錢買時間和注意力」,我一開始適用codecademy的課程上,這個課程的好處就在於它幫你一些大觀念拆分成小觀念,不要求你先理解但會帶你跑過一遍,并在之後一步步給你解答,而且他的價錢算是相當便宜又有線上助教,確實是初學(xué)者不錯的選擇。

但是我後來發(fā)現(xiàn)這樣的課程也是有點問題,像是:
(1)codcademy的助教有時不太靠譜:之前有幾次其實只是我漏打了一些什麼,結(jié)果助教debug就花上了30-50分鐘,而事後也發(fā)現(xiàn)是些特別小的問題

(2)codecademy的平臺有時不太靠譜:我曾經(jīng)有幾次代碼出了點問題,不論怎麼debug或是向助教求助都沒辦法解決,後來助教跟我說是系統(tǒng)本身的問題,跟我說聲抱歉。但這種情況也發(fā)生好幾次,累積起來好幾個小時也就這樣過去了。

(3)很好的入門教材,但強度可能不夠:這教材很適合入門,但是在我下個階段的學(xué)習(xí)歷程這樣的強度可能不夠。

每個人有自學(xué)選擇教材的喜好,但是至少當時我真的覺得被浪費了太多時間,所以我後來就跟他說掰掰了。

注:我2017年2月份又再次使用codecademy的課程學(xué)jQuery,發(fā)現(xiàn)平臺已經(jīng)穩(wěn)定許多。但我依舊認為Codecademy比較適合初學(xué)者入門,要更進一步勢必要找其他教材。

所以我後來學(xué)乖了,再加上看到笑來老師提到注意力>時間>金錢,所以我就直接選擇當是市面上最貴的教材Launch School,一個月要1.2k人民幣。但是我現(xiàn)在完全體會到了這個課程的好處,因為它真的很扎實,一個月內(nèi)學(xué)到的東西可能比我更早一個月自學(xué)的多太多。

學(xué)編程需不需要英文能力

學(xué)編程初期可能英文不重要,但是要成為厲害的程序員英文很重要。簡單來說就是在程序員的世界中,最新最好的資料大多都還是用英語寫成的。

當然有人會說我們可以看翻譯過的就好,但是那些高深的技術(shù)和詞匯通常也都需要牛人消化丶整理過後再翻譯,但是哪來那麼多牛人幫你翻,而且牛人真的有那麼多時間幫你翻嗎?所以我個人的觀點是,學(xué)編程英文能力不一定要好,但從長遠來看,把英文搞好絕不是壞事。

不過學(xué)編程的另外一個好處就是英文會同時進步。我的英文能力還算可以,TOEIC大概800多分的程度,但是我一開始在看英文教材的時候還是很吃力,一方面英文還是不夠好,一方面不夠理解。

但我知道英文這種技能也是會越用越上手的,所以我還是每天看,一天大約看個6個小時,加上每天早上我都會朗讀15分鐘,所以自學(xué)現(xiàn)在閱讀能力進步不少。

還有一個另外的收獲就是,因為我有意地想要提升學(xué)習(xí)速度和效率,所以我到後來都會試著把教學(xué)影片加快到1.25倍,平時聽電子書也都加快。幾個月下來,慢慢的我現(xiàn)在聽TED或是影片都可以到1.5-2倍。

雖然不敢說英文聽力變得多好,但是大概就像是能夠用1.5-2倍的速度聽懂原本用原速播放的音檔。

關(guān)於Xdite的建議:先抄代碼再理解?

關(guān)於這個想法我也是不停地在測試。我一開始遇到的問題是,往往花了好幾個小時看完一個章節(jié)開始要做題目時,一開始看的東西已經(jīng)忘了差不多,往往又要邊寫邊回頭復(fù)習(xí),而且若是閱讀時間拉得越長效果越差,而我也認為這是讓我目前學(xué)習(xí)編程速率較差的原因之一。

因為我平常都會看很多書,也會希望能夠提高讀書效率,所以我陸陸續(xù)續(xù)在一些書中找到了跟以往讀書方法不一樣的觀念,像是直接從解答開始學(xué)習(xí),而不是課本。這幾本書分別是《狡猾的讀書法》丶《關(guān)於考試,你用的方法都是錯的》丶《關(guān)鍵20小時,快速學(xué)會任何技能!》


前兩本書似乎只在臺灣有翻譯本,所以我建議大家可以看看第三本。第三本書的作者喬許考夫曼花了90個小時從零開始自學(xué)編程(但是他在大學(xué)也有一點學(xué)編程的經(jīng)驗),然後就做出了兩個程序(而根據(jù)喬許在書中的說法,把一個大概念拆成小概念學(xué)習(xí),并藉由直接的反饋修正是很好的學(xué)習(xí)方法)。

當我看到這一段是我簡直是無地自容,因為我們兩個都用得是Ruby,但我覺得我學(xué)了幾百個小時卻似乎還沒有辦法真的見一個作品,但他一下就做到了,是不是我的學(xué)習(xí)方法出了問題?(當然這跟我目前上的Launch Scool刻意放慢教學(xué)速度跟加深深度有關(guān)。)

所以我就開始嘗試直接打代碼學(xué)編程的嘗試。由於目前學(xué)ruby已經(jīng)有了一段時間跟,我就這樣一步一步地靠直接做題目丶看解答丶查資料就搞懂了不少JS的問題,而且我到現(xiàn)在沒開始看教科書。

當然我并不是在倡導(dǎo)教科書無用論,我只是在分享我測試學(xué)習(xí)方法的觀點,至少就實驗結(jié)果來看,直接從零開始從小的習(xí)題丶甚至是從完整的作品開始著手是有可能的,雖然一開始的挫折感會重一些,但是長遠來看我覺得整體速度可能更快。

實際的例子

舉例來說如果你現(xiàn)在完全不懂Ruby,我丟了一段Code給你,你要怎麼解?

題目:

Write a method that takes one argument in the form of an integer or a float; this argument may be either positive or negative. This method should check if a number is odd, returning true if its absolute value is odd. You may assume that only integers are passed in as arguments.

解答:



也許看起來很可怕,但是不用慌。在這邊我們可以看到幾個關(guān)鍵字:method丶def丶return true丶%丶==。接下來你要做的就是到Google搜尋 “what is def in ruby?" “what is method?" “what is double equal sign ruby"等等。

大概半小時左右的時間你就可以知道如何建立Method丶%和==代表什麼丶argument又是什麼,而不用從頭看一大堆的文檔再開始練習(xí)。

而還有一件很重要的問題值得詢問:「為什麼很多從學(xué)校丶補習(xí)班丶職業(yè)訓(xùn)練所出來的人,依舊沒辦法找到一個工作?這些地方的功能(之一)不就是為了達到這個目標嗎?」。

這的確是一個很耐人尋味的問題,這就像是在問一個從小到大十幾年考英文都考高分卻說不出幾句話,跟到了國外用英文生活了一年的人比起來,還是只能不斷被啪啪啪打臉的份一樣。因為很多時候我們都自以為自己在解決問題,但是顯然并非像我們想像的這麼美好。

我的一些學(xué)習(xí)方法:

目前我是在用LS的課程上課,但是我在學(xué)習(xí)過程中發(fā)現(xiàn)了幾個問題(1)沒抓好復(fù)習(xí)的時間效果大打折扣(2)練習(xí)時進步最多,而不是閱讀(3)練得越熟下次看到類似的題目解得越快。

先前跟大家提到的三本書,還有Xdite(ruby&rails專家)都推崇把一些項目做熟的好處,以下我擷取Xdite的一段文字:

「比如說很多人以為我寫 code 這麼快是因為 rails 寫項目很快。這根本是大錯特錯。那是因為我寫過了一兩百個小項目中項目練手(很多人根本不知道這件事),我寫到最後任何 idea 到了根本不用想不用折騰的境界。」

「我做項目做到已經(jīng)到了可以看完寫完 user story 就知道可以「非常準確」算出一個項目要花多少時間人力。(誤差在1%,而且在職場上沒有失誤過。)正因為我有這樣的能力。所以我的學(xué)生打 hackathon 也會有同樣的速度結(jié)果(比如說幾個人八小時搞出一個項目而且效率奇高)。因為這對我來說根本已經(jīng)是一套公式。

所以我也開始把題目練熟這件事情放在自己心中,加上LS的課程在每完成一個階段需要分享螢?zāi)籰ive coding,并由老師評分及格才算通過,并且才能進到下一個課程,所以能不能熟練的coding就變得很重要。

所以大部份章節(jié)都有大量的練習(xí)題,而因為有了過往的一些體悟,我現(xiàn)在練習(xí)是這樣練習(xí)的:看了五分鐘發(fā)現(xiàn)腦海里沒有想法的話,直接開解答看步驟,觀察別人的編程丶學(xué)習(xí)新的觀念丶了解如何推演過程,接著看熟之後試著自己重頭寫一遍。

然後從隔天開始每天都復(fù)習(xí),復(fù)習(xí)的方法分成回想練習(xí)(也就是只看題目名稱,然後在大腦推演),還有實際練習(xí)。也就是說我的練習(xí)次數(shù)是一天至少一次,不是久久才一次,而這個過程可能會持續(xù)1丶2個禮拜以上直到這個段落的課程結(jié)束。

再加上我現(xiàn)在不像以前看了整個章節(jié)才開始寫習(xí)題丶復(fù)習(xí)丶準備考試,而是直接開始寫習(xí)題抓重點,看書丶每天復(fù)習(xí)丶準備考試,整體下來我的練習(xí)量會比原本的做法多很多。而我現(xiàn)在也開始準備直接嘗試做一個完整的作品,因為對我來說這顯然是更快的學(xué)習(xí)方法。

每天記錄學(xué)習(xí)心得

我目前除了每天固定寫一篇非技術(shù)性文章之外(中文),我還會每天花時間寫一篇技術(shù)性文章(英文)。這個技術(shù)性文章不需要很高深,我的作法就是每天記錄學(xué)到了什麼丶哪些事情該注意。

這樣的做法除了能夠讓你總結(jié)一天所學(xué)當做復(fù)習(xí)之外,還能同時記錄你的學(xué)習(xí)歷程,你之後有遇到類似的問題可以回頭來看看,而且另外一個重點就是把你的作品集和思考過程分享給大家。

一來不論對錯大家都可以互相交流,而且未來如果有面試機會也可以把自己的博客當作作品集之一,加上用英文寫作也可以順便練習(xí)英文,即使一開始在糟,人總是會慢慢進步的不是嗎?

學(xué)會一門語言學(xué)其他更快

雖然對其他大牛來說這根本就是嘗試,但是我現(xiàn)在在寫題目學(xué)JS確特別有體悟。

就拿學(xué)習(xí)日語跟韓語這件事情來說,會說日語的人學(xué)韓語特別快,會說韓語的人學(xué)日語特別快,因為這兩種語言在文法架構(gòu)丶社會禮俗丶語言使用時機上有高度的相似,更不用說在韓國去漢字化之前也使用漢字,所以在那個時代這兩個國家的人互相學(xué)習(xí)對方的語言簡直是快到不像話,其他國家的人只能望塵莫及。

相同的編程(或是任何的知識)也是一樣,你說得越多會發(fā)現(xiàn)其實一些重要的概念早就在別的地方介紹過了。

關(guān)於找工作

雖然由我這個自學(xué)編程才幾個月的人談?wù)撨@個話題似乎有點愚蠢,但是我覺得如果學(xué)編程的目的是希望能夠找到一份工作的話,這件事情就不能不在意。而活在未來最好的方式就是像專家一樣生活,所以為了找到理想中的職務(wù),最好現(xiàn)在就開始準備。


以英語流利說這間公司的面試標準來說,如果為了有機會能夠面試這間公司,我必須要熟悉如何測試輔助開發(fā)(如Rspec)丶熟悉如何開發(fā)RESTful API丶熟悉系列行數(shù)據(jù)庫(如MySQL)丶熟悉如何自動化部屬Ruby/Rails丶熟悉使用Git。而當我足夠熟悉這些技能時,對流利說這間公司來說,我就是那個有可能替他們解決這些問題的人。

所以我不能傻傻地埋頭苦練,而是要開始花更多的時間加強這方面的能力,這才是合理的準備方式。而要如何準備,我個人的想法是直接抓幾個會牽涉到這些點的代碼來練習(xí),像是多產(chǎn)出一些API相關(guān)的作品集等等。

當你有足夠多這樣的作品集跟經(jīng)驗,在同一群能力差不多的人來看你的履歷會更好看;而即使沒有機會面試,至少你加強了一些公司看重的能力,何樂而不為呢?

最後

專精任何一項技能都是需要花費很長的時間才能達到的目標,雖然專注和持續(xù)是絕對不可少的,但是在這個過程中我們可以用各種方法來提高效率但卻不致於走偏,幫助自己能夠有更多的時間跟注意力去做自己想做的事,而這也是我還不斷在學(xué)習(xí)的。

希望這篇文章能夠給看到的朋友們帶來一點點的幫助,若是有任何說錯或是不夠精確的地方,還請多多指教。

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

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

  • 0.前言: 在大學(xué)四年的最後一學(xué)習(xí),修到哲學(xué)概論讓自己重新對一些成見思考丶重新關(guān)照自我是一件很殊勝的事情, 然而老...
    小慷閱讀 274評論 0 0
  • 依然保護自己版權(quán),雖然沒什么人看。 版權(quán)歸作者所有,任何形式轉(zhuǎn)載請聯(lián)系作者。 作者:七彩小蘋果(來自豆瓣) 來源:...
    七彩小蘋果閱讀 102評論 0 0
  • 特奢匯,是一家國內(nèi)最大的會員制綜合電商平臺。它類似美國的Jet.com。平臺采用C2B+O2O電商模式,為會員“省...
    b5d5edf5911a閱讀 207評論 0 0
  • 每一個孩子面對媽媽總有很多話講。“媽,今天吃什么?”、“媽,我衣服呢?”、“媽,我的鋼琴教材去哪啦?”、“媽,可以...
    ranelliott閱讀 320評論 0 0