原文地址(来源):http://blog.pickcrew.com/learning-to-code-today/这几个月一直在学习用Objective-C写iOS应用程序,***我开始理清头绪。这比我想象的要难得多,而且花了太长时间。我经常陷入困境、沮丧,并且花费太多时间修复错误,而不是实际编写代码。但是,在我的手机上使用我从头开始构建的应用程序有一些令人惊奇的地方。通过这种方式,我学到了很多东西,除了开发iOS应用程序,还学习了通用编程。我也遇到了一些问题,如果我以不同的方式学习Objective-C,也许我可以避免这些问题。回想起来,如果我今天要学习编程,我会做一些不同的事情。找一个写代码的伙伴,我也找到了一种通过与真人交谈来学习的方法。我的联合创始人Josh主要从事Python开发,在我真正帮助我之前,他实际上和我一起学习了Objective-C并为我回答了很多编程理论问题(“我如何让if语句再次工作?”)当我卡住时调试。至少有一个能解释基本编程原理的最有耐心的编程伙伴是一个巨大的帮助。在我弄清楚Objective-C的具体细节之前,Josh经常帮助我思考最合乎逻辑的方法来解决问题。明智地使用资源如果你不幸身边有耐心的程序员来回答你的问题,还有其他地方你可以从真人那里获得帮助:StackOverflow是我最近访问的有关特定语法或实现的问题之一.最受欢迎的网站之一。我自己没有在那里问过问题(我很谨慎地问,因为社区对初学者相当友好)因为我很少问-我的大部分问题都是通过浏览其他人问题的答案来解决的。TreehouseTreehouse通过视频课程教授编程,还有一个社区论坛,您可以在其中讨论您遇到的错误,或者您在听讲座时遇到的特定练习。askadev当您需要帮助时,askadev会将您与经验丰富的开发人员联系起来。我还没有尝试过这项服务,所以我不知道它有多大用处,也不知道它是否涵盖了所有的编程语言,但它是免费的,所以下次有需要的时候试试吧。Codementor如果您想向有经验的开发人员支付现金以寻求帮助,Codementor将为您匹配了解您正在学习的语言的人。它们涵盖Android、iOS、HTML、CSS、PHP、Python和更多技术。解决小黄鸭问题如果你之前没看过,《小黄鸭式解决问题》的博文很有用。具体操作是:对着一只小黄鸭或烤面包机等其他静物,大声解释你的问题。大声说出问题的过程通常可以帮助您自己找到答案(或者至少是出了什么问题)。我发现大声谈论我的代码是一个非常好的习惯,每次在我向别人寻求帮助之前我都会尝试这样做。学习规范在我学习编程的时候,对我影响最大的是对我所使用的技术的误解和不熟悉。比如开发一个API,意味着我需要了解API的工作原理,如何使用POST和GET请求,如何分析JSON数据,甚至需要掌握接收JSON数据。学习Objective-C并不是你开发iOS应用程序所需要知道的全部,至少,不是我想开发的那种。我错误地认为了解Objective-C就足够了。更糟糕的是,我经常被卡住,因为StackOverflow的回答者、在线教程和书籍章节都在解释如何在Objective-C中进行开发,完全跳过了我需要知道的基于Web的基本原理,因为他们认为我知道。如果今天重新来过,我会先补充和积累HTML和CSS方面的知识。当我开始遇到一些我不太了解的新技术时,我会先看看它,然后再准备在Objective-C中实现它。任何语言都可以开始如果您真的不确定从哪里开始,或者您想要开发什么,不要因此而放弃。尽管我花时间学习了Ruby和Python并且还没有用它们做过任何项目,但我不觉得我的时间被浪费了。初学者通常从学习HTML和CSS开始开发网站。它们实际上是标记语言,如果你想开发移动或网络应用程序,学习HTML和CSS似乎是浪费时间。但在这种情况下,您将获得有助于您继续学习编程语言的知识和经验。如果您渴望开始学习编程但不知道从哪里开始,请选择适合您的书籍、教程或在线课程,然后完成它!一旦你更好地了解了你想要开发的东西,你总是可以选择学习不同的语言。找到一个你真正关心的项目对我来说,最大的学习曲线可能是找到继续学习编码的动力。我过去尝试过很多次:小时候学习HTML和CSS,几年后学习Ruby基础知识,最近学习Python。我决定学习Objective-C,不是因为我比Ruby或Python更喜欢它,也不是因为我认识学习Objective-C的人,只是因为我有一个我想要完成的iOS应用程序的想法列表——我真的很想发展。与之前任何其他语言相比,我更有动力学习Objective-C,因为我受到了我想要开发的个人项目的鼓舞。最重要的是,随着难度的增加,当我感到沮丧和遇到困难时,我没有放弃——因为我正在开发一个我真正关心的项目。每次我设法实现一些新功能时,它都运行良好并且变得更好,因为它是我热衷的项目的一部分。如果你正在考虑学习编程,并且在选择语言或平台方面没有任何限制,我绝对建议你选择一个你真正热爱的项目,这样你就可以为项目的需求打下基础选择的语言。每个人的学习方式都不同,所以你的经历可能与我不同,但如果你刚刚起步,或者正在考虑学习编程,那么希望我的经验和错误能帮助你学得更快。注1:小黄鸭调试法,又称橡皮鸭调试法,是软件工程中使用的调试代码方法之一。就是在程序的调试、纠错或测试过程中,耐心地给小黄鸭讲解程序每一行的作用,以激发灵感。http://zh.wikipedia.org/wiki/%E5%B0%8F%E9%BB%84%E9%B8%AD%E8%B0%83%E8%AF%95%E6%B3%95
