關於Android學習的三個終極問題

2021-02-13 神農和朋友們的雜文集

這三個終極問題是:

學什麼?2015年時還沒有flutter,RN我記得剛起。不知道在那個時候意氣風發的Android紅人們現在是不是會有點感觸了。過了4年了,現在該學什麼?Flutter?AI、區塊鏈?是為了興趣愛好而學,還是為了保家衛國光宗耀祖揚眉吐氣世界更美好而學?

怎麼學?這是在你剛千思萬考解決第一個問題的時候接下來的另一個大難題。是ALL IN新知識?還是新舊知識兩手都要抓?不論哪種選擇,你都很難和長江後浪比精力,比速度。對待新知識、新技術,長江後浪是光腳不怕穿鞋的,靠試錯來成長。

學到什麼程度為止?最後,你開始學了,也知道怎麼學了。然後呢?鑽研技術是無止境的,你要學到什麼程度為止?夠用就行嗎?夠用是在哪個範圍夠用?我自學完寫個demo叫夠用嗎?還是說學完後要給公司創造多少多少價值才行?我公眾號的首篇文章「深入理解的目標是什麼?」和這個問題有一點關聯。

    很多時候,很多人並不會意識到學個知識還有什麼三個終極問題。比如,周圍人都學某某技術,所以我要學。或者,學某某技術有前途和錢途,那我也學。坦白來講,我很羨慕這些人。在和平、穩定的年代,隨大流是穩妥的選擇。我很後悔讀研的最後不該聽了中科院某老師的授課。2007年,他「深度思考」了中國經濟,得出了一個結論,說咱們的經濟列車高速開了這麼久了,肯定會下降的,然後房價會跌。所以,工作後的前3年我看著房價飛漲的時候依然堅信這個結論。幸好父母親果斷,舉債買房。當時我加班夜裡回來後聽說自己背負了100多萬的房貸還很不開心。沒想再過幾年我發現自己居然少背了幾百萬的房貸。

    所以,要是你沒有意識到有這三個問題,你是幸福和幸運的——如果環境沒有發生變化,你也無須改變。

    上面三個問題是我自己在學習問題上的反思——反思的潛意思是我也沒有答案。我覺得也很少有人能給出明確的、普適的答案。我有一種強烈的預感,在關於學習的這三個終極問題上,每個人一定都是在自己的無人區裡探索。

    承認無人區的存在是有百利而無一害的。我以前每次換工作都要找機工的楊總編等朋友請教,但發現他們的意見總是不理想。終於有一天我明白了,原來我在自己的無人區中,裡邊只有我一個人。我的家人,朋友都不能真正理解我,他們解決不了我的困惑。 不過,當在無人區裡掙扎的我知道還有那麼多親人、朋友是支持我的,勇氣就會更足。堅信總會有一天,我會短暫得從無人區出來,然後再走入下一個更高級的,更有挑戰的無人區。

    對了,去年我才發現溫伯格原來早在《技術領導之路》一書裡就曾提到過類似的情況,那一章的中文名叫「領導的成長」。

    接下來,我要把這幾年從事Android開發相關工作中看到的東西結合自己的認識講一講。我覺得它們一定能幫助到在Android技術領域裡謀生的一些兄弟姐妹們。

關於Android學習方面的一些探討

    根據我的經歷和認識,Android技術領域劃分按從下到上可分為三個大的層次:

Android底層開發。這個領域的開發工作主要集中在設備廠商(比如華米OV)、晶片廠商(華為高通)等。最近這兩年,伴隨IoT技術的發展,一些有能力的網際網路公司也需要這方面的人才。

Android系統層開發。這個領域的開發也是集中在設備廠商。但我最近發現頭條這樣的網際網路公司也大量招聘懂Android Framework的工程師。另外,新興的車聯網、車企也對這方面人才有大量需求。

Android應用層開發。這個就不用說了,競爭非常激烈,技術迭代的速度飛快。

    接下來,我會從知識範圍和主要工作內容、學習路線以及需要注意培養的專業素養這三個方面來考察下上述三個Android技術領域。

Android底層開發

    Android底層開發涉及到的知識範圍和主要工作內容如下:

相關焦點

  • Android 學習資料收集
    本書從三個方面來組織內容: 第一, 介紹Android開發者不容易掌握的一些知識點: 第二,結合Android原始碼和應用層開發過程, 融會貫通, 介紹一些比較深入的知識點: 第三, 介紹一些核心技術和Android的性能優化思想.
  • 送個學習Android的技巧給你!
    我稱之為非常好的學習方法:1. 可以讓人保持思考,長久的堅持出題並不是一件非常簡單的事情;2. 針對問題討論,每個人經歷不同,其他人的回答很可能會觸及到你的盲點,幫助你得到新的認知,得到一些新的認知是難能可貴的。記得那天留言很多同學都是索問群號,我是傾向於大家自己組建人數比較少的小群...看來還是有難度的。
  • Android學習之Build環境初探
    這裡略過對android在手機上的文件系統框架的闡述(google或者baidu都能幫助你找到對應的信息),主要看google是如何把生成合適的rootfs的工作整合到它的build體系當中,同時,會順帶看一下CyanogenMod中對應各種機型的build機制。
  • Android開發必備的「80」個開源庫
    http://bxbxbai.github.io/2014/10/07/android-develop-resource/Segmentfault 上回答較好的一些問題https://segmentfault.com/a/1190000004063006Android 界面設計視覺規範http://www.woshipm.com/
  • Android學習(四) — 組件(一)
    通俗講就是我們在Android的App中看到的輸入框,文字(文本框),按鈕,菜單等,這些都是組件,本期我們來了解一部分組件,學習怎麼使用吧~ 」首先我們在Android Studio中新建一個項目,然後就可以開始今天的學習了(●ˇ∀ˇ●)
  • Android架構學習資料
    Android架構學習資料整理,總有一個適合你連結可以點擊閱讀原文獲取個人最近在嘗試
  • android中實例化類專題及常見問題 - CSDN
    轉自:http://www.android123.com.cn/androidkaifa/687.html三、在JNI中構造和實例化Java類 public class AndroidJniDemo4{ public static native
  • android tv放大專題及常見問題 - CSDN
    前面一個是坐標點(100,100)後一個坐標點是(400,400) 說明這二個方法都可以把一個資源通過canvas畫上去,而dispatchDraw通常是用在容器view中的,所謂的容器view就是能有addView
  • android 從後臺啟動頁面專題及常見問題 - CSDN
    這三個Tesseract語言包合起來約有70M左右,APK文件中拷貝語言包到手機存儲中需要幾秒時間,所以我們做了一個啟動頁面,在為用戶展示App第一印象的同時,後臺拷貝這三個語言包。經過比較,知乎日報的啟動頁面有從中心點展開逼進用戶的效果,我們決定利用此效果來設計啟動頁面。最終效果如圖所示:
  • 關於數據分析工具的終極問題
    相信大家來到這裡也是同一個學習目的,就是掌握一些創新的技術知識,並且利用他們來增強自己的實力。那我就不多囉嗦了,直奔今天的主題,先給大家做個分享,再多留一些給大家提問交流的時間 。今天我想分享的是一個非常重要的話題,就是關於數據分析工具,這也可能會影響到大家的職業發展路線。因為選擇一個工具開始學習是要花很多學習成本的。
  • 【Android基礎學習一】Android 常用 adb 命令總結
    #base=/systemexport CLASSPATH=$base/framework/am.jarexec app_process $base/bin com.android.commands.am.Am "$@"還有 SDK sources/android-20/com/android/commands 目錄下:[xuxu:...oid-20/com/android
  • android 不同大小的屏幕專題及常見問題 - CSDN
    例如:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"&
  • 如何自學Android, 教大家玩爆Android
    四大組件學習 這幾個內容的學習可以參考下面幾篇博文: Android中的Menu(菜單)的三種類型菜單的學習 android ListView Android Dialog用法 android Toast大全(
  • [Android] Toast問題深度剖析(一)
    但是,伴隨著我們開發的深入,Toast 的問題也逐漸暴露出來。本文章就將解釋 Toast 這些問題產生的具體原因。本系列文章將分成兩篇:1.異常和偶爾不顯示的問題當你在程序中調用了 Toast 的 API,你可能會在後臺看到類似這樣的 Toast 執行異常:android.view.WindowManager$BadTokenException    Unable to add window -- token android.os.BinderProxy@7f652b2 is not valid; is your
  • Android模擬器和安裝APK文件
    好了進入正題,今天要講的是關於android模擬器和apk鏡像文件的一些事情。一.如何正確的啟動模擬器(早於Android 1.5的開發版本跳過此步) :關於在eclipse裡面如何集成android這些問題就不說了,這寫問題我想還是不用在這裡廢話的。
  • 新課程上線 | 學習使用 Kotlin 進行 Android 開發的最佳時機!
    對於希望獲得新機遇的人而言,即使過去沒有編程經驗,也可以立即開始學習 Android。我們於 2016 年發布了 Android 基礎知識課程,該課程專為零編程經驗的學員打造,並且好評如潮。數萬名學員一邊構建自己的應用,一邊學習著 Android 開發和編程概念。
  • android通過代碼實現的多布局專題及常見問題 - CSDN
    但是這樣就遇到了很多問題。 首先是SeekBar設置setProgressDrawable問題。因為我們的是視頻播放器,所以這個SeekBar需要有背景、緩衝進度和播放進度,最好的方法就是用layer-list 的xml布局實現,類似這樣:<?xml version="1.0" encoding="utf-8"?
  • FileProvider 在 Android N 上的應用
    (ClipData.java:832)當然如果工程的 targetSDK 小於24,暫時還不會遇到這個問題,一旦升級到24及以上,則會立即出現上述問題,所以提早做好預防很有必要,否則等到線上曝出大量的 bug 就很被動了。
  • android布局詳解專題及常見問題 - CSDN
    例如:workspace_screen.xml的布局文件,在另一個布局文件中被重複使用三次,那麼可使用如下的布局代碼:<LinearLayout  androd:layout_width=」fill_parent」  androd:layout_height=」fill_parent」 >  <!
  • 我以為我理解Android的四大啟動模式,直到被打臉
    前言這篇文章的背景來自於周五的時候,有一個小夥伴私聊我一個問題。說實話讓我「頗為震驚」:1、問題看起來很簡單,關於Activity啟動模式…但是的確裡邊的細節觸及了我的知識盲區。2、這個小夥伴發了一個詳細的pdf文檔,看起來也是經常總結~點讚這種學習態度~這裡在分析啟動模式的基礎上,或回答他的問題,或驗證他的猜想。