前言
2017年進大學開始接觸Android,從剛開始接觸就不斷地聽到Android市場飽和,工作難找等消息。雖然當時也非常迷茫,不過由于第一次深入接觸編程語言,再加上自己的一點興趣,就一直堅持下來了。
到現在要畢業了,通過兩個月的面試經歷,確實發現Android崗位比較少,而且通常要求比較高,不僅需要Android開發經驗,往往還需要會React Native,JavaScript等,甚至還期望你能具有IOS開發經驗。
不過作為應屆生還是有些優勢的,那就是一些一線的互聯網公司還是比較看中個人基礎 以及發展潛力的,所以如果能在自己的專業方向上具有扎實的基礎,1-2個實際開發項目以及個人的興趣,還是能夠找到一個滿意的Android崗位的工作的。目前這些素質,自己也很欠缺,通過下面的面試經歷就可以看出來,不過最起碼有個努力的目標,可以好好準備為秋招做準備。
一、管理我們的精力而不是時間
? 弄明白是什么使得我們感覺累??
通常都會存在以下幾種或幾種原因:
- 1)「體力透支」。
- 2)「大腦精力不足,以致無法集中精力」。
- 3)「情緒比較低落、暴躁、興奮」。
- 4)「覺得自己做的事情沒有意義,無法產生興趣」。
? 如何管理精力??
「找到對自己來說最重要和困難的那些任務,不僅要為其預留時間,而且要預留自己精力最充沛的時間。通常來說,早上是精力最好的時候,因此我常常會在早上安排最重要的工作」。
二、一切始于專注
? 如何讓更多的工作盡快完成呢??
這一切都源于專注。專注是提高生產力的靈丹妙藥。我們所承擔的很多工作都有?「“環境切換”的成本」。當我們從一個任務切換到另一個任務時,我們必須要喚醒某些記憶之后才可以重新開始工作。因此,「專注非常重要,專注會讓我們保持高速」。
? 如何更專注??
要進入專注模式,必須克服將自己的思緒集中于單一任務時的那種痛感,但是?「這種痛感和不適只是暫時的,不會持續很久」。
「要想更專注,我們必須激發自己的斗志,對抗各種讓我們分心的事情,只有打敗他們,我們才能升檔到“高速”,將自己送入巡航狀態。當我們進入專注狀態時,需要在心里記住是什么感覺,這將會有利于我們下一次更快的進入專注狀態」。
下面,我列舉一些讓自己?「免受干擾的措施」:
- 1)「電腦 qq、微信 開啟免打擾模式」。
- 2)「將手機調成靜音狀態」。
- 3)「關掉分散注意力的瀏覽器窗口」。
- 4)「禁用屏幕上的彈出窗口」。
三、番茄工作法
? 番茄工作法的基本流程是什么??
「規劃出打算一天之內完成的工作,然后設置一個時長 25 分鐘的定時器,去完成計劃中的第一項任務;在這 25 分鐘之內,我們只專注于這一項任務,心無旁騖」。
「在 25 分鐘結束之后,設置一個 5 分鐘的定時器,休息一下。這就是所謂的一個”番茄鐘“。每 4 個番茄鐘后,我們都需要休息一會兒,通常為 15 分鐘」。
? 如何更高效的利用番茄工作法??
我們需要高效的?「跟蹤自己一天內完成了多少個番茄鐘,并為每天要完成的番茄鐘的數量設定目標。因為番茄工作法只有被當做估算和評估工作的工具使用時,才能發揮出它的真正威力」。
番茄工作法不但可以讓我們全天保持專注,而且可以計劃每天和每周的工作,找出每天自己的時間都用到哪兒去了,激勵自己盡量工作得更富有成效。
我們可以把每周看作是由有限個番茄鐘組成的。想在每周完成一定數量的任務?我們要?「搞清楚自己一周能工作多少個番茄鐘,并相應地設置任務的優先級」。
正確使用番茄工作法教會我?「”設置優先級“的真正價值」。當每周我只有這么多番茄鐘可分配的時候,我必須小心翼翼地使用這些寶貴的番茄鐘。「在使用番茄工作法之前,我一直幻想著自己可以在一周內完成超出自己實際能力許多的工作,過高地估計了自己的時間而低估了完成任務所需的時間。但是,開始使用番茄工作法后,我能準確知道自己一周工作了多長時間,也知道了自己完成了多少個番茄鐘的任務」。
? 怎樣充分利用好 5 分鐘的休息時間??
在 5 分鐘的休息時間里,我們應該?「抵制誘惑,不要在休息時間閱讀電子郵件、閱讀新聞、打電話,不要做對下一個番茄鐘會造成額外壓力的任何事情」。以下是一些比較好的休息方式:
- 1)「喝水」。
- 2)「上廁所」。
- 3)「活動放松」。
- 4)「看窗外」。
- 5)「眼保健操」。
- 5)「睡覺(家中)」。
- 6)「溜達(家中)」。
每當我在進入專注階段之前,我會開始一個番茄鐘,讓它稍后喚醒我,這樣我就可以暫時換上戰略眼光,觀察全局,休息后再次回到專注狀態之中 — 這就是節奏。
四、生產力提升計劃
在平常的工作和學習中我會使用番茄工作法來保持專注,并且用番茄工作法估算和衡量每一項任務要花多長時間。
任務越大,越難被明確定義,大型任務給人帶來沉重的心里負擔。面對大問題時,我們傾向于花更多的時間思考問題本身,而不是采取行動去解決問題。人類傾向于選擇阻力最小的路徑。當面對一項大任務的時候,檢查電子郵件或者泡上一杯咖啡看起來是更容易的路徑,于是拖延隨之而來。
「當我們把任務分解成小塊的時候,這些任務就變得更容易完成,我們對完成任務所需的時間的估算也更精確,也更有可能正確地完成它們。即使有些小任務沒有正確完成,我們也有很多機會改正,而不至于過多地影響大項目」。
因此,通常我都會按照?「年度計劃 => 季度計劃 => 月度計劃 => 周計劃 => 日計劃」?五個層級來對學習目標進行劃分。最終,我會?「把一天的時間分配給一個一個用時不超過4個番茄鐘的小任務」。
1、年度計劃
首先,我們應該列出本年度需要掌握的一些技術點及對應的掌握程度。這里就以我制定的?「部分年度目標」?為例進行說明,如下所示(按重要程度由上至下):
- 1)「具備構建體系化的 APP 性能優化方案與監控的能力,并具有較為豐富的性能優化實戰經驗」。
- 2)「深度掌握 Gradle 自動化構建技術,并能高效地結合編譯插件技術對 APP 的構建流程操控」。
- 3)「具備比較扎實的計算機基礎,熟悉 TCP/IP、HTTP/HTTPS、Linux 操作系統」。
- 4)「熟悉 C/C ++,具備一定的 C/C++ 項目實戰經驗」。
- 5)「具備扎實的 NDK / JNI 基礎、對 熱修復 技術的實現原理及其關鍵細節了然于心」。
- 6)「熟悉 Flutter 項目開發,并對 Flutter 架構的核心實現原理 有較為深入的研究」。
然后,我們再根據需要掌握的技能點分別制定完善的學習計劃。最后,我這里將?「2020 年的學習計劃大綱」?正式公開,思維導圖如下所示:
如何做好面試突擊,規劃學習方向?
面試題集可以幫助你查漏補缺,有方向有針對性的學習,為之后進大廠做準備。但是如果你僅僅是看一遍,而不去學習和深究。那么這份面試題對你的幫助會很有限。最終還是要靠資深技術水平說話。
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術提升。建議先制定學習計劃,根據學習計劃把知識點關聯起來,形成一個系統化的知識體系。
學習方向很容易規劃,但是如果只通過碎片化的學習,對自己的提升是很慢的。
同時我還搜集整理2020年字節跳動,以及騰訊,阿里,華為,小米等公司的面試題,把面試的要求和技術點梳理成一份大而全的“ Android架構師”面試 Xmind(實際上比預期多花了不少精力),包含知識脈絡 + 分支細節。
在搭建這些技術框架的時候,還整理了系統的高級進階教程,會比自己碎片化學習效果強太多。
**點擊:《Android架構視頻+BAT面試專題PDF+學習筆記》**即可免費獲取~
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術提升。希望這份系統化的技術體系對大家有一個方向參考。
/DSkNLaERkbnFoS0ZF)**即可免費獲取~
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術提升。希望這份系統化的技術體系對大家有一個方向參考。