在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    justjavac:從輟學(xué)到成為Deno核心代碼貢獻者,我的十年編程生涯

    justjavac:從輟學(xué)到成為Deno核心代碼貢獻者,我的十年編程生涯

    【CSDN 編者按】大學(xué)因?qū)W費而輟學(xué),最困難時睡在公園長椅,有遠見的母親讓他走上了編程之路,溫柔智慧的妻子用愛與信任激勵著他秉承初心、奮勇前行。編程十余年,他已在GitHub開源三百多個項目,項目總Star數(shù)位居全球TOP 20。從后端成功轉(zhuǎn)型為前端,成為Deno核心代碼貢獻者的迷渡(網(wǎng)絡(luò)ID:justjavac)在《新程序員004》之「我是程序員」板塊分享了他這一路的成長與感悟。同時,也給新一代開發(fā)者留下了寄語:“學(xué)歷代表過去,能力代表現(xiàn)在,學(xué)習(xí)能力代表未來”。

    作者 | 迷渡 責(zé)編 | 張紅月

    出品 | 《新程序員》編輯部

    2009年,Node.js&Deno之父Ryan Dahl首次在JSConf EU上介紹Node.js,從那時起,他便成為我崇拜的技術(shù)偶像。

    2019年,我收到了一封來自Ryan Dahl的郵件,信中他說來中國了,想約我一起喝杯咖啡,談?wù)凞eno以后的發(fā)展方向。我激動的一晚上沒有睡好,第二天一大早便坐高鐵從天津趕到北京赴約(見圖1)。

    圖 1 Node.js&Deno之父Ryan Dahl與justjavac的合照

    回顧十多年的編程生涯,我在大學(xué)時因為學(xué)費而輟學(xué),最困難的時候也曾經(jīng)睡過天津人民公園的長椅,后來在百腦匯找了份電腦維修工作,業(yè)余時間學(xué)習(xí)了計算機相關(guān)的所有課程。結(jié)婚之后在老婆的督促下開始努力,經(jīng)過十余年的付出,終于迎來了自己的Aha時刻:技術(shù)文章全網(wǎng)訪問量破千萬,如今被Node.js之父單獨約見并一起開發(fā)下一代類Node.js平臺——Deno。

    本文節(jié)選自《新程序員004》,掃描上方二維碼即可訂閱

    學(xué)生時代編程啟蒙

    初中時,我開始接觸電腦,使用的第一門語言是BASIC。那時我所在的初中是我們縣僅有的幾個開設(shè)計算機課程的學(xué)校之一,當(dāng)時電腦還是奢侈品,進入微機室上課需要穿鞋套。每個學(xué)期的計算機課程很少,兩周才上一節(jié)課。還總會出現(xiàn)“今天微機課老師有事,這節(jié)課改成數(shù)學(xué)/語文課”的情況。課程內(nèi)容也很簡單,就是一些計算機的正確開關(guān)機、拼音打字、五筆打字、常用操作,并沒有安排編程課。但微機教科書最后兩章是BASIC編程入門,于是我在學(xué)完計算機基本操作之后就開始自學(xué)BASIC編程,編寫的第一個程序是計算從0累加到100的總和。

    在初三時,我的父親給我買了一臺二手電腦。我在這臺電腦上編的第一個程序是VBA,主要是使用VBA腳本在Excel中處理了我整個初三上半年的成績。閑暇之余,也會玩一些游戲,如《紅色警戒》。

    到了高中,學(xué)校的電腦課程主要圍繞WPS和一些軟件操作教程。彼時的我從計算機雜志里面扣下來一張3.5寸軟盤,在電腦上安裝了Pascal編譯器,也進行了一些簡單的編程嘗試。不過家里的電腦最主要的用途還是用來玩游戲,放假時,我經(jīng)常邀請同桌一起來家里玩《雷電》。但是好景不長,沒過多久這臺電腦平白無故的就壞了,也一直沒修。到現(xiàn)在我也不知道這臺電腦到底是年久失修壞的還是“人為的故意”損壞??傊钡礁呖冀Y(jié)束,我再也沒有寫過程序。

    人生的兩個轉(zhuǎn)折點:選擇與放棄

    當(dāng)填報志愿那天來臨時,我的媽媽做了一個影響我直到現(xiàn)在的決定,這也是我人生的第一個拐點。當(dāng)時我還在猶豫填報什么專業(yè)的時候,母親對我說:“現(xiàn)在比爾·蓋茨是世界首富,學(xué)編程以后肯定吃香,報計算機編程專業(yè)吧”,于是我大學(xué)選擇了軟件工程專業(yè)。

    萬萬沒想到媽媽的話一語成讖,我果然步了比爾·蓋茨的后塵——但是并沒有像比爾·蓋茨一樣成為世界首富,而是像比爾·蓋茨一樣輟學(xué)了,當(dāng)然這些都是后話了。

    還記得2009年對我來說是最尷尬的一年,那年我花掉了家里給我本來應(yīng)該交下學(xué)期學(xué)費的錢,買了一臺高配的筆記本。當(dāng)我打算用一年時間打工賺學(xué)費時,卻被現(xiàn)實無情地打敗了。我和3個同學(xué)一起在網(wǎng)上找了一個飯店服務(wù)生的工作,面試完之后HR告訴我們上崗需要穿西裝。我之前從來沒有穿過西裝,正當(dāng)我猶豫要不要買一件的時候,卻接到了公司的電話,其它3個同學(xué)都應(yīng)聘上了,我落榜了。

    后來,我靜下心來回歸到了正常的大學(xué)學(xué)習(xí)與生活中。大學(xué)期間,我學(xué)習(xí)的主要課程是C、C++、C#、Delphi,也在圖書館里自學(xué)了Java、PHP、Python。個人而言,我最喜歡的語言是Java和C,于是我給自己取了一個網(wǎng)名叫justjavac。我接觸的第一個開源軟件是FireFox,這也是我頭像的由來,我很欣賞FireFox挑戰(zhàn)IE瀏覽器權(quán)威的故事。

    隨著Node.js的發(fā)布,Ryan Dahl成了我的榜樣和偶像,我做夢都幻想自己將來能成為像Ryan Dahl一樣的軟件工程師。

    于是,我開始關(guān)注國外的最新技術(shù)以及開源相關(guān)的動態(tài)。就這樣大學(xué)過去了一年,我鼓起勇氣向開源軟件Tomcat的Servlet組件提交了個人的第一個代碼補丁。那時候GitHub還沒有誕生,我在查閱了很多向開源軟件貢獻代碼的資料后,將代碼補丁以郵件的形式發(fā)給了Tomcat維護者,經(jīng)過幾輪的討論,我的補丁被拒絕了。雖然這次參與開源失敗了,但這是我邁向開源的第一步。

    大學(xué)期間,我也開始了第一次創(chuàng)業(yè)之旅。我的第一個創(chuàng)業(yè)合伙人叫徐來,他的座右銘“但行好事,莫問前程”深深的影響了我。他是我大學(xué)的班長兼舍友,當(dāng)大部分同學(xué)都找到實習(xí)工作的時候,只有我在宿舍里寫寫程序,而他則在外面接一些做軟件的私活,并讓我和他一起做。后來他對我說要成立一家公司,詢問我是否感興趣一起干。那天,我們聊了很多,也聊得很投機。人生中的第一次創(chuàng)業(yè)便從這時展開。

    沒過多久,我就用到了大學(xué)自學(xué)過的幾乎所有編程語言,儼然成為了一名“全能”工程師,而徐來也支持并認可我做的每一次技術(shù)選型。創(chuàng)業(yè)比打工要辛苦多了,最久一次工作時間是一個月只休息了一天,但一想到是為了自己而拼搏,也就不覺得累了。

    大學(xué)的時光總是美好而短暫,很快就到了畢業(yè)的日子。臨近畢業(yè)的前幾天,老師找到我說,如果能夠補齊此前拖欠的學(xué)費,可以給我補發(fā)畢業(yè)證和學(xué)位證。然而在人生的第二個拐點,我做了一個錯誤的決定。當(dāng)時只是想著“既然我根本就沒怎么去上課,為什么還要補交學(xué)費呢?”于是我拒絕了老師的要求,實則最主要的原因是當(dāng)下確實沒有錢,也因此沒有拿到畢業(yè)證。

    一萬小時定律

    從學(xué)校離開的兩年后,我結(jié)婚了。結(jié)婚前的一個月,一直期待婚姻的我第一次有了恐婚心理。那時的我一無所有:沒錢、沒房、沒車,甚至也沒有給老婆買鉆戒、拍婚紗照。

    我們最初租了一間60多平米的房子,生活的大部分花銷都是由老婆負責(zé),我平時就是靠編程獲得寥寥可數(shù)的工資,即使如此,老婆依然很支持我做的任何事情和決定?;楹笪页司幊讨?,也開始寫寫博客、在社區(qū)回答一些問題。

    不過,有一年的結(jié)婚紀念日,我的老婆突然和我談心時說道:“你知不知道之前咱們租房時,有一次我切著切著菜,把菜都扔地上了,在沙發(fā)上坐了一會兒才又繼續(xù)切。你知道為什么嗎?我在想,我要一輩子過這種日子嗎?后來我想通了,既然我當(dāng)初嫁給了你,就算跟你過一輩子這種日子,我也愿意”。

    這段話深深地觸痛了我,我不應(yīng)該辜負一個深深愛著我的人,我應(yīng)該做些改變。

    不久后我在網(wǎng)上看到了一句話:一萬小時定律,任何一個人只要在某個領(lǐng)域精益求精地鉆研一萬小時,那么他就能成為這個領(lǐng)域的專家。聽上去有點像心靈雞湯,但是不管它是“真雞湯”還是“毒雞湯”,我都喝定了。那晚我和老婆聊到很晚,我告訴她,“一萬小時是多久?如果一個技術(shù)我每天鉆研5小時,一年365天,那么一萬小時差不多就是5年。而5年后我才三十歲左右,別人三十歲可能已經(jīng)遇到中年危機了,而我三十歲能成為一個領(lǐng)域的專家。不過專家這個詞比較虛,現(xiàn)實一點的說法就是雖然我現(xiàn)在一年賺不到3萬,但是我一定要30歲的時候年薪30萬”。

    自此以后,我便把主要精力都放在了JavaScript 上,而且還更加深入的研究了 JavaScript的執(zhí)行原理以及Chrome、V8、Node.js的底層機制。為了研究網(wǎng)頁上的 JavaScript庫,我開發(fā)并開源了一個Chrome插件LibrarySniffer(原 ChromeSnifferPlus),安裝這個插件后,使用Chrome瀏覽任何網(wǎng)頁時都會在插件頁顯示出當(dāng)前頁面用到了哪些JavaScript庫。

    2014年,在我辦了一張雙幣信用卡并支付了5美元的費用后 ,LibrarySniffer終于在 Chrome Web Store上架了。同年我又開發(fā)了另一個插件ReplaceGoogleCDN,將國外的通過CDN直接引入的JavaScript資源替換為國內(nèi)的鏡像資源,可以達到2-50倍的加速效果。第二年,LibrarySniffer收到了一名巴西程序員提交的葡萄牙語言包,這也是我的開源項目第一次受到外國開發(fā)者的關(guān)注。

    結(jié)識狼叔,深入Node.js后端

    我以為LibrarySniffer能受到國外程序員關(guān)注是我的巔峰,沒想到這僅僅只是開始。一個月后我收到了某個活動的邀請函,讓我去他們公司做技術(shù)交流。該公司創(chuàng)始人說要上線一個新品,特邀我去做技術(shù)分享,如圖2所示。

    圖 2 我的首次分享

    之后,我也經(jīng)常參加業(yè)界的一些開發(fā)者大會。還記得在天津舉辦的一場200人的開發(fā)者大會上,我在做完JavaScript前端相關(guān)主題演講后,結(jié)識了阿里巴巴技術(shù)專家、國內(nèi)知名Node.js技術(shù)布道者、《狼書:更了不起的Node.js》作者i5ting(狼叔)。

    想必很多經(jīng)常逛Node.js中文社區(qū)的開發(fā)者即使沒聽說過創(chuàng)始人alsotang,也一定聽說過 i5ting。當(dāng)?shù)弥鞘逡苍谔旖騽?chuàng)業(yè)時,我還是吃了一驚。天津被稱為互聯(lián)網(wǎng)的沙漠,而狼叔帶領(lǐng)的Node.js團隊可謂沙漠里面的一顆明珠。我經(jīng)常使用Node.js,不過只是作為工具,真正生產(chǎn)環(huán)境里的后端服務(wù)依然是使用PHP或者Java。

    我和狼叔深入聊了聊Node.js后端,隨后狼叔更是邀請我去參觀他們公司的技術(shù)團隊。狼叔對我說,你研究V8那么深,其實對前端的作用不是非常大,但是對于Node.js后端則很有用。聽完狼叔的勸告,我也開始在公司中引入Node.js作為后端服務(wù),遇到問題則直接呼叫狼叔這個“免費的顧問”,幾乎都可以解決。

    誰曾想天有不測風(fēng)云,一心研究Node.js的狼叔被合伙人給坑了。我約狼叔出來一起吃飯,心態(tài)佛系的狼叔也沒有怨天尤人,只是說了句“程序員斗不過商人”。這句話我太有同感了,因為我第二次創(chuàng)業(yè)時也是被合伙人給坑了。我安慰他說,你雖然離開天津了,但是我繼續(xù)留在天津扛下Node.js的大旗。狼叔笑道:“就算我不走,你也是天津 Node.js屆的扛把子”。

    狼叔比我小,平時他喊我哥,我喊他叔。在隨后的幾年里,每當(dāng)狼叔來天津都會和我一起敘敘舊,而我如果去到了狼叔所在的城市也會找他一起聊聊天。最近幾年,我在維護 Deno的過程中也向狼叔請教了很多Node.js的知識點。

    圖3 左起依次是umijs作者sorrycc(云謙)、i5ting(狼叔)、justjavac(迷渡)

    成為Deno核心代碼貢獻者

    2017年,我收到騰訊TFC前端大會的邀請,去分享V8、JavaScript相關(guān)內(nèi)容,這是我第一次被BAT大廠邀請。會后知名前端開發(fā)者winter曾問我,“你在天津哪家公司任職,為什么會用到這么深入的V8場景”。我回應(yīng)道,“其實我們公司根本用不到這些,研究V8純粹是我的個人興趣”。當(dāng)他問為什么不去騰訊、阿里、字節(jié)跳動時,我回答說,比較戀家,娶了個天津老婆,所以也就不想去北上廣了。

    圖4 上排中間 winter(寒冬),中排中間 justjavac(迷渡)

    2018年,Ryan Dahl向社區(qū)宣布正在開發(fā)另一個JavaScript/TypeScript運行時平臺——Deno。我第一時間下載了源碼并編譯了一個可執(zhí)行文件,我在使用后發(fā)現(xiàn)Deno的Bug還非常多,畢竟才剛開發(fā)不久。彼時網(wǎng)上對Deno也存在兩種截然不同的態(tài)度,一種是崇拜,另一種是質(zhì)疑,甚至出現(xiàn)了Deno的issue被垃圾信息充斥的局面。但是,只顧在 issue上發(fā)泄不滿解決不了任何問題。彼時,我便在思考,既然Deno問題這么多,為什么不幫它改進呢?于是,我開始了Deno開發(fā)之旅。

    起初我也僅僅是幫Deno改一下Bug,但當(dāng)我得知Deno是想做一個兼容瀏覽器及Web API平臺后,我便新建了一個開源項目,為Deno開發(fā)WPT(Web-Platform-Tests Suite,Web平臺測試套件),然后幫助Deno實現(xiàn)和改進了url、console、encode/decode、timmer等API。

    隨著越來越多的開發(fā)者開始使用Deno,新問題不斷涌現(xiàn)。由于TypeScript的整套工具鏈都是基于Node.js開發(fā),這就導(dǎo)致了當(dāng)使用VSCode開發(fā)Deno時會出現(xiàn)波浪線標(biāo)紅警告,于是我開發(fā)了一個 VSCode擴展和一個TypeScript Service Plugin來解決這個問題,很快這個擴展便受到了國內(nèi)外很多社區(qū)的推薦,甚至得到Deno之父Ryan Dahl的關(guān)注。

    2019年,Ryan Dahl和我見面時也當(dāng)面感謝我為Deno開發(fā)了這個擴展。與此同時,另一位開發(fā)者axetroy(鐵手) 也一直為這個擴展添加功能。后來我老婆懷孕了,我對社區(qū)的參與也少了很多,于是axetroy基于我的代碼新建了一個項目繼續(xù)開發(fā)并完善這個擴展。

    在Deno發(fā)布1.0正式版的當(dāng)天,我聯(lián)系Ryan Dahl并希望把該擴展放到Deno的官方倉庫。我目前最遺憾的一件事就是由于當(dāng)時選擇了直接把我的項目復(fù)制到官方倉庫而導(dǎo)致了axetroy代碼沒有合并進來。

    后來,我又搭建了Deno中國加速鏡像服務(wù),讓國內(nèi)開發(fā)者更加方便地學(xué)習(xí)和使用 Deno。將deno.dev域名送給Ryan Dahl 作為Deno Deploy的官方域名。開發(fā)了Deno的多版本管理工具dvm(Deno Version Manager)。

    這幾年我不斷被各種技術(shù)研討會、組織、企業(yè)、個人邀請去做Deno技術(shù)演講。

    然而我并沒有止步于Deno,2020年華為開源了HarmonyOS(鴻蒙)系統(tǒng),當(dāng)我得知鴻蒙系統(tǒng)也是用了一個輕量級JavaScript引擎時頓時來了興致,當(dāng)晚便下載了鴻蒙的源碼開始研究,并寫了一篇逐行分析鴻蒙JavaScript框架源碼的文章,還為鴻蒙修復(fù)了多個bug,不久后收到了鴻蒙團隊寄來的一個開發(fā)版,從此以后再也不用在模擬器上調(diào)試了,而可以直接使用真機了。

    總結(jié)

    自我第一次參與開源到現(xiàn)在十余年,已經(jīng)在GitHub上開源300多個項目,根據(jù)第三方數(shù)據(jù)統(tǒng)計目前獲得的總Star數(shù)排名全球前20。我感覺自己非常幸運,從后端轉(zhuǎn)型到前端后就趕上了JavaScript的飛速發(fā)展,也見證了HTML5、ES6、CSS3等技術(shù)的發(fā)展歷程。最后想送給每位開發(fā)者一句話“學(xué)歷代表過去,能力代表現(xiàn)在,學(xué)習(xí)能力代表未來”。

    二十年前,《新程序員》創(chuàng)刊時,我們要全面關(guān)注軟件人的成長。今天,我們依然初心不變:在一行行代碼的背后,是一顆顆鮮活的開發(fā)者想要改變世界的雄心壯志。

    因此,《新程序員004》從 C++之父 Bjarne Stroustrup、C# 之父 Anders Hejlsberg、MySQL 之父 Michael “Monty” Widenius、PostgreSQL 全球開發(fā)組聯(lián)合創(chuàng)始人 Bruce Momjian 等程序員祖師爺,到阿里巴巴副總裁賈揚清、指令集創(chuàng)始人兼董事長潘愛民、Vue.js 作者尤雨溪……48 位技術(shù)大咖,共創(chuàng)我們的程序人生、我們的技術(shù)時代?!缎鲁绦騿T004》已全面上市,歡迎訂閱!

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月11日 15:20
    下一篇 2022年7月11日 15:21

    相關(guān)推薦

    • ios手游模擬器(手游模擬器ios)

      本文主要講的是ios手游模擬器,以及和手游模擬器ios相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 哪個iOS模擬器能多開手游賬號?可以推薦個好用的模擬器給我嗎…

      2022年11月27日
    • 我國首臺130噸級重復(fù)使用液氧煤油補燃循環(huán)發(fā)動機試車成功

      新華社西安11月26日電記者26日從中國航天科技集團六院獲悉,由該院自主研制的首臺130噸級重復(fù)使用液氧煤油補燃循環(huán)發(fā)動機兩次起動試車取得圓滿成功。 該型發(fā)動機是瞄準(zhǔn)我國新一代運載…

      2022年11月27日
    • 世界領(lǐng)先!我國已應(yīng)用于新一代戰(zhàn)機→

      本文轉(zhuǎn)自【央視軍事】; “3D打印技術(shù)在飛機上的應(yīng)用 我們已達到規(guī)?;?、工程化 處于世界領(lǐng)先位置” 如何運用3D打印設(shè)備 生產(chǎn)新一代戰(zhàn)機的零部件? 規(guī)?;?工程化 3D打印件批量裝…

      2022年11月27日
    • cad連續(xù)標(biāo)注快捷鍵(cad連續(xù)標(biāo)注快捷鍵)

      本文主要講的是cad連續(xù)標(biāo)注快捷鍵,以及和cad連續(xù)標(biāo)注快捷鍵相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 cad中連續(xù)標(biāo)注快捷鍵 CAD尺寸標(biāo)準(zhǔn)快捷命令:DL…

      2022年11月27日
    • 計算機網(wǎng)絡(luò)技術(shù)論文(計算機網(wǎng)絡(luò)技術(shù)論文七千字)

      今天小編給各位分享計算機網(wǎng)絡(luò)技術(shù)論文的知識,其中也會對計算機網(wǎng)絡(luò)技術(shù)論文七千字進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 計算機網(wǎng)絡(luò)方面的論文3000字…

      2022年11月26日
    • 游戲平臺有哪些(游戲平臺有哪些)

      簡要回答 游戲平臺指的是多人通過互聯(lián)網(wǎng)在線游戲的平臺,例如qq游戲,聯(lián)眾世界,浩方電競平臺,VS競技游戲平臺等,只要你下載平臺,下載相關(guān)游戲,就能實現(xiàn)對戰(zhàn),擺脫了局域網(wǎng)的限制。 詳…

      2022年11月25日
    • CBA天津隊官宣:與外援大衛(wèi)-詹姆斯完成簽約

      央視網(wǎng)消息:北京時間11月25日,CBA天津隊官方宣布,與外援大衛(wèi)-斯科特-詹姆斯完成簽約,他將身披31號球衣代表天津隊出戰(zhàn)。 大衛(wèi)-斯科特-詹姆斯,出生于1996年11月7日,身…

      2022年11月25日
    • 《原神》3.2無相交響詩第一天無相之冰怎么打?無相交響詩攻略

      原神3.2無相交響詩第一天無相之冰怎么打?最近新版本3.2版本的無相交響詩活動又開啟了,不少玩家還不清楚具體的玩法,下面一起來看一下原神被隱去的原神3.2無相交響詩第一天無相之冰打…

      2022年11月24日
    • 重大突破!水電機組核心控制系統(tǒng)首次實現(xiàn)全國產(chǎn)化

      今天(24日),由我國企業(yè)自主研發(fā)的新一代繼電保護系統(tǒng)在瀾滄江中下游的小灣水電站正式投運。這意味著被稱為水電站“大腦”的核心控制系統(tǒng)全面實現(xiàn)國產(chǎn)化,這也是我國水電控制系統(tǒng)一項重大技…

      2022年11月24日
    • 免費清理c盤的軟件(清理c盤空間不影響系統(tǒng))

      電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤空間不足造成的。 即使電腦配置再好,或者硬盤再快,如果長時間沒有打掃C盤,打開文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時候呢不要去…

      2022年11月24日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息