編輯:關於Android編程
本篇文章致那些從零開始學 Android 的或者正要學習還沒有勇氣出發的人, 希望通過我的經歷能夠讓你在學習的道路中堅持下來。
畢業之際通過學校的校招找到了一家傳統軟件公司,是做政務軟件的。我以java工程師的職位入職, 入職期間大多數卻是在做debug調式的工作, 偶爾會做一些小的需求, 每天朝九晚五的日子真的是悠哉, 在校期間就已經知道安卓了, 就一直想學, 可惜在校時候沒能堅持下來, 只學了一點點皮毛, 如今悔之晚矣。 我心裡一直惦記著, 這一次我一定要堅持下來, 於是開始自學安卓之路。
之前在校期間自學了一些java基礎知識, 也通過了背一些常見面試題找到了工作, 也算有了一定的自學能力吧,但是java基礎也不牢固, 基本是從零開始自學安卓, 剛開始看同學推薦的 mars老師的視頻 , mars 真的講的很細致, 也比較易於理解, 我當時是從第一季看到了第三季左右, 感覺對Android有了大體的認識,期間在網上查詢問題的時候搜索到了一些大牛的博客, 我看的比較多的是 郭霖的博客 那個時候他正好寫了一本書–《第一行代碼》, 我毫不猶豫的買了下來, 於是我開始了白天上班(偶爾也會看看他的博客哈哈), 晚上回家看書寫代碼的日子, 那段時間我和父母還有朋友溝通說我要換工作, 現在這份工作不是我想要的, 不是我想要學的, 當時父母和朋友也是極力的勸阻我, 因為是大公司,穩定, 也不是很累, 但是我內心清楚的知道我不會在那待太久的, 我不想在大公司做一個螺絲釘, 我想去一家比較小的公司擴展我的知識面和技術能力, 第一行代碼裡講的比較的基礎, 並且還有很多解決方案, 也教會了我用git, 不得不說對我影響很大。我看了倆遍書之後感覺又扎實了基礎, 但是我也知道這還遠遠不夠, 公司很難要一個沒有實際開發經驗的程序員的(應屆生是可能的), SO 我要學習一些稍微進階的知識, 偶然的在一次在外地出差的過程中浏覽論壇的時候發現了對我的編程思維有一定影響的牛人, 他把他幾年總結下來的經驗和思維模式通過視頻講了出來, 他講的視頻大多是付費的,並且他的每一個視頻我都想看哈哈, 可是對於當時的我來說也是一筆不小的開銷, 我看了他講的幾個免費的章節後 決定我要買, 於是當時斥巨資1000元買了課程, 我想像我一樣花這些買課程的還是少數吧, 不過我就很笃定我能通過這些視頻學到很多, 他叫Stay, 教會了我很多思維和想法, 讓我很受用, 我目前還在看他出的視頻。到目前位置, 我差不多學習了三個月, 我已經迫不及待的要找工作了。
終於到了找工作的時候了, 心想先投幾個看嘛, 先漲一些面試經驗, 記得當時去了挺多公司面試, 大公司的有獵豹移動, 58同城, 樂視,一些快速發展的公司比如動動, 樂動力, 還去了律師事務所面試我也是醉了,還有幾個我已經記不住名字了, 總結來看凡事問我技術的我都覺得我回答的不好, 不扎實啊不扎實, 人家一問道實際的問題時我根本不知道怎麼解決, 可謂四處碰壁, 垂頭喪氣啊, 那個時候面試了將近3三周了, 一個回信都沒有, 我也明白自己有很多不足, 缺乏實際經驗, 解決問題能力欠缺, 通過面試的反饋我也在不斷的補足, 最後終於功夫不負苦心人, 我找到了理想的工作, 一家 創業公司, 剛剛起步, 但是也是有面試門檻的, 給我看了一個效果, 讓我倆天做出來, 這樣的效果:
公司老板是做ios的,So ios端的產品進度已經遠超安卓端, 到了公司我一個人做安卓, 並且ios端也有人在開發新功能, 可想而知我要追上進度並且不能落下新功能的進度, 再加上我並沒有實際經驗, 所以那段時間我基本是每天早上九點到晚上十點的節奏, 有的時候功能沒完成 回家了還要繼續, 最甚時候到了凌晨5點中,那個時候我心裡憋著一股勁, 我不斷的告訴自己,我可以!!!, 我遇到了一個接著一個的問題,根本沒有任何喘息的機會, 那我就要一個接著一個的解決它, 在這裡要感謝我的同學,我的好哥們 於海洋, 是百度移動雲事業部的Android工程師,也是我學Android的領路人, 周末的時候我就拉著他在我家幫我看代碼,平時也會總問他問題,有時候他都沒回家(媳婦還在家)! 那個時候時間過的很快,也讓我的技能等級不斷的提升了,提升最快的時候是逼迫自己學習的時候, 就是這個問題我一定要解決的心態! 印證了那句你不逼自己一把不知道自己能做什麼, 能完成什麼的趕腳!寫代碼的時候有時候為了完成功能而開發, 心裡真的很急, 不想很慢的完成任務, 也因為這樣有很多隱藏的bug產生, 以至於每次更新版本都會有bug出現, 這裡我大度的老板也是軟硬兼施, 有時也會質問我, 但是更多的則是鼓勵, 這給了我很多信心, 每天還是盡可能的提升技術, 不斷的總結, 在這個期間我在搜索問題的時候很多都是stackoverflow 上的人回答的, 這也讓英文不怎麼好的我感覺很吃力, 但是也要硬著頭皮去看, 讀不懂就查, 這裡希望初學者真的不要害怕難題, 看不懂就慢慢看, 看久了慢慢就懂了, 既提升了英文能力又懂了知識,很多創新的東西還真都是老外提出的! 提升了解決問題的能力才是最重要的, 不怕困難迎難而上是每個工程師必備的技能, 在這期間我知道了github, 每一位工程師都應該有一個github賬號, 並且將自己寫的代碼提交到上面去, 我每天用點時間開始在github上面逛,好多好多優秀的開源項目啊, 比如android-open-project, 這裡面各種控件各種功能的實現, 真的感謝作者的收集和整理!,當然我也開了自己的 github賬號 , 我將自己這些天學到了知識做了分享, 注冊了我的簡書, 總結我所掌握的知識, 這裡強烈建議初學者都要將自己的學到的記錄下來,* 寫出來的感覺是不一樣的*, 這個時候由於在公司表現的還可以, 漲了工資, 漲到了1萬, 內心的興奮不言而喻, 像是自己的努力得到了肯定, 我真的可以!
從剛開始進入公司一直都是在做ios端已經有的功能, 說白了基本上就模仿, 復制功能到Android上面來, 毫無封裝, 代碼很亂,這也讓現在的我一有時間就在重構之前的代碼,但是最近做一個需求讓我感受到了創造代碼的感覺, 實現一個可以橫豎排切換的 Textview, 具體可以查看Android TextView 橫豎排切換(字方向不變), 我寫的這篇文章, 裡面有效果展示, github上面和其他網站的資料上面都沒有很好的解決方案和代碼, 於是我通過了自己的分析決定自己來寫一個, 心動不如行動, 當天晚上搞到一點左右完成了一個簡單的demo, 內心早已風氣雲湧, 這是我自己寫的自定義View, 之前都是從github上下載的, 這次用自己寫的! 總的來說自定義view雖然寫起來很慢, 需要注意的細節也很多, 但是寫出來之後的感覺不言而喻,一個強大的自己封裝的產品!就像爬山一樣, 爬到山頂的感覺不用提多爽了吧,寫到這裡基本總結了我一個快到一年的Android工程師的心路歷程和經歷, 我不算聰明, 我在一段時間內只能專注做一件事情, 相信比我聰明的你想做好一件事情肯定比我容易的多! 做Android工程師到現在, 時間雖然不是很長, 但是也有很多肺腑之言要告訴各位剛剛入門的初學者。
這裡我結合我自身的經歷給大家一些建議, 希望能對你有所啟發:
1 多看大神博客, 並且一定要有自己的博客,將知識記錄下來, 自己寫出來並且讓別人看懂才是自己真正掌握, 好處多多, 你寫了才知道!
2 注冊一個自己的github賬號, 提交自己創造的代碼, 好處更是多多, 另外在找工作面試的時候你的博客和github也很有用
3 寫代碼的時候能想到的封裝和解耦一定要做, 不論你需要多久的時間, 完不成那就犧牲自己的下班時間來封裝好, 以後用的時候你會知道它的方便之處
4 強烈建議用google搜索, 搜索的准確性和問題定位比國內的強很多, 上不了谷歌搜索做不了優秀的開發,翻牆已成必備技能!強烈推薦做應用開發的朋友每天看google的官方文檔, 大有裨益
5 在開發過程中不斷重構自己的代碼, 重構要趁早, bug毀一生, 每次重構你都能從中獲益
6 在你感覺到自己基礎知識不足的時候,比如看別人寫的代碼看不懂, 有泛型 反射等等的, 此時要回歸基礎,了解技術原理, 建議看java編程思想, 封裝 集成 多態等等基礎知識, 只用從基本的技術原理出發你有一天也能寫出 極致的 可擴展性的 代碼
7 在此借用 上文我提到的 Stay 經常講的, What How Why ,無論做任何需求開發的時候都要想 它是什麼,該怎麼去做, 封裝, 解耦, 為什麼要這樣去做, 帶著這樣的思路去解決問題
以上的經歷和建議希望對你有所啟發和幫助!
文章就到這裡啦, 以上是我做Android開發的經歷, 點點滴滴, 收獲很多, 我也是個初級的Android開發工程師,差不多一年了, 以後的路還很長, 我們一起努力吧!
今早起來運行程序 一直報這個錯Error running app: Instant Run requires ‘Tools | Android | Enabl
序言最近在研究直播的彈幕,東西有點多,准備記錄一下免得自己忘了又要重新研究,也幫助有這方面需要的同學少走點彎路。關於直播的技術細節其實就是兩個方面一個是推流一個是拉流,而
??上一篇文章,我們主要分析了Activity的正常情況下生命周期及其方法,本篇主要涉及內容為Activity的異常情況下的生命周期。Activity異常生命周期??異常
Android提供了 VideoView組件,它的作用與ImageView類似,只是ImageView用於顯示圖片,而VideoView用於播放視頻。 使用