淺談進入大公司“修煉“之路(Android方向)

在知乎上看到的一篇文章讓我受益匪淺:http://www.zhihu.com/question/37483907/answer/89452327 ; 我就大概將其中的我認爲比較重要的點綜合一下,原文更詳細。
                    像文章中說的那樣:大公司(騰訊、阿里、百度...),看重的是綜合能力(數據結構與算法,計算機網絡,操作系統,Java等) 小公司,看重的是實踐能力,項目經驗、學習中是否遇到他們開發中所遇到過的問題,面試偏向於Android裏的關鍵知識。

                    Android學習之路:數據結構與算法,java,安卓,計算機網絡,操作系統,後面是數據庫或是設計模式之類的

一、數據結構與算法:

            推薦書籍:大話數據結構,數據結構與算法分析(java語言描述),劍指offer,進軍硅谷
            推薦在線刷題網站:Leetcode(LeetCode Online Judge),Lintcod(LintCode - 主頁),牛客網(在線編程_C++Java前端經典筆試面試題庫\http://www.nowcoder.com/activity/oj
            1、買數據結構與算法分析(Java語言描述),看完
            2、在Leetcode刷100道題
            3、
然後要分析一些常見數據結構的源碼實現(比如隊列,棧,hashmap之類的),數據結構與算法分析這本書有講一些,可以結合一些博客進行準備。

二、java       

            入門書籍:
                            Java核心技術卷一,Head first in java(如果一點面向對象的概念都沒有那就看這本)

            提高書籍:
                            1、Java編程思想

                            2、 Java虛擬機:深入理解Java虛擬機

                            3、Java多線程:Java多線程編程核心技術,Java併發編程實踐

其實我覺得如果有一定基礎建議直接看Java編程思想,面試中的考點經常都會在這本書中有講到。當然Java虛擬機和多線程這兩塊需要再看一些專門講解的書,每一次java面試考查內容幾乎都離不開這兩塊。

總體來說java考察內容包括以下這些:(找點面試題做,正好複習其中的一些知識和學習不熟悉的知識)
                    1,面向對象的一些基本概念:繼承,多態之類的

                    2, 抽象類和接口

                    3, 靜態類,內部類

                    4, Java集合類,同步和非同步

                    5, Java類加載機制

                    6, Java內存模型和垃圾回收算法

                    7, 線程同步機制(volatile,synchronized,重入鎖,threadlocal),線程間通信(wait,notify)

                    8, 異常處理

                    9, 多線程同步問題,生產者消費者,讀者寫者,哲學家就餐,用java實現

                    10, 瞭解java中設計模式的思想,用了哪些設計模式,有什麼好處


三、Android(就看完三本書,入門書籍跟提高書籍)

入門書籍:第一行代碼。

提高書籍:Android羣英傳,Android開發藝術探索。

上面的書看好了,一般問題不大。主要問的一些問題:

                    1, Activity,Service,BrocastReceiver,Intent,Fragemnet,ContentProvider,這些組件的基礎知識,比如Activity兩種啓動方式,生命週期,四種啓動模式,Service則主要是:兩種啓動方式,生命週期。還有組件之間怎麼通信之類的問題。

                    2, Android的數據存儲方式,數據庫,sd卡,SharedPreferences 這些

                    3, Listview的優化,與scollview的區別

                    4, view狀態與重繪,view的繪製過程,view的事件分發機制,view的事件衝突處理

                    5, Android多線程異步機制,AsyncTask工作原理與源碼實現,Handler,Message,Looper異步實現機制與源碼分析

                    6, Android常見的開源框架(主要是網絡通信,圖片加載這些),瞭解怎麼使用,分析源碼

                    7, Oom和anr異常引發的原因,怎麼解決

                    8, 瞭解一些常見的圖片緩存技術

四、計算機網絡

推薦書籍:計算機網絡自頂向下,tcp/ip協議詳解卷一

主要看:主要看應用層,傳輸層,網絡層,其中傳輸層最爲重要。主要的一些考察內容有:

                1, TCP和UDP的區別

                2, TCP的三次握手,和四次揮手,爲什麼需要三次握手,爲什麼要四次揮手(這兩個爲什麼要考慮非常清楚)

                3, TCP擁塞控制算法(慢啓動,擁塞避免,快速恢復),流量控制算法,滑動窗口協議,選擇重傳。

                4, TCP可靠性是怎麼保證的(通過哪些機制保證)?

                5, HTTP協議報文格式,請求方法字段以及各個方法之間的區別,瞭解常見的響應狀態碼,瞭解cookie機制,瞭解WEB緩存技術(條件get方法)。

                6, DNS協議的各層域名服務器,兩種查詢方式(遞歸和迭代),dns緩存

                7, Udp的特點,適用場景,校驗機制

                8, 從輸入一個網址到最後網頁顯示整個過程發生了什麼?

                9, IP地址組成,ARR,RARP,ICMP協議,路由選擇算法

五、操作系統
                推薦書籍:《Linux鳥哥的私房菜》、《深入理解計算機系統》UNIX環境高級編程》、《linux環境編程》

六、數據庫
            網上找一下,很多數據庫的視頻都是免費觀看的,慕課網、網易雲課堂等。
            學習一門數據庫(Oracle、Mysql) 等。
可能只需要記得簡單的語句就行了,然後範式、一些鎖、主鍵外鍵、索引看一看記住就可以,事務是非常重要的,必須掌握。

七、設計模式
            推薦書籍:大話設計模式

基礎打牢之後再深入學習Android吧!!!


最後:強烈推薦一個面試經驗+複習總結的很好的一篇文章,上面可以找到相應的博客。
地址:www.jianshu.com/p/2e7266c2cee5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章