如何像高級Android開發人員一樣思考?

本文爲譯文,作者:Ann Adaya

世上的技術千千萬,你不可能將所有技術一網打盡。

因此,你需要找到理想的技術棧,找到適合你的技術,然後全力以赴。例如,對於現代Web開發來說,一個很好的組合就是MERN棧:MongoDB、Express、React和Node.js,如果你喜歡JavaScript,那麼這就是完美的選擇。

還有一個技術棧叫做MEAN。MEAN技術棧的開發人員更喜歡用Angular來代替React。當然,你也可以選擇將PHP、MySQL,前端也可以採用基本的HTML和CSS等。此外, Ruby和Ruby on Rails也是面向後端的好技術。

無論你選擇哪種技術棧,都要堅持深入掌握這些技術。對開發人員來說,廣而不精是大忌。最終,你只會在原地打轉,陷入迷茫。

即便沒有學位,你仍然可以成爲開發人員

我本人就是一名自學成才的開發人員,我通過自己的努力、耐心、毅力和高度專注,在這一領域取得了成功。

不上大學並不意味着這一行的門檻很低。軟件開發的工作難度非常大,但回報非常豐厚,你遭遇的小失敗不值一提。心之所向,欲之所望,事之所暢。

放棄則將一事無成。書山有路勤爲徑,只有每天每時每刻一次次地努力才能換來成功。即便感覺自己陷入最深的谷底,你也應該繼續堅持,因爲勝利的曙光就在眼前。再多一點堅持,一切困難都會化成機遇。

“當一個人面臨失敗之際,最容易且最合乎邏輯的做法就是放棄。而這也是大多數男人的選擇。”

—— 拿破崙·希爾

掌握搜索的藝術

在學習編程的時候,妄想掌握一切是不現實的。即便你不知道所有問題的答案,也沒有關係,特別是在剛開始學習編程的時候。重要的是你知道如何尋找答案。

編程就是爲了解決問題。如果你不知道如何解決,那麼就需要找到一種方法。通過網絡搜索或找到知道如何解決問題的人,然後從中學習,這纔是最佳的學習途徑。

忠告:今天你所遇到的所有編程問題,可能之前的開發人員都已經歷過了。不要重新發明輪子,你必須學會使用輪子。

我們永遠無法恪守最終期限

無論計劃多麼完美,預估工時都不是一件易事。對於項目管理,各個公司都有各自的妙招或策略。在我看來,目前最受歡迎的是敏捷。

無論開發過程多麼詳細,中途總是會遇到困難。無論團隊成員多麼優秀,從業務分析師到測試人員,最終期限總是無法準時,而且總會拖延。最終期限永遠只是一個估計,在大多數情況下,在大公司中,構建應用程序通常都會比最終期限晚幾個月,這都很正常。

但是,對於小型項目來說,小型企業主就非常嚴格。如果你打算開展業餘項目,那麼常見的問題或要求之一便是:“預計的交付日期是什麼時候?”一些商業人士並不關心程序,對他們來說重要的是交付最終結果的截止日期。

因此,在向他們承諾截止日時要格外小心。通常他們都會視之爲已知前提,所以你最好留好一定的餘量,讓你有更多的空間和足夠的時間進行一些故障排除和調試。與其讓他們失望,不如給他們一個驚喜。一定要設置標準,因爲他們也會給你設置標準。

60%的調試,40%的編程

我認爲這條建議非常準確。

我大部分的編程時間都花在了調試上。在上一個項目中,我們構建了一款醫療保健的Android移動應用。我們使用了React Native。我是開發人員。

假設項目花費了一個月,那麼我構建大約花費了10天。其餘時間,我都在調試各個依賴項、版本控制以及與當前版本不匹配的其他軟件包引起的錯誤。

這是我的第一個Android項目。我花費了數週時間來調試屬性,以確保它們適合正確的版本,包括我使用的其他第三方程序。

構建的部分非常有趣,但調試卻很有壓力。這是工作的一部分,但很費時間。

高級開發人員給我的一個建議是,每當你在同一個問題或錯誤上連續工作一個小時,那麼就應該嘗試休息一下。做點其他事情,放鬆心情,因爲有時問題就出在我們自己身上

不懂裝懂

我就幹過這種事,時至今日有時還會不懂裝懂。有時,我的同事在討論他們使用過或感興趣的新技術時,我會一直點頭假裝自己聽懂了。沒關係,你不是唯一一個不懂裝懂的人。

世上的技術太多了,誰都無法掌握一切。

不要死記硬背,你需要掌握技術背後的原理

我一直自強調學習和掌握開發與編程基礎知識的重要性。

首先,你會從教程或其他代碼庫中複製粘貼代碼開始。這沒什麼不好,只要你理解複製的代碼就好,否則就學不到任何東西。

幾個月後,你應該能夠理解其中的一些內容。你應該熟悉一些語法並瞭解一些編程原理。慢慢地,你應該嘗試自行解決問題。嘗試解決問題時,不要複製粘貼代碼,而是構建自己的代碼塊。通過自己的方法、風格和想法來解決問題。

不要在複製粘貼代碼階段花費太多時間。不要害怕解決問題或編寫出自己的解決方案。你需要通過反覆試驗來掌握更多技術,所以請不斷嘗試,直到你開始理解所有的高難度代碼。這是學習技術的最佳途徑。學習需要時間,但學習編程需要反覆嘗試。

文檔是救星

將來你會感謝現在的自己。

剛開始時,你會逐步參與幾個項目。接下來,在漫漫長路上,你參與的項目越來越多,直到自己都記不清參與了多少個項目。

然後,某天當你做到第11個項目時,突然你的老闆問你有關第2個項目的問題。他希望你回頭繼續處理第2個項目,而且這是當務之急。項目2是在一年前建立的,後來就逐漸被人淡忘了。

但是,你沒料到會出現如今這種的情況,因此你沒有想過爲第2個項目創建文檔。當你打開代碼庫時,很多內容都已經不記得了。你忘記了曾經用過的軟件包、版本、要求、選擇原因的原因等等。更糟糕是,你的老闆希望你能在兩週之內完成。

請引以爲戒。下次,記得花點時間爲構建的每個項目創建文檔。文檔可以救你一命。

需要學習的技術仍然很多

這點非常重要。

不能因爲你已經掌握了幾種語言或正在使用的技術棧,就沾沾自喜。別忘了繼續學習。我們需要學習的技術還很多。技術日新月異,不要誤以爲當下掌握的知識在十年後仍然有所幫助。

我們需要不斷學習,提升自己,因爲Android開發在不斷髮展。我覺得這就是Android開發最有魅力的地方,我們永遠不會錯過學習新技術的機會。

機遇往往轉瞬即逝。你要時刻做好準備。保留儘可能多的工具,當機遇敲響你的大門時,你已做好萬全的準備。

這裏小編也分享一份資料,內容包含: Android學習PDF+架構視頻+面試文檔+源碼筆記 ,高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料 這幾塊的內容。分享給大家,供大家學習進階,後續會全部上傳至GitHub的

如果你現在有需要的話,可以在 GitHub 上查看《Android開發核心知識點筆記》最新版,路過別忘了點個Star

喜歡本文的話,不妨給我點個小贊、評論區留言或者轉發支持一下唄~

《Android開發核心知識點筆記》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章