認清Android架構 MVC,MVP和MVVM

來源:互聯網
上載者:User

標籤:並且   顯示   read   複製   編程   創新   發熱   程式   收穫   

  編者按:現在很多時候,我們都是面向搜尋(或 Google 或百度)、GitHub 編程,那麼,在早期沒有互連網的情況下,該如何學習編程,成為一名真正的開發人員?亦或是作為一名小白,如何進入互連網編程時代?本文作者分享自己從 0 到 1 的編程成長經曆,希望協助更多的開發人員踏出職業生涯的第一步。
  
  640?wx_fmt=png&wxfrom=5&wx_lazy=1
  
  我從 11 歲開始就夢想成為一名駭客,一名真正的駭客,但那時我並沒有非常高端的電腦,也沒有電影裡面出現的那種非常炫酷的雙顯示屏,甚至沒有網路。我的電腦配置僅僅是一個普通的 Core 2 Duo 處理器以及 2 GB 記憶體,但這並不阻礙我想要成為一名駭客。當時家裡有幾本關於編程和電腦的書籍,但我幾乎翻都沒翻。因為我想成為一名駭客,而不是只會敲代碼的程式員。
  
  我的駭客之旅啟蒙於一本非常糟糕的書。如今你想學習駭客技術,大家通常會推薦《駭客之道-漏洞利用的藝術》(https://en.wikipedia.org/wiki/Hacking:_The_Art_of_Exploitation) 這類的駭客書籍。而我那個時候完全是孤身一人,沒有駭客朋友也沒有互連網。然而,我通讀了整本書,做完了書中的每一個練習,於是我自認為自己對基本的駭客技術了如指掌,但遺憾的是我並沒有攻克五角大樓。我甚至錯誤地認為駭客是無所不能的,應該能夠獨立開發出不僅功能強大而且外觀漂亮的軟體,目前看來,我真的太傻了。
  
  那麼讀了這樣一本糟糕的書,我有什麼收穫呢?在沒有互連網和線上資源的情況下,它給我讓我對電腦有了一個宏觀的理解,基於這樣粗略的理解實際上我無法做任何事情。只是讓我覺得編程不再那麼神秘,這些電腦書籍也不再那麼令人生畏。
  
  後來再一次,依然沒有任何老師和指導的情況下,我拿起一本書繼續學習。這一次並不像我想的那麼糟糕,學習效果不錯。之後我讀了更多的書,整夜整夜地學習 C++,一年之後我可以用 C++ 編寫出相對不錯的程式。接著我又學習了 C#,因為我想開發傳統型應用程式。自此我喜歡上了編程,喜歡做一名程式員。
  
  不過需要注意的是,編程需要耗費大量的時間,當你開始建立真正的應用程式時更是如此。那麼在沒有互連網和老師的指導、只有一台效能很差的電腦的情況下,如何學習編程呢?
  
  方法其實很簡單,真的。
  
  選擇一門程式設計語言
  
  每個程式設計語言都有它自己的優點。選擇一個並堅持下去,不斷學習直到你真正掌握這門程式設計語言的精髓。新手常見的錯誤是,他們總是試圖學習儘可能多的程式設計語言。實際上數量一多久容易導致混亂,缺乏關注度會讓自己分心,最後無奈放棄。以下是經常使用的程式設計語言的簡短列表分類:
  
  JavaScript、HTML、CSS 和 PHP —— 用於 Web 開發;
  
  C#、C ++、JAVA、Python —— 用於案頭和移動開發;
  
  C、C ++ 和 Rust —— 用於底層開發;
  
  Swift 和 Objective-C —— 用於 iOS 開發。
  
  0?wx_fmt=jpeg
  
  在過去 20 年的任何一個作業系統上,只要你安裝一個瀏覽器,就可以使用 JavaScript 做做用戶端的開發了。如果你線上購買了 Ubuntu 作業系統光碟片,或者加入了本地 Linux 使用者組,那麼它們已經為你安裝好了 Python,你可以輕鬆開始 Python 的開發。
  
  你可以安裝一個 C/C++ 開發環境進行 C/C++ 的編程,比如 Dev-C++(http://www.bloodshed.net/devcpp.html)(雖然它已經相當古老了),你可以用庫的形式管理。在沒有互連網串連的情況下獲得其他開發環境可能會困難得多。
  
  你可以將 Python 文檔(https://docs.python.org/3.5/download.html)下載到本地離線查看。為 C# 安裝 monodoc(http://www.mono-project.com/docs/tools+libraries/tools/monodoc/),但這需要你擷取一些未預設安裝的軟體包。至於 Linux 上的 C 語言編程,可以參考manpages(http://www.mono-project.com/docs/tools+libraries/tools/monodoc/),雖然手冊的導航功能做的一般。
  
  邊學邊做
  
  閱讀太多的教程和書籍除了讓你感到枯燥乏味之外,對你編程技能的提升效果並不好。
  
  提升編程技能最好的方法是探索,實踐和創新。當我轉到 C# 時,我就沒有藉助書籍和教程。學成編程最美好的體驗就是動手寫代碼。如果你選擇創造而不是模仿,那麼你可以學到很多東西。但是大多數開發人員都是從教程開始,然後閱讀幾本書,以兩年的時間都不會自己動手去寫任何應用程式或軟體,最終他們都放棄了。你需要給自己動力,動力的最好來源就是動手寫代碼。
  
  不要盲目追求獨一無二的應用程式
  
  當我在開發 Macalifa(現在被稱為Bread Player)(https://www.microsoft.com/en-us/store/p/bread-player/9nblggh42srx)時,我的朋友和家人經常問我最近有沒有開發一些新的、獨一無二的東西。事實上我並沒有開發那種獨一無二的應用程式。客觀來說,幾乎所有你能想到的應用程式市面上都已經有了,你需要做的是創造更好的應用程式,而不是獨一無二的應用程式。如果你追逐唯一性,那麼你可能永遠都無法完成一個應用程式。相反,我們應當建立一個對使用者有益的應用程式,或者比當前市面上體驗更好的應用程式。
  
  幸運的是,這解決了沒有網路連接的問題。沒有網路連接,你無法下載程式。這意味著你的程式與別人的程式是重複的也影響不大 —— 因為你不能得到你正在複製的其他程式,你建立了一些能夠解決你的部分問題的東西。
  
  擁抱開源
  
  說實話這需要互連網,但不要忽視這一點,它將在未來有用。
  
  當我開始開發真正的應用程式時,起初沒有想過開源將會如此重要,但是在我將 Bread Player 開源之後不久,我逐漸意識到了開源的威力。你不需要開源一個 Linux 層級的項目,任何一個項目,不管多小都是可以的。
  
  一開始,每個人都想快速簡單地賺錢,但恕我直言,早期沒有人知道你,也沒有人會關心你在做什麼。積極投身 GitHub(https://github.com/theweavrs/)、Bitbucket(https://bitbucket.org/) 或任何其他 Git 源碼網站,以便人們知道你的存在。這比建立一個網站好,因為它完全免費並且不需要很多時間來維護。
  
  開源是一個社區,所以你可以結識優秀的人,也許可以吸引一些貢獻者來參與你的項目,如果你夠幸運,甚至有人會聘用你。事實上,開源是最大的開發人員社區,如果你願意,你可以學到很多東西。
  
  0?wx_fmt=jpeg
  
  參與多重專案
  
  我曾經在一個項目上持續了 3 年多,這非常不容易。當你一直投身一個項目且開發工作很飽和時,有時候你會對這個項目感到厭倦。相反,如果同時開發多重專案這有助於保持開發熱情,如果你厭倦了其中一個項目,可以轉到其他項目。這樣,你將永遠在前進,能夠持續開發應用程式。
  
  然而,同時進行多重專案最大的好處是你的成長速度很快。你有多種觀點,多種思路、多種方式來解決問題,最主要的是能夠獲得很多動力。目前我在同時開發超過 5 個應用程式,為了讓使用者收益,近期我可能就會發布一個。
  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container"
android:orientation="vertical"
tools:context=".ui.view.MainActivity"
android:fitsSystemWindows="true">

<Button
android:text="get"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="get"/>

<Button
android:text="change"
android:www.ccyl178.com/ layout_width="match_parent"
android:www.yitiali.com layout_height="wrap_content"
android:onClick="change"/>

<TextView
android:id="@+id/top_contributor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:www.2018yulpt.com textSize="30sp"/>

  按自己的思路進行編程
  
  優秀的開發人員用編程來思考和表達。如果你告訴我一個想法,我不會認為這是一個想法,而是將它開發成一個應用程式。一旦你做到用代碼思考,用代碼說話,那麼你就是一名真正的開發人員了。
  
  總結
  
  學習編程並不依賴於互連網、指導或者書籍。不要找借口,不要猶豫不決,行動起來!我並不是現代程式員的典範,所以我的建議你可以借鑒,但是自己也需要進行嘗試,從錯誤中學習。記住:這個世界並不需要你,但你可以讓它需要你。今天開始行動,明天才會成功。

認清Android架構 MVC,MVP和MVVM

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.