先來自我介紹:git
老家農村,家裏好不容易把我送到大城市讀書,大學非985,211,但在咱們老家,能出一個本科大學生也是很是不容易的。由於農村信息的相對閉塞,我對大學專業一無所知,加上分數並不是前茅,最後被調劑一個我並不喜歡的專業,這裏就不透露本身是什麼學校了,只能說畢業以後爲了能多賺點,選擇了送外賣,這一送就送了將近3年的時間。程序員
爲何學編程?面試
接觸到編程是一次很偶然的機會,有一次送外賣,對方是本身的學長,他是計算機專業的,畢業後就進了一線互聯網公司,那以後就偶爾有跟他聊人生聊將來,一次契機,他勸我何不自學編程,來作程序員?後來考慮了好久,本身也綜合對比了各行各業的發展,最後決定學習編程,選擇了Java方向。算法
下文,我會對個人自學方法、自學資料以及個人面試經歷進行一個分享編程
拼多多一面(大約1h左右):數組
講一講 final / finally的區別網絡
try-catch-finally在不一樣狀況下的執行順序?框架
finally裏return和外部的return誰覆蓋誰?異步
wait / notify / notifyAll說一說?性能
notify喚醒線程以後能夠馬上執行嗎?
sleep / wait的區別?
Java 的線程有哪些狀態?
Java 堆的分佈?
爲何要分出兩塊 survivor?
Mark-Copy 的流程?
什麼狀況下會觸發 Full GC?
Full GC 和 Minor GC 的耗時比例?
老年代和新生代的空間大小比例?
HTTP 狀態碼列舉一些?
connect 失敗會報什麼異常?
IO 分類?NIO 是阻塞的仍是非阻塞的?
彙集索引、聯合索引、覆蓋索引解釋一下?
口頭設計一個表和索引,而後說一說哪一種查詢會走聯合索引,哪一種會走覆蓋索引?
聊項目,以及項目的困難點?
手撕算法環節:有序數組 / 鏈表轉平衡二叉樹
拼多多二面(大約50分鐘左右):
自我介紹
聊聊項目
TCP 的流量控制和擁塞控制說一說 查問:接收窗口的空間是怎麼分配的?是否是多個 TCP 鏈接共用一塊內存仍是各自有獨立的?
TCP 和 UDP 的區別
網絡的五層模型,每一層有什麼協議?
PING 命令用的是什麼協議(是 ICMP,我沒答上來)
OS 的內存管理、進程管理說一說
物理內存空間、虛擬內存空間?
虛擬內存的做用?
內存的連續空間不夠分配的時候怎麼處理?全局內存的空閒空間不夠分配的時候怎麼辦?
快排和歸併的複雜度,快排的退化
平衡二叉樹各類操做的時間複雜度
AVL 樹和紅黑樹的區別?
紅黑樹的應用?JavaTreeMapAPI 爲何不用 AVL 樹?
B 樹和 B+ 樹的應用?有什麼區別?爲何 MySQL 用 B+樹?
Redis 和 memcache 的區別?Redis 何以高性能?(這裏我暴露了本身的菜雞水準,面試官耐心地指正了我對於他倆的錯誤認知)
異步非阻塞 IO 瞭解嗎?(扯了點事件分發器的 Proactor 模型,面試官承認了)
手撕算法:二分查找變形題,浮點數的等差數列,一開始公差是1.0,在某一個位置公差變爲0.1,找到該位置
看你寫的以前送外賣?爲何畢業以後沒有從事本身本專業內的工做?(我回答的想多賺錢)
你的Java是自學的?怎麼堅持下來的?期間遇到什麼困難嗎?
手頭上有哪些 offer ?
拼多多三面(HR面大約30分鐘):
對拼多多有什麼瞭解?給拼多多作一個畫像?
家是哪兒人?對於將來的就業城市有什麼想法?
有女友嗎?
目前面了哪些公司?對於目前投的公司有什麼偏好嗎?
有想象過在拼多多工做的一天嗎?對薪資有什麼要求?
從哪些渠道瞭解互聯網相關的訊息?
若是拼多多把你掛了,你以爲會是什麼緣由?我和你聊了二十分鐘,你以爲你的哪些非技術性的綜合素質可能不如其餘候選者?
薪資
你有什麼想問的嗎?
拼多多三面面試題答案:
(1)觀看零基礎學習視頻
看視頻學習是最快捷也是最有效果的方式,跟着視頻中老師的思路,首先學習Java語法基礎,再到框架,從基礎到深刻,仍是很容易入門的。至於視頻,網絡上實際上有一大堆,我這邊是學長給個人珍藏版,應該是搜索不到,若是你須要,固然我也能夠免費分享給你。
Java零基礎視頻(五十五個階段)
(2)閱讀前輩的一些書籍和筆記
當我學到必定基礎,有本身的理解能力的時候,會去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細記載了他們對一些技術點的理解,這些理解是比較獨到,能夠學到不同的思路。
書籍和筆記
SpringBoot核心技術筆記
(3)動手實操作一些小項目
光學理論是沒用的,要學會跟着一塊兒敲,要動手實操,才能將本身的所學運用到實際當中去,因此當我把框架學完以後,就本身去動手去作了個小的商城項目。關於這個商城項目的教程,你有須要我也能夠分享出來。
(4)加一些社羣,找一個好師傅
若是真考慮要轉行學習Java,那就多交一些志同道合的朋友,甚至是去找一個好的師傅帶帶你,這是我給你最真實的建議。加入一些社羣,參與到一些技術討論時,可以極大地提高我本身的學習積極性,另外找一個師傅帶帶本身,學習和實操過程當中遇到的不少問題就比較好解決一些,整個效率也就提高得比較快了。
對於轉行作程序員,我能成功靠什麼?兩個關鍵詞,決心和毅力!
若是你下定決心,作了選擇,就必定要堅持到最後。
文章中所涉及到的一些學習視頻、學習資料或是項目,均可以避免費分享出來,若你須要這些:
https://gitee.com/biwangsheng/personal.git
現在我已成功轉行,如今在這個行業只算得上一個新人,但隨着歲月增加,我會慢慢成爲一名「老猿」,但我也會依然把本身這顆學習的心保持到老。一樣的,我也但願你在青春迷茫時,能不要放棄,由於每一個人,都有柳暗花明的那一刻。