主頁 >  其他 > 做了五年Android,我頓悟了...

做了五年Android,我頓悟了...

2021-03-03 07:41:35 其他

前言

兩年前, 我寫過一篇《我的三年Android開發總結》,時光流逝, 轉眼間我已經從事Android開發已五年有余,很慶幸我依然從事著我熱愛的Android開發.

我們做技術開發的人都有個習慣,那就是喜歡不定期地進行總結,當然我也不例外.我有個特別的愛好,那就是把我一年前的代碼拿出來和我現在寫的代碼進行對比,看是否有所長進.

一個人回首過去,如果發現現在的自己和一年前或者更久前的自己沒有任何積極的變化的話,那么你這些年就算是虛度光陰了.

回首我這五年, 如果說前三年我是野蠻生長,瘋狂擼碼,較為浮躁的三年,那么這兩年我就是沉下心來,潛心修煉積累經驗的兩年.

作業環境發生變化

我從事Android開發的前三年只在一家公司待過,每天都做著幾乎相同的作業,做的專案也是較為簡單的小專案,一兩個人就能承擔的應用開發,用的也是相對簡單,沒有什么核心競爭力的技術.

但是這兩年來,我接觸到了不少的公司.它們有改革的老國企,有剛剛成立的創業公司,也有已經上市的公司.不同型別、不同行業、不同規模的企業,必然導致作業內容、團隊、企業文化的不同.

相比較我待的第一家公司來說,后面的幾家公司更加尊重我的個人看法,這也是我決定跳槽的原因.雖然我也非常感謝我的第一家公司給予我更多的機會去成長,但是我們出來作業本質上是出于經濟目的的,光談理想而不給予現實的恩惠,一味強調你是公司培養出來的,時間長了是留不住人的.

老舊國企

俗話說,跳槽是有成本的.由于作業內容、團隊的變化,我需要重新學習特定行業的專業知識,重新建立自己的同事關系,這就要求我需要非常強大的學習能力和適應能力.

我的第一次跳槽相對來說是比較失敗的,因為沒有經驗,我居然跳槽到了一個嚴重老齡化的前國企公司,這是一家做汽車硬體的企業,周圍的同事平均年齡35歲以上,每天他們討論的話題都是自己家小孩的學習教育,這讓我這個連女朋友都沒有的單身汪情何以堪.

更讓我無法適應的是它那非常慢的作業節奏,一周的作業半天就完成了,剩下的時間完全不知道做什么…真的是無事可做.

創業公司

后來我被一位非常賞識我的老板看中,加入到他的創業公司,成為了一名創業者.這是一家從事兒童可穿戴設備的公司,作為最早加入的員工之一,我可謂是見證了一家創業公司從起步到發展再到衰落的全程序,而這僅僅只需要一年的時間.

創業公司的坑雖然不少,不過這對我們個人的成長還是非常有價值的.在創業公司的這一年,我做了很多普通程式員這一輩子可能都無法觸及的作業內容,也積累了很多人生哲學.

  • 1.應用開發框架的搭建.
  • 2.產品需求討論.
  • 3.企業文化建設.
  • 4.企業稅務處理.
  • 5.應用的上架和運營.
  • 6.產品生產、組裝、銷售和售后維護.
  • 7.企業商標、專利注冊.

在創業公司,職位沒有明顯的劃分,很多時候你需要做很多與你崗位無關的作業.從好的角度來說,這可以極大地豐富個人的人生閱歷,提升一個人獨立思考、自主學習和解決問題的能力.如果你的經濟能力有一定的支持,那么去創業公司歷練一把也是非常不錯的,萬一它日后發展成為一家獨角獸呢?

上市公司

之后我來到了我現在待的這家公司.比起我之前待的創業公司就我一個Android開發,在這里我算是找到了失去很久的團隊歸宿感.大公司除了人多以外,作業的強度和難度也大大地增加,加班當然也成為了家常便飯,當然與之相對應的福利也是提升了不少.

在大公司,技術水平并不是決定這個人發展潛力的決定性因素.要知道大公司最不缺的就是人才,能進大公司的,哪個不是有兩把刷子的呢?對于大公司而言,他們需要的是擁有極強責任心以及任勞任怨的員工,能否承擔某一模塊功能的穩定性就直接決定了你的去留.除此之外,溝通能力也是非常重要的能力.因為大公司的專案功能相對復雜,參與的人員眾多,很多復雜的問題往往可以通過溝通予以解決.而且及時表達出你的想法,主動承擔一些緊急的任務都能給你很多的加分.

可以說在大公司的這些日子里,讓我學習和領悟到了很多非技術方面的能力:

  • 語言表達能力(大公司經常需要在很多人面前發言).
  • 與不同人溝通的能力.
  • 復雜問題的定位和解決能力.
  • 團隊協作能力.
  • 幫助(指導)他人的能力.
  • 團隊建設和管理的能力.

這也是為什么我去年寫了那么多經驗感悟文章的原因.而上面的這些能力,很多是僅僅靠擼碼是無法獲取到的.

心態上發生變化

我從事Android開發的前三年,之所以那么拼命地作業和學習,一部分是出于興趣,而另一部則是想要證明自己.

  • 對于公司而言: 我要證明自己是公司不可或缺的人才.
  • 對于領導而言: 我要證明自己的技術水平是組內第一.
  • 對于家人而言: 我要證明自己有能力養活自己.
  • 對于女友而言: 我要證明自己有能力獨自照顧一個人.

馬斯洛需求層次理論告訴我們, 當一個人的需求得到滿足之后,他會追尋更高層次的需求.

當這些都被我一一證明了之后,一切都變了.證明自己已經顯得不那么的重要,追求自身價值的體現成為了我現階段的目標.

于是,我離開了當年的那家公司,放棄了父母規劃的道路,離開了女友,開始遵從著自己的內心,尋找人生的答案…

此時的我,需要的并不是別人的肯定.我并不會在意別人的贊賞或者是詆毀,我所做的都是發自內心的事情,而不隨外物而影響.

于是,我選擇成為了一名開源專案的創作者和布道者.將我平時積累的技術經驗全部分享出來,目的就是幫助全世界所有熱愛技術的人士,同時讓我的價值在別人身上得到體現.

在這兩年內,我積極維護我開源的專案,同時還在各大技術社區和論壇上發布一些相關的技術文章,同時還運營了自己的微信公眾號.近期,我還積極創作一些開源技術相關的視頻.這樣做的目的,一方面是可以把自己的經驗和技術分享給更多需要的人,讓知識發揮它更大的作用(知識在于傳承), 另一方面也是滿足了自己的虛榮心,讓自己的價值得以體現.

思維方式發生變化

從事Android的前三年,我的想法是相對激進的.那時的我,對所有的新技術都是那么的趨之若鶩,而對于那些相對陳舊的技術是嗤之以鼻.我天真地認為那些新技術都是革命性的,都需要去掌握、學習并運用到實際的作業中去,而那些舊技術就是需要替代的物件.

于是,我就不計代價,大張旗鼓地把公司之前使用的舊技術一股腦地都準備換了,而當時領導的處處阻撓在我看來就是技術上的不思進取,中間還鬧了不少矛盾,這也成為了我后來離開公司的原因之一.現在想來,當時的我想法真的是非常的幼稚!

技術不是唯一的生產力

技術是生產力,但并不是唯一的生產力.

在創業公司的那一年里,讓我徹徹底底地明白了,技術并不是唯一的生產力.一家公司的發展,更多靠的是強力的融資能力(資本),強大的渠道推廣能力(營銷),很多時候技術只是其中的一部分,充當的僅僅是工具人的角色.

當年那個極力崇尚技術至高無上的青年被現實狠狠地教育了一把.那時的我認為只有純做技術的才能被人尊重,而那些在產品線做業務、測驗,或者跑業務跑市場的人都是不值一提的.然而也正是我那時瞧不起的那些人,直接導致了我待的那家創業公司的衰敗.

技術沒有好壞

技術沒有好壞,更沒有高低貴賤,有的只是合適與不合適.

新技術一定比舊技術好嗎? 如果這個問題在兩年前問我,那么我的回答一定是肯定的! 但如果你現在問我,我的回答就不一樣了.

任何的新技術一定是在舊技術上有了一些改進,否則它就不為是一項新技術.那么我們為何不直接使用它呢?因為這里我們考慮的更多是成本的問題:

  • 新技術必然帶來更高的學習成本.
  • 新技術的引入必然帶來更多的替代成本.
  • 新技術如果尚未成熟,當遇到一個坑時必然帶來更大的解決成本.
  • 如果使用新技術遇到一些無法解決的問題,會帶來一些風險成本.

當一項技術的使用所帶來的收益要遠遠大于它帶來的成本時,這個時候我們才會考慮采用這項技術.

可以看到上述我列舉的成本對于大公司來說是相當巨大的:

  • 大公司的人員較多,新技術的學習成本非常高(不可能全裁了重招吧)
  • 大公司的專案通常偏大,替換的成本相對較高.
  • 大公司產品的功能較為復雜,碰到一些沒人遇到過坑也是常有的事.
  • 大公司對專案的風險一般是零容忍的:寧可不做也不能冒風險.

這也是為什么很多大公司不愿意采用新技術,而是選擇沿用之前成熟的技術的原因.

所以我們在思考一項技術能否被我們采用的時候,壓根就沒有考慮過這項技術的新舊以及高低貴賤.至于那些成天在技術社區里發一些技術焦慮文章的人,我覺得社區就應該屏蔽他們,以免誤導那些剛入門的小朋友.

追本溯源

當你拋開事物的表面,去追尋其本質之后,你會發現很多東西都是相通的.

兩年前我在學習和使用技術的時候,更多的是遵循拿來主義和實用主義,天真地認為我會用這項技術就等于我掌握了這項技術.

之所以這么想,歸結原因還是見的世面太小了.之前待的小公司,業務并沒有那么復雜,用例也沒那么多,遇到的情況也相對簡單單一,所以簡單地使用基本就完事了.

然而,到了大公司之后,那業務的復雜程度以及用例覆寫到的場景遠遠是你所想象不到的.很多時候,一些問題你是不能通過簡單的使用就能解決的.尤其是發生一些詭異的問題時,你不閱讀原始碼了解其實作原理,是無法進行解釋的.

舉個例子,我們做Android的都用過RecyclerView,可你有閱讀過RecyclerView的原始碼,了解其快取機制嗎?相信你看完RecyclerView的原始碼之后,你就會知道,其實你所謂的掌握RecyclerView,只不過是RecyclerView的冰山一角.

學習一項技術,如果你只是掌握了如何去使用,那么這只是你邁出去的第一步,后面更重要的是要追本溯源,深究其底層實作原理,這個時候你才會發現,很多技術原來是相通的.

最后

作為一名Android開發的熱愛者,只要Android不死,我就會一直在Android開發的道路上前行.無論前途如何曲折,我相信Android會變得更加美好!

我是xuexiangjys,一枚熱愛學習,愛好編程,勤于思考,致力于Android架構研究以及開源專案經驗分享的技術up主,獲取更多資訊,歡迎微信搜索公眾號:【我的Android開源之旅】

xuexiangjys CSDN認證博客專家 Java Android 架構設計
微信公眾號:我的Android開源之旅,
專注Android移動開發技術,擅長設計模式,架構設計,移動設備通訊,App快捷開發,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265347.html

標籤:AI

上一篇:Python OpenCV 影像處理之直方圖相關知識細節,學點細的

下一篇:Java-泛型學習

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more