司徒正美寫給前端開發(fā)者的算法書
“每天學(xué)習(xí)一點點算法”,相信很多被算法“折磨”過的人都曾立下這樣的Flag,并向算法發(fā)出一輪又一輪的進攻。
這也是司徒正美老師博客園首頁上的一句話。在那上面,他分享過上千篇技術(shù)文章和隨筆,幫助過許多人學(xué)習(xí)。也因其高超的技術(shù)水平,他被圈內(nèi)的很多人稱為“前端大神”。

再次打開司徒正美老師的博客園網(wǎng)站,思緒萬千。2020年3月31日,平靜的下午,前端圈大神司徒正美老師去世的噩耗傳來,我仍然記得當(dāng)時辦公室里編輯老師滿臉焦急的錯愕表情,微博上人們開始討論起來,大家不相信這個消息是真的。

司徒正美(真名鐘欽成),著名的 JavaScript 專家,曾在去哪兒網(wǎng)擔(dān)任前端架構(gòu)師,立志做考古學(xué)家的日語系工程師,穿梭于二次元與二進制間的“魔法師”,做過陶藝,寫過小說,涉獵Java、Ruby、JavaScript,常年活躍在開源社區(qū)。
私下里,大家對他的印象是技術(shù)很厲害但不善言談,不過只要他一說到技術(shù),便可以滔滔不絕。他樂于分享,日語很好,喜歡動漫,喜歡二次元,是個喜歡思考的有意思的人。工作的繁忙和生活的無限重復(fù)沒有阻擋他堅持輸出的腳步,早在2014年,他曾出版過前端框架類圖書《JavaScript框架設(shè)計》,此書上市大受好評。
據(jù)他說,因當(dāng)時在博客園輸出了上百篇文章,于是三四個出版社編輯來找他出書,但他當(dāng)時并沒有答應(yīng)。直到他確定自己能hold這個大標(biāo)題,他才聯(lián)系出版社答應(yīng)寫作??梢哉f,對待技術(shù)他一直都是嚴(yán)謹(jǐn)且熱忱的。

由于有前端讀者反饋了對算法學(xué)習(xí)的需求,希望他能寫一本這類的書,于是我們的編輯老師聯(lián)系了司徒正美老師,問他是否有興趣寫一本,他答應(yīng)了,那一天是2018年7月16日,而這本《JavaScript算法:基本原理與代碼實現(xiàn)》,也就是傳說中的那本未完成的遺作。
三年前這本書的內(nèi)容已經(jīng)完成了大半。當(dāng)初他用“龜速”來形容自己的寫作進度,而寫作的收益跟他個人的收入比起來,微乎其微,但是他卻一直鞭策著自己去寫一本大家都能用得上的書,他害怕自己被淘汰甚至每天都要刷 LeetCode 的算法題,我們一直被他的堅持鼓舞著。
為了讓這本書能以更好的樣子跟大家見面,這里特別要感謝本書的另一作者李曉晨老師,他反復(fù)討論并確認(rèn)書中內(nèi)容,修改書中的代碼,精益求精。并四處奔走為此書尋找推薦人和審校人,他好像一座橋梁連接起讀者、作者和行業(yè)專家。
如今這本《JavaScript算法:基本原理與代碼實現(xiàn)》在他和編輯的努力下,終于付梓出版了。


這本書是司徒正美老師寫給前端開發(fā)者的算法指南,他認(rèn)為前端知識廣闊而繁雜,雖然要懂的東西很多但總是有你掌握不到的地方。前端面試時,算法問題經(jīng)常出現(xiàn),也是決定 Offer 能不能順利拿到的關(guān)鍵。
正如他在前言里寫到的:“我已經(jīng)浪費這么多錢了,踩了這么多“坑”,也做過不少 LeetCode 的題目,所以決定把這些筆記編纂成書,讓大家少走些彎路。每周翻看兩三頁,面試時你就不用心慌。”
本書一共分為 15 章,書中沒有令人望而生畏的數(shù)學(xué)公式與復(fù)雜度證明,而是詳細(xì)地列出解題步驟,他將這些面試時遇到的算法題歸納成可以套用的模板,為了方便大家記憶,他還針對每種算法給出多種解,讀者可以根據(jù)自己的需求選取其中一個。
附上本書目錄,通過更易學(xué)習(xí)的章節(jié)設(shè)計,內(nèi)容涵蓋了常見的算法,由JavaScript語言實現(xiàn)。相信會對正處在算法煩惱中的你大有裨益。

本書作者介紹

這本書適合誰讀?

圈內(nèi)大咖推薦本書是一本非常友好的算法書,適合前端工程師學(xué)習(xí)。書中講解了許多常見的數(shù)據(jù)結(jié)構(gòu)和算法,并使用 JavaScript 作為演示語言,講解淺顯易懂,對于算法的應(yīng)用場景也解釋得非常清楚。
——方超
快手研發(fā)總監(jiān)
當(dāng)下越來越多的企業(yè)會用算法題來面試前端工程師,本書是前端大神司徒正美撰寫的面向前端工程師面試的算法書,也是他的最后一本書,如果你有需求,可以讀一讀。
——劉博文(玖五)
《深入淺出Vue.js》作者
阿里巴巴大淘寶前端技術(shù)專家
記得在2017年左右,司徒正美便開始勤于背單詞和做算法,《JavaScript算法:基本原理與代碼實現(xiàn)》大抵是他在渡過算法之海后悟得的秘籍。在這本書里,司徒正美通過淺顯易懂的文字、清晰形象的圖解以及完全使用JavaScript編寫的代碼實現(xiàn),以前端工程師熟悉的上下文形式呈現(xiàn)了數(shù)十種常見算法的解答,能夠幫助前端同學(xué)更好地掌握知識并足以應(yīng)對來自工作或者面試?yán)锏乃惴ㄌ魬?zhàn)。
——乾元
《TypeScript入門實戰(zhàn)筆記》作者
資深前端工程師
隨著前端開發(fā)復(fù)雜度的提高,算法的重要性也逐漸凸顯出來,然而大部分前端工程師不知道如何體系化地學(xué)習(xí)算法,本書使用JavaScript講解了前端領(lǐng)域用到的算法和數(shù)據(jù)結(jié)構(gòu),可以幫助你突破算法的瓶頸,快速提升。
——花果山大圣
獨立開發(fā)者&講師這本書作為司徒正美老師的遺作,我們很榮幸有機會能完成他的遺愿,將他對技術(shù)的思考,以及這些年來對算法的輸出,集結(jié)成書。不管是李曉晨老師還是編輯老師,亦或是為這本書付出過努力的每一個人,他們都希望這本書能讓更多跟司徒老師遇到相同問題的同路人看到,幫助他們解決遇到的問題。我想這也和司徒老師最開始想寫這本書的初衷不謀而合。
時隔三年,再一次翻看知乎和微博,依舊可以看到一些與司徒正美老師有過交集的人,甚至還有一些是他素未謀面的朋友們,寫下的對他緬懷的文字,他們把最好的司徒正美老師留在心里。引用電影《尋夢環(huán)游記》里的一句臺詞:“真正的死亡是世界上再沒有一個人記得你?!倍@個專注、熱忱、樂于分享、喜歡二次元的司徒正美大神似乎從未離開過。
希望這本集結(jié)他多年有關(guān)技術(shù)和算法思考的書,能夠不斷延續(xù),幫助到更多有需要的人。
