正文
從我個人的角度寫寫30多歲碼工的感受:的確是受年齡壓力開始增大了。比如二十多歲的小年輕,可能什么都懂,對組里的東西很熟悉。有時候我也懷疑自己是不是智商不夠,是不是自學能力太差,是不是基礎不行,別人是不是都玩命加班,你知道30多歲的人那種危機感。
一.你應該承擔怎么的責任
這是專業和不專業的分水嶺。對于一般的程序員來說,責任就是及時、高質量的完成任務;對于 一個領導者來說,其責任就是統領全組,合理安排任務,讓組員各司其職。這里包括3點:
- 承擔合適的責任。**選擇自己能力范圍內、自己喜歡做的。**一旦選擇了工作,請承擔完成的責任;
- 學會說不。經常看到,產品經理或者領導會催促在極短的時間內完成任務,而程序員這個時候總是欲拒還休,說我來試試吧。專業的程序員對于任務有靠譜的預判和掌控力。當完成不了的時候,一定要說不。否則既是對自己不負責任,也是對他人不負責任。
- 應對最壞的情況。程序員最悲催的莫過于搞不定任務,這個時候一定不要推卸責任。這時候最重要的是給出一個切實可行的補救方案,最好有一個完成任務的時間點。老板不在乎你為什么完不成,在乎的是究竟怎樣能完成。
二.代碼的質量
- 沒有Bug,每一段代碼都要有相應測試。很多人不寫測試,那是因為他們抱著僥幸心理覺得自己代碼沒問題,同時寫測試又很浪費時間。實際上保證代碼質量的第一要素就是測試,測試可以讓你檢測不同輸入所產生的輸出,有時候甚至可以推動你去修改開發代碼以提高質量。
- 可讀性要高,讓別人看懂理解非常的重要。
- 可擴展性和解耦性。最好的代碼不僅針對當前特殊的情況,還可以應對其他情況;以后即使對現有的代碼進行大量修改,也不應該影響其他模塊。
三.敲代碼所需要的時間長短
一個專業的程序員一周的花在計算機上的時間應該為每周60小時。最基本的40小時,要花在工作中。剩下的20小時,要花在提高自己身上。提高可以是多種多樣的:讀博客、做項目、看文檔、上公開課。
有人說沒時間,我們來算一筆賬。一周有168個小時,假設你一天睡8小時,吃喝拉撒2小時,這樣你還剩 168 - (8 + 2) x 7 = 98小時。然后你花在代碼上60個小時,你還剩 98 - 60 = 38小時。你完全可以用20個小時陪伴家人(我知道很多人沒有成家),再用10個小時與朋友聚會出游,就算這樣,你也還有8個小時可以自由支配。
之所以要在代碼上花費這么長時間,是因為軟件這一行這一行變化太快了:喬布斯逝世才5年,Google已經聲稱移動時代已經過去,現在是人工智能時代;Objective-C還沒火幾年,轉眼Swift已經出到了第3個版本;Html 5剛剛落寞,Facebook又推出了React Native試圖整合Android和iOS兩個平臺。。。技術的進步,總是讓程序員有太多的東西要去學習。
三.有自己精通的專屬領域
無論是那個領域,都有自己的一套架構體系。作為一名專業的程序員,我覺得應該至少對自己領域所有的知識都有涉獵了解;對于核心的部分,則要做到爛熟于心的程度。
之前看過一篇文章,是說新技術又新又酷,鼓勵大家快來學啊。**學習新技術的原因永遠不是因為它新、它潮,而是因為它可以更好的解決當前問題。**對于深度和廣度兩個維度誰先誰后的問題,我個人永遠支持深度優先。只有本專業弄通的情況下,才能融會貫通。Andrew Ng出名是因為他在Machine Learning的專長;提到John Carmack,大家都會想到游戲編程狂人;談起喬布斯,大家都繞不開iPhone。專業程序員能做普通程序員不能做的,這才叫專業。
###四.擁有自己獨特的思考問題的方式
很多程序員平常寫代碼只在乎能快速解決問題,不在乎選擇解決問題的方法和原因,這是典型的不知其所以然。專業的程序員,理應對每一個問題、每一步設計都有自己的理解
所以,在我們做開發的過程中,不過遇到什么樣子的問題,我們應該注重考慮我們如何提升自己的技術內功,用什么樣子的方法最完美的解決問題,而不是只求解決問題的速度。提升技術內功才是關鍵所在
五.團隊溝通
絕大多數程序員都是:一壺水一盒煙一行代碼敲一天。
只想寫代碼,做個安安靜靜的美男子,這當然無可厚非。但是你真的確定,正在在做的東西是老板希望、客戶期待的嗎?作為一名程序員,理解自己應該做什么、達到什么效果、同時讓老板知道什么能夠實現、什么實現不了,才是專業的表現。
舉個工作的實例:
部門經理:我們組A這個項目要趕緊干完,老大盯著我們。
程序員甲:好,那我趕緊做。
程序員乙:好。但能問一下這個項目為什么老大盯著?做了對整個組或者項目有什么好處?A項目的所有功能都要完成嗎?有沒有具體的截止日期?
上面我們可以看到,也許程序員甲和乙技術能力相同,但是甲更偏向于兢兢業業、努力干活的老黃牛程序員,他寫出的代碼很有可能是他認為非常好的代碼;而乙則更擅長溝通,更有大局觀的程序員,他寫出的代碼就更有可能被大家都認可。他們的專業程度高下立判。
小結
有了這么多優秀的開發工具,可以做出更高質量的Android應用。
當然了,“打鐵還需自身硬”,想要寫出優秀的代碼,最重要的一點還是自身的技術水平,不然用再好的工具也不能發揮出它的全部實力。
在這里我也分享一份大佬自己收錄整理的Android學習PDF+架構視頻+面試文檔+源碼筆記,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料這些都是我閑暇還會反復翻閱的精品資料。在腦圖中,每個知識點專題都配有相對應的實戰項目,可以有效的幫助大家掌握知識點。
總之也是在這里幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習
總之也是在這里幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習
如果你有需要的話,可以點擊這里領取