2014-03-13 28 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