⑴ 碩士畢業程序員找工作準備階段應該看些什麼書
技巧:
《程序員面試寶典》這本書有Java、C++等各種版本,主要介紹筆試面試常考的題,有些知識點真的很細,非常值得看。
數據結構和演算法:
《編程之美》裡面的編程題經常考到,有些可能比較難。
《劍指offer》這個是強烈推薦的,掌握解決問題的思路很重要。比如以空間換時間、動態規劃等。
《數據結構》這個不用多說,鏈表、樹、圖是經常考到的。
《演算法導論》有精力的話,可以選擇性的看一看。
《編程珠璣》
語言:
《深入淺出MFC》
《深度探索C++對象模型》介紹C++面向對象中的構造函數、虛函數等,看完之後能理解程序的運行結果了。
《C++ Primer》大量C++的基礎,不過基礎不太好的同學建議看譚浩強的《C++程序設計》。
《Effective C++》
《Java編程思想》
《大象Thinking in UML》
《JavaScript 權威指南》
《C++標准程序庫》
《STL源碼剖析》
設計模式:
《設計模式》
《HeadFirst設計模式》
腳本語言:
《Python學習手冊》
掌握一門腳本語言很必要,最好有工程實踐。
操作系統方面:
《linux程序設計-鳥哥的私房菜》。
《UNIX網路編程》
不但要會基本命令,最好能在linux環境下有編程經驗。
《深入理解計算機系統》個人覺得這本書並不好。
資料庫:
沒有發現更好的,要會基本的SQL命令。
⑵ 《劍指Offer名企面試官精講典型編程題》epub下載在線閱讀,求百度網盤雲資源
《劍指Offer》(何海濤)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/1rfODCpsrYfnt5l5lBNKn1Q
書名:劍指Offer
作者:何海濤
豆瓣評分:8.3
出版社:電子工業出版社
出版年份:2012-1
頁數:260
內容簡介:
《劍指Offer:名企面試官精講典型編程題》剖析了50個典型的程序員面試題,從基礎知識、代碼質量、解題思路、優化效率和綜合能力五個方面系統整理了影響面試的5個要點。全書分為7章,主要包括面試的流程,討論面試流程中每一環節需要注意的問題;面試需要的基礎知識,從編程語言、數據結構及演算法三方面總結了程序員面試的知識點;高質量的代碼,討論影響代碼質量的3個要素(規范性、完整性和魯棒性),強調高質量的代碼除了能夠完成基本的功能之外,還能考慮到特殊情況並對非法輸入進行合理的處理;解決面試題的思路,總結在編程面試中解決難題的常用思路,如果在面試過程中遇到了復雜的難題,應聘者可以利用畫圖、舉例和分解復雜問題3種方法化繁為簡,先形成清晰的思路再動手編程;優化時間和空間效率,介紹如何優化代碼的時間效率和空間效率,讀完這一章讀者將學會常用的優化時間效率及空間換時間的常用演算法,從而在面試中找到最優的解法;面試中的各種能力,本章總結應聘者在面試過程中如何表現學習能力和溝通能力,並通過具體的面試題討論如何培養知識遷移能力、抽象建模能力和發散思維能力;兩個面試案例,這兩個案例總結了應聘者在面試過程中哪些舉動是不好的行為,而哪些表現又是面試官所期待的行為。
作者簡介:
何海濤,現思科高級軟體工程師,曾先後就職於Autodesk和微軟。分別於2003年和2006年於浙江大學獲得計算機專業學士和碩士學位。主要關注程序員求職應聘領域、以及軟體設計、開發和調試技術。著有《劍指Offer——名企面試官精講典型編程題》一書。
⑶ 《劍指Offer名企面試官精講典型編程題》epub下載在線閱讀全文,求百度網盤雲資源
《劍指Offer:名企面試官精講典型編程題(第2版)》(何海濤)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1QGTmDhQ7es6PzMgENMbJgw
書名:劍指Offer:名企面試官精講典型編程題(第2版)
作者:何海濤
豆瓣評分:8.8
出版社:電子工業出版社
出版年份:2017-5
頁數:348
內容簡介:
《劍指Offer:名企面試官精講典型編程題(第2版)》剖析了80個典型的編程面試題,系統整理基礎知識、代碼質量、解題思路、優化效率和綜合能力這5個面試要點。《劍指Offer:名企面試官精講典型編程題(第2版)》共分7章,主要包括面試的流程,討論面試每一環節需要注意的問題;面試需要的基礎知識,從編程語言、數據結構及演算法三方面總結程序員面試知識點;高質量的代碼,討論影響代碼質量的3個要素(規范性、完整性和魯棒性),強調高質量代碼除完成基本功能外,還能考慮特殊情況並對非法輸入進行合理處理;解決面試題的思路,總結編程面試中解決難題的有效思考模式,如在面試中遇到復雜難題,應聘者可利用畫圖、舉例和分解這3種方法將其化繁為簡,先形成清晰思路,再動手編程;優化時間和空間效率,讀者將學會優化時間效率及用空間換時間的常用演算法,從而在面試中找到最優解;面試中的各項能力,總結應聘者如何充分表現學習和溝通能力,並通過具體面試題討論如何培養知識遷移、抽象建模和發散思維能力;兩個面試案例,總結哪些面試舉動是不良行為,而哪些表現又是面試官所期待的行為。
作者簡介:
何海濤,現美國微軟總部資深軟體工程師,先後在Autodesk、思科、微軟中國等跨國企業任職。著有《劍指Offer——名企面試官精講典型編程題》、《Coding Interviews: Questions, Analysis and Solutions》(本書英文版)等書。多年來從事軟體開發工作,對軟體設計、開發、調試等均有較深的功底,對 C/C++、C#以及.NET等語言及平台都較為熟悉,對圖形圖像、CAD、設計模式、項目管理等領域均有專業經驗。
⑷ Java學到什麼程度才可以找到工作
非常理解,剛開始學習Java的小夥伴,尤其是那種又沒錢又沒有背景的,剛開始學習Java都關心這么一個問題:到底把Java學到何種程度才能找到第一份工作呢?每個人都很現實,目標都是相當的一致,都是為了能拿到像別人高薪的工作。那到底一個Java初學者要學多少Java知識,才能找到第一份Java工作呢?
在很久以前我曾經寫過一篇關於自己的文章,記錄了我IT職場中第一次面試,當時我的技術水平跟大家差不多,就是剛入門的水準,畢竟是一個剛接觸的小白。但是作為一個剛開始工作的新手,找到一家小型公司的Java開發工作還是比較容易的,畢竟現在最多的就是互聯網公司,每個公司對於員工的要求也是天差地別。比如阿里、華為這樣的公司,他們可能對於學歷要求比較高。而一些只有幾十個人的創業公司,他們更加註重這個人的技術能力、實踐能力、解決問題的能力。
創業型小公司
創業型小公司的特點就是人氣比較少,平時做事情比較雜。在這里我說的是不到百人的創業公司,這樣公司在國內是最多的,以我多年在職場的經驗來看,大多數這樣的創業型公司,他們很難招聘到非常優秀的技術人才。第一個是他們沒有這樣的實力去給他們發工資,第二是比較優秀的人才一定是被大公司挖走的。這樣的公司本身沒有什麼底氣,所以他們對於應聘者要求也會比較低,學歷基本都是不看的,Java基礎知識能良好的掌握,能獨立做幾個Java Web項目,基本都可以應聘上,最基本的CRUD可以獨立完成。對於這樣的公司,已經是不錯了。
這種小型的創業公司招聘人才的渠道非常少,每個月的薪水得不到保障,而且整個辦公環境也比較差,但是工作時間倒是一點都不少。所以,像去這種類型的公司找工作,只要自己真正的學了一些本領,基本上都可以很容易找到工作。
中小型公司
一般定位中小型企業,都是說那些100人以上,500人以下的成熟公司。普遍都是叫不上名字,但是公司還算有發展潛力的,這樣的公司稍微正規一點,整個的辦公環境會好很多,以及一些福利待遇,而且不用擔心發不出來工資的問題。招聘技術人才和培訓人才會有自己的一套標准。他們的要求一般都是大專學歷以上的,對於個人的技術上把關更嚴格一點,除了可以良好的掌握Java基礎知識和項目之外,還會考查你的debug能力,代碼規范、異常處理能力,以及對一些Java高級特性的理解能力,可能最好多用過一些框架。這就要求我們在學習的過程中,多付出精力寫代碼,並且對於一些原理問題要搞清楚。
總的來說,這樣公司在選拔技術人才的時候,標准更加模範化,更加有體系。不會像創業型公司那樣隨意,只要領導拍個板就行。在我看來,他們這樣的公司其實也吸引不到太多優秀人才,但不同的是,確實會有一些能力不錯的公司骨幹。
二三線互聯網公司
這種類型公司范圍非常廣,比如大家常聽說的搜狐、暢游、新浪、360,還有一直萎靡的迅雷、金山、獵豹,甚至是愛奇藝、攜程這類現狀比較不錯的企業等等。這種級別的公司還擠不到BAT TMD等一線互聯網行列,但是如果你能進入這樣的公司,已經是非常不錯了。薪資不會低於年薪40萬。它們這樣的公司對於技術人才的要求就要非常高了。
他們的最低要求就是本科學歷,對Java基礎知識要達到精通的程度,要可以非常熟練的閱讀源碼,如果你沒看過源碼,那麼在源碼方面的面試題一定要好好准備一下。除此之外,一般來說他們還會考察你網路知識、操作系統,考察的不會太難,能把面經上的知識點掌握了就算是比較扎實了。
這種類型的公司一般不會考太復雜的題目,他們招聘的需求一般都是中級程序員,只要知識面能夠廣,考你的題目都能說到關鍵點上面,其實不需要掌握得特別深入,也可以有機會拿到offer。
總結來說,我認為二三線互聯網企業不太可能和戰斗在一線的互聯網公司爭奪人才,所以他們一般爭取的都是二線人才,不需要太優秀,但至少要是中級程序員的水平,所以這種類型的公司對很多Java程序員來說機會還是非常大的。
一線互聯網公司和獨角獸
BAT、TMD等互聯網企業都屬於這類公司,這種規模的公司和二三線互聯網公司的發展差距還是比較大的。公司的人數規模、市場市值、還有股價方面,業務以技術為基礎,因此規模的公司的技術就是互聯網業內最頂尖的技術。比如阿里的雲計算和中間件,頭條的推薦演算法、騰訊的游戲技術等等。
想要進這樣令人羨慕的公司,必須要掌握Java基礎、計算機基礎知識,並且是非常熟練地掌握,你需要深入理解每一個知識點,因為面試官會不斷深入地向你提問,了解你的知識深度,同時,你需要對源碼有所理解,在讀懂源碼的基礎上去理解框架的實現、JDK的實現。分布式、高並發、大數據、演算法這些都是在考察的范圍之內。
另外,非常需要你對JVM虛擬機有非常清晰的認識,不僅僅只是了解簡單的結構,垃圾回收原理,甚至還要知道如何在遇到線上問題時通過JVM調優來解決它們。
同理,你還需要對Java並發編程和網路編程的使用方法與底層實現原理非常熟悉,不僅僅答出NIO和BIO的區別,或者是synchronized和lock的區別,你還需要知道NIO的底層實現epoll是什麼,synchronized對應的mutex lock是什麼,lock和condition的實現原理又是什麼,而lock本身也是通過AQS、CAS操作類等組件來實現的,其中的內容實在太多,絕不只是幾道面試題就可以搞定的。
除此之外,這些公司對資料庫、緩存、分布式技術等方面的要求都會比其他公司要高得多,你最好要搞懂MySQL的存儲引擎、索引和鎖的實現原理,Redis緩存的數據結構、備份方式、底層實現。同時如果你能理解負載均衡演算法、CAP理論,甚至是raft和paxos演算法,以及分布式常用技術如消息隊列、zookeeper等等,那麼無疑也是可以為你加分的技能。
為什麼這些頂級的大公司的要求這么高,因為它們是世界上最好的互聯網公司,要招的自然也是最優秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會考察面試者的演算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,演算法題相對考察理論基礎而言,篩選度更高,可以淘汰的人也更多。
我曾經在阿里呆過兩年,最後離開的原因是實在受不了每天加班到12點的作息時間。但是在阿里的這段日子,成長確實是非常大的。大公司也並沒有大家想的那麼好,除了工資高之外,其他的都是夠人受的,幾乎沒有升職空間,因為人才太多了。幾乎每天都加班,沒有太多的生活體驗。而且條條框框特別多,每天都是在被限制。當然了,如果你有實力進入大公司,最好還是去鍛煉幾年,年輕人嘛,還是闖一闖。如果大家對於學習Java找工作有疑惑,可以隨時跟我交流,這是我建立的Java技術交流qun:前面是四九四,中間是八零一,後面是九三一。有問題多跟有經驗的人交流,獲取到更多的行業信息,有利於我們發展。
畢竟在這樣的公司工作年薪不會低於60萬,所以按照你目前的情況來選擇,你最終會進入什麼樣的企業,你自己心裡應該是有數的。