91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

后臺開發應該讀的書

發布時間:2020-06-30 15:52:23 來源:網絡 閱讀:3512 作者:張小方32 欄目:建站服務器

根據我的經驗來談一談,先介紹一下我的情況,坐標上海,后臺開發(也帶團隊了),某知名互聯網公司。

目前主流的有C++和JAVA,C++我的經驗稍微多一點。我就說說我關于C++方面的學習經驗。如果您是學生,臨近畢業,沒有那么多時間讀許多書,可以按下面列舉的重要程度來參考。

首先,我覺得你應該好好準備算法和數據結構,做到常見的算法和數據結構知識點都能非常熟悉,這樣的話你畢業求職的時候可以輕松拿一些大廠(BAT等)的offer。我本人非科班出身,一畢業之后各種摸爬滾打。一畢業去大廠個人覺得有兩個好處,第一,你的收入會比一般的的小公司高很多,小公司招人要求相對低一些,薪資給的也少很多,它們是實實在在招能干本職工作活兒的人。第二,你的起點也會比一般進入小廠的同學高。我這里并不是歧視小廠,只是說一種普遍的情況。我本人也是從小廠一路過來的。這里我是強調算法和數據結構的重要性。尤其是應屆生求職,更應該去好好準備一下這個,因為這個東西是原理性的基礎。企業在面試應屆生時不會過分要求項目經驗和各種操作系統原理、網絡通信原理之類的東西,而唯一能考察一個人的基本功的就是這個了。我是社招進大廠,基本上算法和數據結構這類問題問的比項目經驗本身要多許多。但是社招又不太一樣,因為除了要準備算法和數據結構以外,還得準備有項目經驗、了解操作系統原理、熟悉網絡通信、了解數據庫、熟悉要求的各種開源框架和技術等等,實在太多了,即使再怎么準備也不一定能一舉拿下。相反,應屆生基本上只要好好準備算法和數據結構的東西,大學其他專業課學的不是太差,這基本上就是進大廠的捷徑。圖書方面,你可以使用你們計算機專業的相關教材,也可以使用《數據結構與算法分析:C語言描述》《算法導論》這一類嚴謹的教材,當然,平心而論我是不敢推薦《算法導論》的,因為這一本書實在是太大部頭了,沒有好的數學知識,真的很難啃。如果想看一下比較幽默輕松類的書,可以看看程杰的《大話數據結構》。

其次,如果你學有余力,可以看看操作系統原理方面的書籍,當然也可以使用你們的教材,我這里推薦一本我看過的吧,Tanenbaum.A.S《現代操作系統》,Tanenbaum是荷蘭人,也是Linux之父Linus Torvalds操作系統方面的啟蒙老師。當然,我的建議是這種書畢竟流于理論知識,也不一定要看完,但一定將一些基礎概念,如進程線程內存模式等基礎概念看懂理解。你如果還有時間強烈推薦看看俞甲子的《程序員的自我修養:鏈接、裝載與庫》,這本書同時涉及到了Windows和linux兩個操作系統平臺,用各種輔助工具剖析了程序從源碼到二進制文件再到裝載到進程地址空間里面的各個細節,甚至連進程地址空間中的堆結構、棧結構也分析得清清楚楚,同時也分析了C Runtime(CRT)、glibc這樣的操作系統接口庫的原理和執行邏輯,是一本實實在在難得的幫你實戰操作系統原理的一本好書。我特別喜歡這個書中序言的一段話:

? ?

“CPU體系結構、匯編、C語言(包括C++)和操作系統,永遠都是編程大師們的護身法寶,就如同少林寺的《易筋經》,是最為上乘的武功;學會了《易筋經》,你將無所不能,任你創造武功;學會了編程“易筋經”,大師們可以任意開發操作系統、編譯器,甚至是開發一種新的程序設計語言!”

再次,你學這些東西是為了將來實踐并有產出的,而落實這個產出的東西就是編程語言,如果是入門,我首推C/C++。你只有熟練使用一門編程語言,你才能將你的想法變成現實。注意這里我把C和C++放在一起,但是嚴格意義上說,C和C++還是有點區別的,但是除了語法上的一些細節差異,基本上可以認為是相通的。個人覺得C語言是所有想成為高手最應該使用的入門語言,不要和我說現在很火的python、go這類語言,“玄都觀里桃千樹,盡是劉郎去后栽”。我這里也推薦一本C語言方面的圖書吧,有興趣的可以參考一下:《C語言程序設計:現代方法》。至于譚浩強的書就不要提了,還有就是大部頭的《C++ Primer》,它雖然是一本好書,但實在是太大部頭了。語法層面的東西學會很快,stl庫的東西需要實戰,也不是翻這類字典一樣的書就能很好地掌握的。當然,如果你想掌握好C++,《深度探索C++對象模型》是一定要看的。C++實際編碼技巧還有另外一本非常好的書,介紹了常見的C++編碼技巧《提高C++性能的編程技術》,建議C++開發的把書中說的技巧全部掌握。

接著說,我們再說說網絡方面的,首先網絡基礎方面的書籍,我就沒啥推薦了,現在很多計算機學院也開始使用《計算機網絡:自頂向下方法》這本不錯的教材,如果沒有看過的可以看下。當然還是那句話你一定要看懂而不是看完。比如三次握手和四次揮手的細節,你一定要很清楚。然后你就可以找一本網絡編程的實戰書來看下,如果你沒有使用任何socket api編程的經驗,你可以看看韓國人尹圣雨寫的這本《TCP/IP網絡編程》,這本書從基礎的socket api介紹到比較高級的io復用技術,有非常詳細和生動的例子。如果你是初級水平,強烈建議看看這本書。網絡編程的細節需要注意的地方實在太多了,這本書上都有介紹。很多人尤其是一些學生,寫了一些可以相互聊天的小程序就覺得自己熟悉網絡通信了,但是這類程序拿到互聯網上或者離開局域網,不是連接出錯,就是數據總是收發不全。我當年也是這么過來的,看看這本書,你就能明白許多網絡故障的原因。等你有了一定的網絡編程以后(熟練使用常見socket API),你可以看看游雙的《Linux高性能服務器編程》,這本書給沒有基礎的人或者基礎不扎實的人的感覺是,尤其是書的前三章,這書怎么這么垃圾,又把網絡理論書上面的東西搬過來湊字數,但是如果你有基礎再按照書上的步驟在機器上實踐一遍,你會發現,真是一本難得的、良心的書,桃李不言下自成蹊吧。如果你掌握了這本說上說的這些知識,你再看陳碩老師的《Linux多線程服務端編程》或者去看像libevent這樣的開源網絡庫,你會進一步的得到提升。這也是我學習網絡編程的一些經驗和經歷吧。注意這里有必要提一下:像UNP、APUE、還有《TCP/IP詳解》這一類書,如果你將來不是專門做網絡方面的工作或研究,其實是非常不建議抱著他們看的,因為部頭太大,其次太多理論和Unix的東西,花的時間產出投入比很低的。

接著說,以上說的都是一些基礎的東西。其實不管是什么開發,后臺開發也不例外,你都是需要基于特定的操作系統的,這里不提Windows系統,單單拿linux操作系統來說,既然你選擇做這個方面的開發,你需要熟悉這個操作系統平臺提供的一些常用的API函數,網絡通信方面上文已經說過,除了網絡通信還有如操作文件、操作內存、字符串操作、進程線程系列、線程同步系列(如互斥體、條件變量、信號量)、管道等常用的各種API接口函數。這里的意思是,不是要你背誦記憶每一個接口函數的簽名,而是你要知道何時該用哪個接口,如何用,有什么注意事項。我入門的時候看的是Robert Love的《Linux系統編程》,熟悉這個人的應該知道,google的工程師,他還有另外一本非常有名的書《Linux內核設計與實現》。

最后,我強調一下,如果你是快畢業的學生,面臨著找工作的壓力,應該以算法和數據結構為主。如果你是大一大二或研一這個階段的學生,我上面推薦的書,你還是可以考慮好好咀嚼一下。標準是看懂而不是看完。

再補充一些我覺得要成為高手應該要掌握的東西,先說匯編。雖然第三代第四代語言越來越多,硬件性能越來越好。但是如果你熟練掌握匯編,你就比其他人多很多優勢,你會能透徹地知道你寫的每一行C/C++代碼背后的機器指令的效率。無論是做安全工程還是自己技術提升上都是非常不錯的。這里推薦一本王爽老師的《匯編語言(第3版)》,這本書不厚,語言通俗易懂,你也不用刻意去記憶,基本上當小說書看一下就能很快看完了。匯編實戰類圖書還有另外一本《老"碼"識途:從機器碼到框架的系統觀逆向修煉之路》。我個人是非常喜歡這本書的。當年讀這本書的時候,真的有一種“笑看妻子愁何在?漫卷詩書喜欲狂”的感覺。盡管那個時候連女朋友都沒有——!

另外補充一些我學生時代看過的書吧,我本人是熟悉Windows和linux兩個平臺的開發,這也歸功于我學生時代看過的一些經典書籍,可能有點跑題了,如果不介意,我可以和你說說:

《Windows程序設計》第五版(第六版以后,這個不再是用Windows Native API寫C程序了,而是轉到C#平臺上了),這本書是中國第一代程序的windows啟蒙書籍,你所看到的大多數桌面軟件,如QQ,的開發者可能都是通過閱讀這本書啟蒙起來的。

《Windows核心編程》,這本書搞Windows開發的一定都知道這本書的分量。

《linux內核情景分析》毛德操老師的書,非常的實在,另外他寫了一套關于Windows源碼分析的書,這本書是基于開源的“Windows”ReactOS,書名叫《Windows內核情景分析》。

《編譯系統透視:圖解編譯原理》,編譯原理方面的實踐書。

《編程之美》,關于面試的,主要是一些算法和邏輯思維題實戰。

《重構:改善既有代碼設計》,沒有實際寫代碼經驗不推薦看。

《程序員的修煉之道——從小工到專家》這本書特別推薦學生看一下,能大幅度地提高你實際編碼的技巧和編碼風格。

《代碼整潔之道》同上

《大話設計模式》

《Windows PE文件權威指南》

《Java編程思想》

《Effective C++》系列

《80x86匯編語言程序設計教程》

總的來看,我學生時代主要是側重基礎知識來讀書的。本科四年、碩士三年,多謝這些書幫助我成長,記得大學畢業的時候,我光讀書筆記就有滿滿十個筆記本。

工作以后,也讀了像redis、netty、分布式這一類書。但是那都是工作需要吧。由于我扎實的基礎,當然也可能是因為運氣成分吧吧,所以得到一些注重扎實的技術基礎公司的青睞,給了目前這個階段看起來還不錯的薪資(當然可能還有人比我更厲害,那我這里就貽笑大方了,所以請不喜勿噴)。同時非常感謝我一路上遇到的公司和同事給我的技術上和生活上的幫助。薪資本身不能說明一個人是否成功,我碼這么多字,希望廣大的開發者注重基礎,勿在浮沙筑高臺。尤其是學生,你有大把讀書的機會,一定要珍惜大學時光。畢竟工作以后,尤其是畢業后,面臨著工作、家庭等各種問題,你可能再也沒有心思和完整的時間去學習和提升了。所以前期的積累很重要,畢竟選擇技術這條路,提高技術是升職加薪改善生活水平最直接的方法。最后用我學生時代看到一個技術前輩寫的一首詩來結束吧:

仗鼠紅塵已是癲,?

有網平步上青天。

游星戲斗弄日月,

?醉臥云端笑人間。

七載尋夢像撲火,

?九州誰共我瘋癲?

====================================

關于JAVA方面需要看哪些書籍,我會在我的公眾號再開一個專題來介紹。敬請期待,如果您有興趣,也可以通過下面的公眾號聯系我。

以上是我的經歷,我也曾迷惘和無助過。也有很多朋友找到我,希望我做一些經驗分享和職業規劃指導。為此我特地開辦了一個微信公眾號『easyserverdev』。如果有任何技術或者職業方面的問題需要我提供幫助,可通過這個公眾號與我取得聯系,此公眾號不僅分享高性能服務器開發經驗和故事,同時也免費為廣大技術朋友提供技術答疑和職業解惑,您有任何問題都可以在微信公眾號直接留言,我會盡快回復您。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南和县| 青海省| 元阳县| 东兰县| 安达市| 琼海市| 绥中县| 道孚县| 上栗县| 寿阳县| 若尔盖县| 民权县| 建昌县| 临城县| 株洲县| 延庆县| 随州市| 广河县| 团风县| 新化县| 施甸县| 麻阳| 龙江县| 邓州市| 泸定县| 富宁县| 陇川县| 奉化市| 林州市| 临泉县| 无锡市| 平阳县| 隆林| 崇文区| 达尔| 岳普湖县| 南木林县| 雅安市| 眉山市| 青浦区| 梁河县|