- Go程序員面試算法寶典
- 猿媛之家組編 董良松 楚秦等編著
- 1467字
- 2019-09-16 15:11:41
前言
計算機技術博大精深,日新月異,Hadoop、GPU計算、移動互聯網、模式匹配、圖像識別、神經網絡、蟻群算法、大數據、機器學習、人工智能、深度學習等新技術讓人眼花繚亂,稍有遲疑,就會被時代所拋棄。很多IT從業者非常困惑,不知道從何學起,到底什么才是計算機技術的基石。其實,其本質還是最基礎的數據結構與算法知識:Hash、動態規劃、分治、排序、查找等,所以,無論是世界級的大型企業還是幾個人的小公司,在面試求職者的時候,往往會考查這些最基礎的知識,無論你的研究方向是什么,這些基礎知識還是應該熟練掌握的。
本書正是從這些基礎知識點出發,講解了求職過程中常見的數據結構與算法的真題,從而讓求職者能輕松應付算法類的筆試面試題目。本書的出版得到了機械工業出版社時靜老師的大力支持與配合。在寫作風格上,推陳出新,對于算法的講解,不僅使用圖文并茂的方式,而且還輔以示例的講解,目的就是為了使講解更容易讀懂。為了能夠寫出精品書籍,我們對每一個技術問題,都反復推敲,與算法大牛一起反復論證可行性,咬文嚼字,字斟句酌,所有這些付出,只為讓讀者能夠在讀完本書后有所收獲。
雖然市面上同類型書籍很多,也都寫得不錯,但是,我們相信,我們能夠寫出更符合讀者需求的高質量精品書籍。為了能夠在有限的篇幅里面盡可能地展現“干貨”,我們在題目的選擇上下了很大功夫:首先,通過收集近3年以來IT企業的面試筆試算法真題,包括已經出版的相關著作、技術博客、在線編碼平臺、刷題網站等,保證所選樣本足夠大。其次,我們選擇題目的時候,盡可能不選擇一眼就能知道結果的簡單題,也沒有選擇那種怪題、偏題和很難的題,我們原則是選擇難度適中或者看上去簡單但實際容易出錯的題。通過我們的努力,力求所選出來的算法真題能夠最大限度地幫助讀者。在真題的解析上,我們采用層層遞進的寫法,先易后難,層層深入,將問題抽絲剝繭,使得讀者能夠跟隨我們的思路,一步步找到問題的最優解。
寫作的過程是一個自我認識、自我提高的過程。很多知識,只有深入理解與剖析后,才能領悟其中的精髓,掌握其中的技巧,程序員求職算法也不例外。本書不僅具備了同類書籍分析透徹,代碼清晰合理的優點,還具備以下幾個方面的優勢:
第一,本套書籍分多種語言版本:C/C++、Java、C#、Python、PHP、Javascript、Kotlin、Go等,這樣,不管讀者側重于哪一種語言,都能夠有適合自己的書。本書中如果沒有特別強調,代碼實現均默認使用Go語言。
第二,每個題目除了循序漸進的分析以外,還對方法進行了詳細闡述,針對不同方法的時間復雜度與空間復雜度,都進行了詳細分析,除此之外,為了更具說服力,每一種方法幾乎都對應有示例講解輔以說明,對方法是一種更好的輔助講解。
第三,代碼較為規范,完全參照華為公司的編程規范等進行規范編碼。小作坊編碼的時代早已過去,程序員要想在一個團隊中大展拳腳,就離不開合作,而合作的基礎就是共同遵循統一的編碼規范。不僅如此,規范化的編碼往往還有助于讀者理解代碼。
第四,除了對題目的講解,還有部分觸類旁通的題目供讀者練習。本書不可能將所有的程序員求職類的數據結構與算法類題目囊括,但是,本書會盡可能地將一些常見的求職類算法題、具有代表性的算法題重點講解,將其他一些題目以練習題的形式展現在讀者面前,以供讀者思考與學習。
本書中有部分思想來源于網絡上的無名英雄,無法追蹤到最原始的出處,在此對這些幕后英雄致以最崇高的敬意。沒有學不好的學生,只有教不好的老師,我們希望無論是什么層次的讀者,都能毫無障礙地看懂書中所講內容。如果讀者存在求職困惑或是對本書中的內容存在異議,都可以通過郵件(yuancoder@foxmail.com)聯系作者。
猿媛之家
- 從零開始構建企業級RAG系統
- Mastering JavaScript Functional Programming
- Mastering Entity Framework Core 2.0
- FreeSWITCH 1.8
- Building a RESTful Web Service with Spring
- Julia for Data Science
- Orchestrating Docker
- C語言程序設計與應用實驗指導書(第2版)
- UI動效設計從入門到精通
- Flink核心技術:源碼剖析與特性開發
- Kohana 3.0 Beginner's Guide
- Visual C#(學習筆記)
- Python程序設計教程
- 微信公眾平臺開發最佳實踐
- 軟件自動化測試實戰解析:基于Python3編程語言