一個少女從自學(xué)寫程式到創(chuàng)立區(qū)塊鏈公司和進(jìn)入UC Berkeley區(qū)塊鏈研究院的故事 動機寫這篇文章是想分享給想自學(xué)卻不知道如何開始的朋友 — 就像給過去的自己的一封信。希望幫助到嚮往快速學(xué)習(xí)新事物的大家,一起加入自學(xué)這個大家庭:) ps. 這篇文章雖然是從自學(xué)寫程式的觀點出發(fā),但同理可應(yīng)用到其他領(lǐng)域 我為什麼對寫程式有興趣?寫程式有什麼好?對我來說,寫程式有三大好處是我特別喜歡的
如何入門?我是怎麼開始寫程式?我是高二時加入北一女中的資訊研究社開始學(xué)C++的。那時因為有學(xué)姊和資訊老師認(rèn)真的教學(xué),很快就上手,並開始在高中生程式解題系統(tǒng) ZeroJudge 解有趣的程式題(有點像機智問答,大部分題目乍看很難,想通了就有非常簡單的解法 XD),並開始往資訊競賽方向前進(jìn),因為當(dāng)時視野狹隘,以為寫程式只有這條路可以走 qwq。 就這樣一路堅持到大一,最好的成績只有在全國的成大資訊競賽中拿到第五名,沒有特別出色的表現(xiàn),也發(fā)現(xiàn)我讀的香港科技大學(xué),程式競賽的風(fēng)氣不如高中,幾乎全校只有不到20個人對這個有興趣。 於是,在大一下看到黑客松活動的傳單之後,我決定一試,那是我第一次寫C++以外的語言。 我花了兩天,把 W3School 上 html, css 教學(xué)都讀了一遍,跟著網(wǎng)站上的線上編譯器試著改每一段code再編譯,直到能熟悉並背出大部分語法為止。
接著,我開始學(xué)後端語言NodeJS,一開始查了超多教學(xué)都沒有看懂(不像html css 那樣直覺),直到讀了這篇 Node入門 並照著裡面的範(fàn)例程式跑才開竅。 開竅的定義是:能從一個空白的檔案,生出一整個有後端有前端的網(wǎng)頁,並自由加新功能,可以查網(wǎng)路找解答,但絕對不能複製現(xiàn)成網(wǎng)站。 接下來,我開始找一些實作應(yīng)用的教學(xué),例如[如何用NodeJS、Express、MongoDB 和 SocketIO 做一個聊天機器人](http://How to build a real time chat application in Node.js using Express, Mongoose and Socket.io)。每個名詞只要看不懂就丟進(jìn)Google搜尋,不要跳過,那時我的心法是:
這個心法讓我奠定了良好的基礎(chǔ),不像很多人學(xué)寫程式,為求速成而直接複製現(xiàn)成的網(wǎng)站,到後來因覺得架構(gòu)太難太複雜,無法掌握而放棄。永遠(yuǎn)都要從最簡單的架構(gòu)開始,習(xí)慣了再慢慢套用更複雜的框架,這樣才能有自己靈活運用程式碼的能力,而不是不斷的在修復(fù)錯誤訊息中,讓程式碼越來越複雜。 入門之後如何進(jìn)步?怎麼同時應(yīng)付課業(yè)壓力?學(xué)會了網(wǎng)頁前後端之後,我就開始積極參加黑客松練功,至今已有近20場比賽經(jīng)驗,也贏了幾場國際黑客松,其中包含以太坊全球黑客松舊金山站(Medium 心得文)。黑客松真的是每個工程師必去的練功活動,在時間的壓力下,跟第一次認(rèn)識的隊員合作,從零寫出一個專案,並呈現(xiàn)給不同背景的評審,這也是我覺得創(chuàng)業(yè)非常重要的技能之一。 除了參加黑客松外,我也開始探索資訊工程的不同領(lǐng)域,例如AI, Robotics, CyberSecurity 和 Blockchain。大一時我入選香港科技大學(xué)每年從200多位申請者中選出的20位新機器人隊隊員之一。加入的初衷是因為機器人隊是我們學(xué)校最難進(jìn)的社團之一,要花近一年的培訓(xùn)與最終決賽,贏的隊伍才有可能加入。對,就是因為『虛榮心』而加入,非真正有興趣。 於是,惡夢開始了。我花了半年時間,每個禮拜進(jìn)實驗室10到20小時做無人車 smart car 機器人,除了寫能用車身前置鏡頭判斷左轉(zhuǎn)右轉(zhuǎn)之外,從焊 mainboard 到畫車身設(shè)計圖,甚至鉅板子都做過。 時間不夠的壓力讓我養(yǎng)成了在上課當(dāng)下就學(xué)會,不回家複習(xí)這個習(xí)慣,還有用最少能應(yīng)付考試的力氣上課,極端一點例如翹掉所有課,期末考前再一次性把上課影片看完 XD 這些快速、長時間專注學(xué)習(xí)的習(xí)慣也讓我至今受用無窮。人在沒有其他退路的時候有無限潛能,這時我的心法是:
有專研的資訊領(lǐng)域很重要?為什麼是區(qū)塊鏈?自學(xué)網(wǎng)頁發(fā)開一段時間後,我又發(fā)現(xiàn)一件事:『網(wǎng)頁開發(fā)只是寫程式賺錢中的最基礎(chǔ)入門版』,還要加上其他應(yīng)用(如人工智能、區(qū)塊鏈)才會更有價值,否則在產(chǎn)業(yè)裡非常沒有競爭力(只能削價競爭 !?) 故事是這樣的,我在成為網(wǎng)頁開發(fā)工程師後,第一份工作就被一家香港小公司剝削,以小時計費,時薪是50港幣一小時(約200臺幣),低於學(xué)校活動 student helper 時薪53港幣。那時我沒多想就接受了這個 offer,因為畢竟自學(xué)這些都是免費的,沒有理由跟人家收費很高。 結(jié)果,悲劇的是那位香港老闆要求我?guī)缀鯚o時無刻都要在線上,處理他臨時想加的網(wǎng)頁新功能,老闆還會一直催進(jìn)度,我只好傻傻的照要求做,並老實按小時計費,最後一個多月邊上學(xué)邊兼職的薪水只有3000多港幣,老闆還會一副你做得不夠快不夠好我就換人的樣子。這次經(jīng)驗中,唯一的好處就是讓我養(yǎng)成了能快速開發(fā)任何功能的能力,和讓我瞭解到:
於是,我開始在教學(xué)影片平臺(如Coursera, Udemy, YouTube)上,同時學(xué)人工智能與區(qū)塊鏈,看哪一個領(lǐng)域更有趣,我能堅持得比較久。後來當(dāng)然是覺得區(qū)塊鏈更神秘、更有趣,所以更喜歡他。 而當(dāng)時我選擇區(qū)塊鏈而非人工智能的另一個原因是,對剛?cè)腴T的我來說,選擇的心法是:
結(jié)果很幸運的,我的大學(xué)開了一個名為 Blockchain Application 的研究專題,我也報名上了,因此我學(xué)區(qū)塊鏈就更有目的了,也在博士生的指導(dǎo)下在 ACM CryBlock 發(fā)了第一篇區(qū)塊鏈的論文。 寫程式還能做什麼?為什麼走向創(chuàng)業(yè)?跟很多人一樣,我以前的夢想也是進(jìn)大公司過好日子。 去年暑假,靠許多黑客松與比賽的得獎經(jīng)歷,和在區(qū)塊鏈界的小成就(面試官覺得發(fā)Medium區(qū)塊鏈教學(xué)文章太有意思,特別喜歡我),我以大二的身份成功錄取了香港微軟人工智能部門與匯豐銀行合辦的一年實習(xí)計畫。原本是給即將畢業(yè)的學(xué)生申請的,並有機會畢業(yè)後直接進(jìn)入微軟工作。
但在大公司工作後我才發(fā)現(xiàn),雖然工作內(nèi)容比新創(chuàng)公司輕鬆很多(通常新創(chuàng)公司因為缺人手,會把一個人當(dāng)十個人用),卻沒有像新創(chuàng)公司那樣,讓我覺得我的角色非常重要,會影響整家公司,並跟著公司一起前進(jìn)的感覺。每天的工作也重複性較高,不像新創(chuàng)公司,每天都有很酷的新工作出現(xiàn)。工作中的挑戰(zhàn)也不像新創(chuàng)公司,在大公司裡分配到的任務(wù)幾乎都是前輩們已經(jīng)有能力做到的,只是給我這個實習(xí)生練習(xí),而以前在香港的新創(chuàng)公司裡,很多任務(wù)是從前沒有人做過,我是第一個做出來的。我決定退出微軟,休學(xué)一年在臺灣發(fā)展的心法是:
((感覺是個超不乖的學(xué)生 XD 去國外發(fā)展必要嗎?怎麼能去Berkeley的?就這樣,我從去年10月退出微軟後,在臺灣發(fā)展了約半年,並在今年3月正式來到 Berkeley 區(qū)塊鏈研究院。 得到這個去 Berkeley 的機會也是一個很有趣的故事。我在2018年10月退出後,飛到舊金山去參加了全球以太坊黑客松,並在那裡認(rèn)識了 Berkeley 區(qū)塊鏈研究院和加速器的主辦人。她也因為我們團隊贏了一個小獎而對我們印象深刻,並提出這個來 Berkeley 當(dāng)短期學(xué)者的 offer。 所以,其實收到這個 offer 是11月的事,為什麼拖到隔年 3 月才去就是因為我一直不確定『去國外發(fā)展的必要性』。 在臺灣一切都看似很美好,我有一小群喜歡我的區(qū)塊鏈教學(xué)的粉絲,有許多幣圈鏈圈的好友,也常常被邀請去公司內(nèi)部或公開活動演講與教課。公司業(yè)務(wù)方面也在超厲害的共同創(chuàng)辦人兼執(zhí)行長 Jeff Hu 的幫助下,有一些穩(wěn)定的客戶。但我後來意識到:
於是我現(xiàn)在在 Berkeley 的校園裡寫下這篇文章,在這裡認(rèn)識了很多區(qū)塊鏈公司的創(chuàng)辦人,和對區(qū)塊鏈和創(chuàng)業(yè)有興趣的朋友,也成功在拉斯維加斯大學(xué)和最大化學(xué)工廠 BSAF 演講,很慶幸自己又做出了正確的選擇。 自學(xué)的下一步? — 回饋給過去的自己總結(jié)了自己自學(xué)的歷程,我覺得對初學(xué)者最好上手的還是『課程觀念加實作影片』,我學(xué)區(qū)塊鏈時發(fā)現(xiàn)網(wǎng)路上知識非常零散破碎,而且多為英文,不像學(xué)網(wǎng)頁開發(fā)那樣容易,一直想著『如果區(qū)塊鏈也能有很清楚的影片入門教學(xué)就好了』,我就不用到處拼湊知識,能夠更快地上手。 這就是我開始在 Hahow 這個中文自學(xué)平臺上開區(qū)塊鏈入門課的動機。
希望能透過這堂課,讓更多像我一樣對區(qū)塊鏈有興趣的學(xué)生,不用走冤枉路,並且能直接上手寫程式應(yīng)用。而這門課也是讓你試學(xué),『決定區(qū)塊鏈?zhǔn)遣皇悄阋^續(xù)專研的領(lǐng)域』一個很輕量的起點。 網(wǎng)路課程還有一個很大的優(yōu)點就是可以隨時播放或暫停,自己控制學(xué)習(xí)的進(jìn)度,又比學(xué)校直接修課,萬一不喜歡還要痛苦的考試還要自由。
感謝大家!歡迎任何對文章的建議,如果喜歡也可以幫我拍手鼓勵或分享! Thanks for your time reading!! |
|