2014-03-13 87 views
0

我不會說我是新來的android開發(已經做了6個月以上)或編程語言一般(在軌道和C#上做了近1年的紅寶石),我也不是專家(或者甚至是「有經驗的」,足以做全職工作),但我似乎遇到了我沒有用C#或Ruby on Rails解決的問題。Android開發問題

我每五秒鐘就會陷入一個艱難的挑戰,一直在進步很慢。例如,自從我開始使用官方的Android開發網站以來,它似乎更像是一個「概述」而非教程。幾乎所有提供的教程或指南都提供了完成應用程序所需的步驟,而這些步驟本身並不具備這些功能。 「ActionBar選項卡菜單」教程顯示了選項卡式菜單是如何工作的以及如何將其從文本更改爲圖標...但他們絕不會給你示例代碼或體面的指令來實際得到一個工作示例。 (如下圖所示)

@Override 
    public Fragment getItem(int index) { 

     switch (index) { 
     case 0: 
      return new FirstFragment(); 
     case 1: 
      return new SecondFragment(); 
     case 2: 
      return new ThirdFragment(); 
     } 

     return null; 
    } 

花了將近3天使用在Android開發人員網站上提供谷歌和每一個資源後找出解決方案(計算器實際提供最終的答案)以優良的幾行代碼。

十二個教程/指南(無論你想給他們打電話)我現在已經從android開發站點完成,每次找到缺少代碼或解釋/示例的部分,使它成爲一個痛苦的過程,試圖瞭解更多「複雜「的行動,你可以執行。

這是我試圖學習Java和Android的方式嗎?我最近買了一本Ruby on Rails的書(實用程序員電子商務),當我得到最後部分(爲想象中的管理員創建訂單時看到),它基本上說...我們將跳過本節,因爲代碼不夠複雜,不足以保證書中的空間。

這是一般的想法嗎?不能給予「複製粘貼」代碼,而是我必須自己找出一個解決方案(或找到一個例子),還是有更好的方式去學習android編程(也許另一個穩定的資源,我可以使用,而不是/以及Android開發主題)

任何信息或意見(尤其是從業餘愛好開發人員或開發人員爲生)的非常受歡迎。

+1

上課。讀一本書。但是,這樣做。 –

+0

「讀一本書,讀一本書」是我在HowTo的「成爲一名android開發者」的網站指南上閱讀的內容。我要求包含超過10個字的誠實建議。你的聲望表明你在論壇上受到尊重,但同時(除非我對開發人員如此陌生,我看不到你只是在和我混淆),對於擁有80K +聲譽的人來說,你的答案令人失望地模糊。 – Aluxzi

+0

這就是爲什麼它是一個評論,而不是一個答案。這就是答案 - 沒有神奇的解決方案。最後四個單詞不是答案的一部分,他們告訴你這個問題是堆棧溢出問題。所以這個評論實際上只有六個字,更好的聲譽/回答比率。 –

回答

3

所以這裏有一個來自行業13年的人的回答。它是你如何去做的。如果你正在尋找複製粘貼的答案,你並不是真正瞭解你在做什麼 - 在Android,Ruby或任何其他平臺上。你所做的甚至幾乎都不是編程 - 你只是在一起攻擊那些幾乎不起作用的東西。

你應該做的是每次你需要做某件事時,試着自己想想。當你最終需要查找代碼時,不要複製粘貼它。研究它。理解它的每一行。明白爲什麼他們這樣做,而不僅僅是他們如何做。無論您使用哪種語言/平臺,您都應該這樣做。

如果你不這樣做,你將不會以程序員的身份進步。你會留下你自己 - 一個幾乎沒有能力的程序員,如果別人知道如何去做所有事情,那麼他們可以一起破解一切。但是,你永遠無法處理複雜的任務,永遠無法做出新的事情,永遠無法設計複雜的軟件,而且你永遠處於同齡人的薪酬和尊重規模的低端。

幸運的是,你可以爬出這個位置 - 如果你願意投入工作。但這需要時間和精力。

+1

如果沒有基線信息,Android很困難,並且沒有好的材料,它*很難潛入。我從事專業學習25年以上,自小學畢業以來一直保持半職業水平,而且我非常擅長。任何足夠複雜的系統都可能會讓經驗最爲複雜的外表看起來像一個無能的業餘愛好者,直到生態系統被消化。你不能只是「弄清楚」如何在沒有文件的情況下一起工作。 –

+0

做事情的一件事似乎比我的評論可能已經出現的更好 - 這是OP在這裏的事實,並開放給他可能需要改變他如何做事情的想法是一個非常積極的跡象。如果他的編程時間大約是1年,他對我期望的地方是正確的。如果他想進步的話,他只需要採取下一步的時候。 –

+0

這是我有過的最好的答案(以前和最近)。我已經知道「學習」與「共同攻擊」的優點,但是總結它的方式讓我重新思考如何繼續閱讀教程或閱讀一本書。這就是每個人的建議「只是讀更多的書」,但是感謝你花時間解釋說,僅僅使用其他人的代碼開發不會讓我得到我想要的結果。 – Aluxzi

3

我要在這裏同意@Gabe。

將代碼從其他地方放到一起並將它們放在一起很好,但事實是,您不應該將其作爲第一次追索。當然 - 如果你忘記了確切的語法,或者不記得方法需要什麼或者什麼東西 - 但是如果你坐在那裏搜索你想要完成的每一件事情,你永遠不會得到任何增長。

1)開始閱讀API的。閱讀這些apis的規格。如果您花時間熟悉其中使用的類和接口,那麼Android教程綽綽有餘。如果你看到其中一個教程的時候所做的就是複製粘貼代碼,那麼你什麼都不會完成。

2)開始設計自己的東西。遵循KISS範例 - 保持簡單愚蠢。所以當你做動作棒的時候,就從酒吧開始吧。這顯示出來了嗎?大放一個選項卡吧。做那個工作。確定讓該選項卡成爲一個片段。現在用Fragment偵聽器激活。花時間瞭解相關元素的生命週期等。

3)當在語言/範例之間切換時,意識到你將不得不適應新的環境。我大部分時間都用C(++),Python,JS和Java編寫代碼。學習,編碼和在這些工作中是不同的。其中很大一部分是耐心的,最重要的是閱讀文檔。注意:不是教程。不是代碼片段。實際的語言文檔。那些解釋哲學,權衡,目標,成就,結構 - 那些文檔的人。

4)不要對自己這麼辛苦。我已經編寫了近4年的時間 - 兩個專業。我仍然認爲自己是一個新手。我不斷迷失,學習並試圖弄清楚我以前從未見過的事情。隨着我越來越少,我的「知識」邊界甚至在網上/其他資源中被涵蓋。這是耐心,徹底的閱讀和花時間思考的地方。

+0

謝謝你花時間回答。不幸的是,我不得不承認我最近的很多時間都在使用/下面的教程。我認爲我沒有花很多時間閱讀語言文檔,因爲我可能應該有這樣的記憶,所以我會在未來記住這一點。 – Aluxzi

+0

沒問題。這並不是不幸的 - 正如@加貝在他上面的評論中所說的 - 你是新的,你是我期望給你的經歷的地方。如果這是你真正想要的,那就是時候加強了。好消息是這很容易:慢慢來,徹底地閱讀,然後放鬆。 –

+0

你和@Gabe都幫助我改變了自己的發展方式。我想,如果我最終做了大量的教程,我會學到足夠的知識開始開發「我自己的」android應用程序..但是現在我認爲我會沉浸在文檔中,並且真正瞭解它如何獨立工作(也可能是一個教程),而不是希望以後能夠更好地理解它。 – Aluxzi