我不会说我是Android开发的新手(已经做了6个多月)或者一般的编程语言(在rails和C#上做ruby近1年)我也不是专家(甚至是专家) “经验丰富”足以让它作为一份工作全职工作)但我似乎遇到了C#或Ruby on Rails没有的问题。
每五秒钟,我似乎偶然发现了一个非常缓慢的艰难挑战。例如,我从一开始就使用官方的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;
}
使用谷歌和Android开发站点上的每个可用资源(stackoverflow实际上最终提供了答案)后,用了将近三天的时间来找出解决方案,以完善几行代码。
十二个教程/指南(无论你想怎么称呼它们)我现在已经从android开发网站完成了每次我发现缺少代码或解释/示例的部分,这使得一个痛苦的过程试图学习更多“复杂“你可以采取的行动。
这是我尝试学习Java和android的方式吗?我最近买了一本ruby on rails book(实用程序员电子商务),当我得到最后一部分(为想象的管理员创建订单时),它基本上说...我们将跳过这部分,因为代码并不复杂,不足以保证书中的空间。
这是一般的想法吗?不要给出“复制粘贴”代码,而是我必须自己找出解决方案(或找到一个例子),或者是否有更好的方法去学习android编程(可能是另一个稳定的资源,我可以使用而不是/以及android dev主题)
任何信息或意见(特别是来自开发谋生的爱好开发者或机器人开发者)都会非常受欢迎。
答案 0 :(得分:3)
所以这是业内13年的人的回答。它是你的方式。如果您正在寻找复制粘贴答案,那么您在Android,Ruby或任何其他平台上并没有真正了解自己在做什么。你正在做的事情几乎就是编程 - 你只是在一起捣乱几乎没有用的东西。
你应该做的就是每当你需要做某事时,试着自己弄清楚。当您最终需要查找代码时,不要只复制粘贴它。研究它。了解它的每一行。明白为什么他们这样做,而不仅仅是他们如何做到这一点。无论你使用什么语言/平台,都应该这样做。
如果你不这样做,你就不会成为程序员。你会保持你的本性 - 一个几乎不称职的程序员,如果有人知道如何先做好一切,他们可以把事情搞得一团糟。但是你永远无法处理复杂的任务,永远无法做任何新的事情,永远无法设计复杂的软件,而且你将永远处于同行薪酬和尊重规模的低端。
幸运的是,如果你愿意投入工作,你可以爬出这个位置。但这需要时间和精力。
答案 1 :(得分:3)
我在这里同意@Gabe。
从其他地方获取代码并将其整合在一起非常好,但事实是,您不应该将其作为第一手段。当然 - 如果你忘记了确切的语法,或者不记得一种方法需要采取什么样的争论或一些事情 - 但如果你坐在那里谷歌搜索你试图完成的每一件事你永远不会会有所增长。
1)开始阅读API。阅读这些apis的规格。如果您花时间熟悉其中使用的类和接口,那么Android教程就足够了。如果您在查看其中一个教程时所做的只是复制粘贴代码,那么您将无法完成任何操作。
2)开始设计自己的东西。遵循KISS范例 - 保持简单愚蠢。所以,当你做动作栏的东西时,从吧开始吧。那会出现吗?太棒了一个标签吧。做那个工作。好吧,使该标签成为片段。现在使用Fragment侦听器激活。花点时间了解相关元素的生命周期等。
3)当在lagnuages / paradigms之间切换时,意识到你必须适应新环境。我大部分时间用C(++),Python,JS和Java编写代码。在这些中学习,编码和工作是不同的。其中很大一部分是耐心,最重要的是阅读文档。注意:不是教程。不是代码片段。实际的语言文档。那些解释哲学,权衡,目标,成就,结构的人 - 那些文档。
4)不要对自己这么难过。我已经编写了将近4年的时间 - 两个专业。我仍然认为自己是一个新手。我经常迷失,学习并试图弄清楚我以前从未见过的事情。随着我越来越好,我的知识越来越少了。前沿甚至包括在线/其他资源。这就是耐心,彻底阅读和花时间思考的地方。答案 2 :(得分:0)