天天看點

如果有一天我不更新部落格了

如果有一天我不更新部落格了,或許我已經不是程式員了。

1.關于就業

選擇就業方向是很重要的,有很多同學選擇自己所學專業,一部分則選擇了其他方向。無論選擇什麼方向,自己必須冷靜思考後決定。有人問,到底要不要選擇自己的興趣作為工作?我的建議是盡量選擇自己感興趣的,因為這樣你才會有動力,你才會堅定自己的方向,才能堅持走下去。

剛畢業那會兒,迷茫而慌張,記得那時候,出來實習,學習了一個星期的ActionScript3就開始搞項目了,搞的是房地産項目,經常往東莞那邊跑,一個人蹲在堂皇的房子角落裡吃着快餐看代碼,一個筆記本,一個飯盒基本就待上一天,我甚至懷疑自己是不是程式員了,因為除了寫代碼,還要幫着接電線,安裝路由器等,反正那時候,他們都管我叫“詹工”。一個月之後,我思考了一宿,終于還是提出了離職,開始正式的程式員生涯。

2.關于進階

從起步到深究,已經有前輩寫了一篇很好的部落格:http://gityuan.com/2016/04/24/how-to-study-android/

這裡談談自己的看法。

①視訊:做安卓開發,入門的話,推薦先看視訊,安卓視訊看過不少,我記得張澤華老師的安卓入門視訊最讓我印象深刻,通俗易懂,讓我有興趣繼續開發下去。入門之後,可以選擇看一些針對性的視訊,比如慕課網裡的視訊,還是不錯的。

②部落格:一定要多逛部落格、論壇和社群,CSDN、部落格園、StackOverflow、Github、簡書、掘金、推酷、LeetCode(算法鞏固必看,有時間的話磨一下你會發現世界原來這麼大)、開源中國社群、segmentfault、APKBUS等等,有時間的話,一定要寫自己的部落格,将程式設計的經驗分享給其他人,不也是一種快樂嗎?

③書本:市場上的書本很多,各種各樣,我買的書本将近40本,值得推薦的也就幾本。首先《Java程式設計思想》,不要求每個字每頁都看,但重要的知識點一定要鑽,基礎還是要打紮實。安卓進階推薦《安卓群英傳》和《Android開發藝術探索》,這兩本進階必看,如果有條件,還應該看看《安卓源碼與設計模式》(好像是這個名字,不知道有沒有記錯)。後面,如果想從事底層開發,C語言一定要學好。要有自己的程式設計思想,不要成為了代碼的“搬運工”。

關于程式設計語言,感興趣的話,你可以多學,但你必須精一門,有所長,再去看其他的,術業有專攻,你不可能學會所有的語言。比如安卓開發,你必須熟練Java(或Kotlin)、C/C++次之(底層開發、驅動開發必須掌握),而其他的Python、go、PHP、H5、JS可量力而行。

然後就是一些比較進階的知識點了:

④Java:多線程、泛型、正則、集合、Http、Socket、注解、反射、23種設計模式,算法(推薦看啊哈磊的)、加密解密、虛拟機。

⑤UI:普通的View動畫、屬性動畫、SVG矢量圖、Material Design。

⑥安卓進階:Binder、AIDL、NDK(FFmpeg視訊處理、視訊直播、語音變聲、LBS、WAV無損音頻解碼、音頻拼接與音頻混聲、美顔)、HOOK(反射、動态代理,需非常了解安卓實作流程)、安卓增量更新、安卓插件化、MultiDex。

⑦可以熟悉一些開源項目的使用,熟悉之後有時間研究一下其源碼思想:

A.開發裡的MVP模式你得會吧,大型項目你不可能在Activity裡做所有操作,這樣一個類一兩天下來就超過一千行了。

B.網絡請求的Okhttp。

C.RXAndroid(RXJava),很經典的架構。

D.ImageLoader、Glide、ViewPagerIndicator、xUtils3、PhotoPicker、AVLoadingIndicatorView、CircleImageView。

⑧常見SDK接入:

微信登入、QQ登入、微信支付、支付寶支付、Bmob、友盟統計、個推、極光推送。

⑨常用工具使用:

SVN、Git、Swagger UI、JIRA、SourceTree、阿裡巴巴矢量圖。

⑩必須:一定要注冊成為應用開發者,釋出自己寫的應用到應用寶、360應用市場、谷歌應用市場,酷安,這是必經之路。

如果想從事底層開發,除了熟練運用Java,你要看C++了,看腳本,開始研究安卓源碼,即使不從事底層開發,也要在心中有一個安卓藍圖,明白底層的實作流程。你至少也要自己動手,買一部谷歌手機,選擇一個版本,編譯一次安卓源碼,燒錄到手機上,途中你可能會遇到一些阻礙,比如天朝的牆等,隻要你努力想辦法,是可以跨越過去的,成功之後,你會發現,内心是多麼興奮!這就是安卓的吸引力之處,這就是開源的魅力!

3.關于理想

小時候常常在晚上仰望星空,多麼向往外面的宇宙(現在擡頭落你一臉灰),想過當宇航員,逐漸長大,喜歡上文學,又想當個國文老師,直到高中接觸電腦,我就知道,以後自己一定是個程式員了。

4.關于思想

要有自己的思想,不要因為加班、忙碌而迷失了自己。我曾經多麼有激情,于是一口氣開發了好幾款自認為對自己有幫助的APP,比如“應用備份”、比如友善下載下傳音樂的“音樂之家”、可以自動更換手機鈴聲的“鈴聲自動換”,比如友善調查的“掌上問卷”,也因為曾經被人欺騙,開發了一個“短信轟炸機”去“教訓”騙子。還有很多自己還沒來得及或還沒有足夠能力開發出來的有趣應用,比如:

①自動停止播放音樂的應用。有些人喜歡戴着耳機聽音樂睡覺,但是如果睡着之後,音樂一直播放的話,會影響我們的聽力,能不能有這麼一款播放器,偵查到主人睡着之後5分鐘即停止播放音樂呢?目前應該還沒有,目前的音樂播放器,都是定時停止播放,而讓人無語的是,當音樂停止了,可能你還沒睡着,或者是睡着很久之後才停止,這都是不理想的。而如何定義并監聽使用者睡着?這可能和硬體、傳感器有關了,比如監聽呼吸頻率、心跳、脈搏等等,這需要開發相應的耳機,需要硬體的支援,而我對于硬體基本上是一竅不通,是以擱置了。×

②智能的聯系人應用。面對面搖一搖或碰一下手機互換手機号碼,這個應該涉及到LBS、傳感器的,我暫時沒時間去細究…

③線上一邊看視訊一邊截gif的視訊播放APP,目前好像已經有了,愛奇藝好像已經有這個功能,唉,很多想法,還沒來得及去實作,就已經被别人實作了。×

④如果偵查到時間是淩晨,那麼手機自動切換到靜音狀态,短信聲音為靜音,或者說進入震動模式。除非是通訊錄裡的人打電話進來,或者同一個人多次打電話進來,否則不會響鈴,隻會震動,防止幹擾使用者。這個360和聯想手機已經實作了,360手機衛士有這個功能,聯想樂檬手機自帶這個模式,打開就可以了。×

⑤語音接電話。比如你在床上睡覺,手機在書桌上,電話來了,喊一句“幫我接通”就自動接電話并打開免提,适合懶人使用,嘿嘿。很可惜,華為、vivo已經實作了。×

⑥特權使用者可以看到對方正在輸入什麼,當然對方可以設定不讓其他人看。QQ有一個提示,就是“對方正在輸入…”,但是正在輸入什麼内容呢,隻有發送了才能知道。如果QQ有這麼一個開關,“聊天時允許其他人檢視我正在輸入的内容”,打開的時候,那些會員使用者,就有特權檢視正在編輯的内容,每輸入一個字都實時展現在聊天框的上方,直到發送。嘿嘿,說不定某天QQ就出了一個靛鑽,靛鑽使用者才有權檢視。唉,沒辦法,進不去騰訊,是以這個功能,還是交給騰訊的開發人員吧。×

⑦音軌下載下傳網。我記得上大學的時候,專門有一個網站是下載下傳字幕的,叫射手網,當時就在想,各種語言這麼多,要是有個音軌下載下傳的網站也不錯啊,比如看香港的電影,我喜歡看原聲粵語的,看歐美大片,我也喜歡看原聲英語的。可惜對音像這一塊不熟悉,後面也選擇了安卓開發的道路,就此擱置了,還是交給有能力的人去實作吧。×

⑧管理電腦的APP,這個360快傳好像實作了,連接配接同一個wifi,可以遠端遙控筆記本電腦,并檢視電腦裡的檔案,但是好像還不能把手機的東西拷貝到電腦。這個就交給360的開發人員去實作了。×

⑨我最想實作的一款應用:移動分享彙。我個人是比較喜歡聽音樂的,于是突發奇想,在坐地鐵的時候,能不能讓周圍的人也能聽到我正在聽的音樂?當然不是指外放了,這樣會引起公憤的,我的想法是這樣的:通過這個APP,把我正在聽的音樂,以廣播的形式播放出去,附近也使用這個應用的人,可以搜尋到附近的所有的信号,點選則可以聽到我正在聽的音樂了,說不定還能找到志趣相投的好友呢。後面還可以和發射歌曲信号的人聊天,互發檔案等等,這個應用,不是挺好的麼。我現在是心有餘而力不足,有志同道合的朋友,可以一起探讨下哈。(5年後我回頭發現iPhone好像有AirDrop,而Android也有熱點,輔助DLNA之類的,但是已經沒有多大激情了,也許這就是成長吧)

5.關于鍛煉

最後,當程式員一定要注意鍛煉身體和休息,畢竟生活是根本,不要因為追逐理想而舍本求末!你會認識到一些有趣的夥伴,多爬山、看看電影、和同學朋友們聚會、去看看海、去拍風景照。如此生活才有趣,才能輕松應對人生道路的坎坷。共勉、祝福。

如果有一天我不更新部落格了,或許我已經不是程式員了,但我應該還在從事網際網路相關的項目,和大家一起,或項目管理,或技術支援,等等…未來,有一百萬種可能,加油吧。