如何学习C和Objective-C
我正在学习编程。 我计划今年夏天学习C和Objective-C。 我买了C for Dummies书,但这完全是浪费时间。 它的页面太多了! 我应该阅读哪些好书? 或者我应该从网站上学习C? 什么是最快的方式,因为我真的想快速学习它并开始学习Objective-C。
谢谢
另外,学习C需要多长时间? 直到我转向Objective-C 2.0
没有必要急于求成。 按照自己的进度学习,找到最佳的学习方式。
如果你的阅读是你的事情,那么试着读一些书并慢慢来。
如果您找到了自己掌握的概念,请练习。 如果您发现一个您不太了解的概念,请进行实验。 一旦您认为您理解了这个概念,请尝试重新阅读材料,看看您是否第二次理解它。
我发现自己并不擅长学习书籍 – 我通常不得不在课堂上通过结构化课程开始第一步。 在Java社区学院的一个学期课程能够轻松地朝着能够自己开始有效学习的方向发展。 看看你们学校是否有任何编程课程。
(虽然在你这个年纪可能有点难以找到 – 我没有得到任何正式的课程,直到社区大学 – 我的高中没有提供任何编程课程。)
需要注意的一件事是以错误的方式学习它。
翻阅材料,或阅读写得不好,不准确的学习材料,可能会导致您需要“取消学习”这些概念并以正确的方式重新学习。
在这方面,K&R书(Kernighan和Ritchie 的C编程语言 )将是学习的“正确方法”,但它并不是一本非常平易近人的书。 这并不是说它是关于C的权威书籍 – 但即使用C语言编程了几年之后,我仍然会尝试一次读取它一口大小。
但话说回来,我真的无法想到其他“伟大”的学习资源C.我的建议是看看K&R,一次只做几页。 不要考虑像普通书一样阅读 – 阅读一节,试一试。 一点一点地做。 再一次,不要急于求成。 以自己的速度工作。
并确保编写代码。 如果没有看到它的工作,那么学习编程就会很困难。 并且一开始并没有很大的期望,因为一开始学习C的大部分都涉及仅处理文本的程序。
一旦掌握了一些东西,就要尝试编写其他人可读的干净代码 – 这应该是编写干净清晰代码的动机,它会迫使你更加思考你正在做什么。
这将是一次漫长的冒险,所以一步一步。 祝好运!
对于学习C,我强烈推荐Dave Mark 在Mac上学习C语言 。 它不仅针对初学者,而且还教你很多关于编程和计算机科学的重要基础知识(例如数据结构,递归等)。 它非常易于访问,编写良好且易于阅读。 另外,我发现这些例子很有吸引力并且很有趣。 在那之后,如果你真的想在C中巩固你的基础,我建议你继续尝试使用C语言编程 。 这是一本具有挑战性的书,所以慢慢来吧。 如果你发现自己遇到了太多的麻烦,我会说你可以跳到Objective-C,然后在你对一般的编程熟悉之后再回到C语言编程语言 。
很多人可能会推荐使用The C Programming Language (又名“K&R”)作为你读C的第一本书。毫无疑问,它是一本写得很好的C书(而且它很短 – 只有200页左右),但是我会说这是一个有点令人生畏的12岁男孩第一次接触C:这是非常密集和硬核。 你可以说它绝对针对具有强大计算机/工程背景的老年观众。 但是,如果您已经了解编程的基础知识,那么阅读K&R将为您提供宝贵的洞察力和对C的理解。您应该在编程工作的某些时候阅读它。
无论如何,对于Objective-C,如果只有一本我可以推荐的书,它绝对是Aaron Hillegass的Mac OS X的cocoa编程 。 它真的不是那么长(约400页左右,虽然我认为很多是由于书中插图的数量),你可以在一个下午开始运行一些非常酷的项目。 它非常清晰易读,这些示例实用且有趣,但最重要的是,它具有正确的组合,不会过于恐吓,同时还能为您提供可靠的信息。 另外,它还会教你不仅仅是Objective-C:我发现我学到了一些非常有用的设计模式,例如,通过学习Cocoa的某些组件是如何工作的。
当我看到这个问题的标题时,我猜你是12岁。
我13岁的时候开始编程(我现在14岁)。
我发现学习取决于你是一个什么样的学习者!
我讨厌阅读,我有一个飞蛾的注意力,我从video中学到了很多东西。 因此,我是一个“视觉学习者”。 试着找出你是什么样的“学习者”,然后那样做。 请记住,最简单的方法是最快的。
PS,这里有点小提示。 这可能令人沮丧(在我们这个年龄无菌)。 如果你感到沮丧,就把它放下10分钟。 然后回来研究你的学习内容。 编程将有时令人沮丧。
编辑:顺便说一句,我喜欢通过video学习:p
斯坦福大学在线发布CS193P (iPhone开发类)的讲座,课堂笔记和作业。 如果您根本不了解C或Objective-C,可能会很难,但如果您打算进行iPhone开发,我强烈建议您这样做。
我想我已经阅读了所有Cocoa和Objective-C书籍,并且大多数人都喜欢Aaron Hillegass的Mac OS Xcocoa编程 。
我将看一下C语言程序设计语言(K&R C) 。 它不到1000页,我想你会发现它值得你花时间。 正如htw所说,书籍的确有助于提供全面而有条理的方法。 特别是K&R C将直接从C的创作者那里获得真实的见解。
这并不是说你不应该谷歌的东西,阅读开源代码,写一些小练习程序等等。这一切都有帮助。 记住要耐心等待。 那里有很多 。
查看http://www.cprogramming.com/或在线K&R类型书
不要急躁; 慢慢来。 按照教程,剖析代码的短片段,您将掌握语言的内容。 最重要的是,自己编写代码并从错误/错误中吸取教训。
并按照Stack Overflow;)
我一直在你身边。 这不好玩。 这就是救我的:
(显然新用户不允许发布超链接,所以google为“steve summit C”,使用第一个或第三个链接,然后单击“介绍性C编程类注释”)
这是一个名叫Steve Summit的C级课程。 超级易于遵循,比K&R,imo更容易。 此外,它是免费的,没有任何广告。 我爱它。 这就是我学习C的方法。我希望它能为你做同样的事情。
没有什么比你可以运行和调整的代码更有教育意义了。 书中的代码示例可能非常平淡且不太适用。 这个规则的例外是Perl Cookbook,它为你的perl程序提供了非常有用的小片段。
其中的主题(或“成语”)非常有用,因此适用于某些聪明人用不同语言复制它们的语言。 每个都有不同程度的完整性,但看到不同的语言如何做同样的事情是很有趣的。
看看http://pleac.sourceforge.net/ ,了解你可以动摇的编程智慧。 至少它有趣的是看到用一种语言编写的简单内容需要在另一种语言中编写大量代码。
如果我再次开始学习编程,我可能会选择一些容易和宽容的东西,一种动态语言,如Python,Ruby等。一旦你了解其中一个(流程控制,数据结构等)的基础知识,它将使学习成为可能。 C / Objective-C更容易。 此外,您会发现您需要编写一次性工具和脚本来帮助您进行Objective-C开发,这在C语言编写时会非常繁琐且耗时,但这是现代动态语言中的一个问题。 从来没有伤到腰带上有另一个工具。
祝好运
老实说,我学习了Java作为我的第一门编程语言(我在高中发现它,并认为编程很有趣,这就是我想要做的)
我刚刚在几周内拿起了Obj-C,从一些书中读了一点,但不是整本书,如果我无法弄清楚语法 (程序的格式/语法),使用互联网很多应该是结构和书面的东西等等。
你学习语言的速度取决于你对编程基础知识的了解程度。 你只会随着时间和练习而变得更好。
如果您能够理解一般编程的基础知识,那么您应该能够将其应用于任何语言,困难的部分是学习和记住不同语言的语法。 就像在Java中一样,你不必进行内存分配,但是在C,C ++和Obj-C中你可以这样做。 我从来没有写过C或C ++程序,但现在我已经在Obj-C中学习和编写了一些程序(我一直在制作iPhone的东西,很有趣)我敢肯定我能拿起C和C ++喜欢没什么。
你不必先学习C才能学习Obj-C就是我想说的。 但是,了解多种语言绝对不会受到伤害。
这完全取决于您对程序如何工作以及如何构建程序的理解程度。 我喜欢objective-C,因为它像Java一样面向对象,因此我更容易理解和快速学习,只需要习惯语法上的一些差异
(我现在也接近大学gradle了所以我被编程的东西所包围,从像ada这样的过程语言到像java这样的面向对象,并且知道幕后工作的细节,使程序工作,所以理解和学习一门新语言对我来说变得容易多了,你开始看到它们之间的关系,并且没有关联,这很酷)
你这么年轻的开始真是太好了。 我相信你会真正快速地接受这些东西,如果它是你真正喜欢的东西,它会更容易。
祝好运! 玩得开心! 编程可能是如此令人沮丧……比如,当你发现它时,花费3个小时进行调试是因为你使用的语句比使用更重要而不是更大或更大或类似的东西。 但是,一旦你完成了这个程序,它是如此有益,然后你只是想让它变得更好,更好哈哈。
我不知道如果这对我有帮助,我希望它能做到,不知怎的……
=)
我学得最快的方式是观看短video教程。
如果你真的想从C开始,我首先要阅读C for Dummies的前三章左右,以了解语言的工作原理。 之后,我建议您浏览网页教程。 好的网络教程将包含解释特定function的简短代码等。
不过,作为一个13岁的孩子,我建议从PHP开始。 这是一种比C更简单的学习语言,但它基于C语言,所以每当你这样做时,进行转换并不困难。
不同的人有不同的首选学习方式。 你可以在上面的各种回答中看到。
那你怎么学习? 你喜欢独自坐着书和电脑吗? 你喜欢坐在教室里吸收学习吗? 你喜欢固定练习还是迷你项目?
当我学习新的编程语言时,我觉得如果我有一个小的应用程序或问题可以帮助我。 我更喜欢有问题要处理。 如果您有一个自己想做的小项目,请使用它。 如果没有,如上所述,请加入机器人组。 设置一个网页并编写一些程序来做那些事情。 在网络上查看编程挑战。 谷歌每年都有一个有趣的。
如果你想要一个想法,写一个sukoku检查程序。 然后,写一个数独求解器!
我喜欢使用各种书籍,而不仅仅是坚持上面提到的一两个。 找一本你喜欢的风格的书。 尝试从库中找到一些,直到找到一两个真正为您点击的内容。
就个人而言,我喜欢O’Reilly出版的书籍,因为它们的聊天和可读风格。 我从Deitel那里学到了C,这是一本课堂风格的教科书,但它有很多例子和讨论要点。
当您在计算机上处理示例时,您可能想知道如果调整代码会发生变化。 我通过首先运行文本中建议的示例代码来学习很多东西,然后更改它以查看会发生什么。 如果我得到了我的期望,那就表明我的理解非常好。 如果我得到意想不到的东西,我会弄清楚我是如何误解了我的所作所为。
最后一个建议。 为什么不从Python而不是C开始? 我听说很多学校都在教他们的孩子学习Python。 我建议这样做的原因是:
Python非常简单。 您不必布置内存,声明变量等。 没有乏味的簿记。
Python为您提供了一个很好的增长途径。 您可以使用内置类型(如列表和词典)开始编写脚本样式程序。 然后,您将根据需要继续使用新模块,并使用类进入面向对象的编码。 那里也有一些函数式编程的东西,一旦掌握了语言的基本机制,就可以开始学习了。
我只是喜欢一直访问python的新部分。
你可以在python中完成很多工作。 它配备了大量内置模块,几乎可以做任何你喜欢的事情 – 电子邮件,网络,xml,图形,gui等。
🙂
当我学习用C 语言编程时,我发现Practical C Programming是一个很好的资源。 这是一本非常平易近人的书,里面有很多例子。
我认为最快的方法是通过网站学习。
- 设定您想要做的目标并开始一个简单的项目
- 理论上没有阅读太多书籍,谷歌你想知道什么,以便在你完成项目时立即获得它。这样你就获得了实用的知识。
- 观看在线video。在这里查看我在video上的问题
- 在stackoverflow上询问你不理解的任何内容。 我们来帮助:)
按照这些步骤,我可以向您保证,您很快就会成为一名出色的程序员!
干杯!
和其他人一样,我强烈推荐Kernighan和Ritchie–也许是有史以来最好的语言书。 我也建议你慢下来享受自己:不要宽阔而浅薄; 从狭隘和深入开始。 如果您喜欢编程,您将需要掌握工艺而不是匆忙。 Peter Norvig撰写的这篇文章解释了如何不要如此匆忙。
PS我在12岁时用APL / 360开始编程。 我有一个爆炸,并且自从35年以来一直在做它并且数着。 祝你好运, 别忘了玩得开心!
到目前为止,学习编程的最佳方式(通常是最快)是找到一个好的导师。 这说起来容易做起来难。 但我觉得很多人愿意帮助你,你会感到惊讶。 我的建议就是不要害怕问。
如果我是你,我会找到一个当地的FIRST机器人团队,看看你是否可以参加一些编码。 很可能你会遇到类似的问题,并会得到一些经验丰富的人的支持。 无论如何,这就是我本来会做的。
我在1981年大约1981年开始学习Basic编程。不到多年之后,尝试从1 MHz Apple IIe克隆中获得更高速度的6502组装。
Pascal是1988年的一个启示 – 没有行号编程。
Modula-2,C,Eiffel,Miranda,Haskel和Prolog在大学以及任何语言的脚本。
C ++专业约6年。
C#,然后是Java,Ruby,现在回到过去18个月的C#。
Python一路上的某个地方。
我的建议是,选择最适合您今天需要解决的问题的语言。
您遇到的第一个问题是学习基础知识,即如何分解问题并以清晰简洁的方式表达。 我建议你选择C以外的其他东西。我推荐Python,因为在线文档非常好,库很棒,你会花更多的时间编写有趣的代码,花更少的时间来弄清楚你的代码因为分段错误而停止的原因。
当你掌握了基本概念时,尝试一些组装并了解引擎盖下发生了什么。 如果不出意外,您将了解CPU的真正速度。 在此之后,C是一个很好的步骤。 我还建议您在Objective-C之前尝试Java或C#。
至于迁移到Objective-C之前多久,它实际上取决于你是多么有才华。 如果你真的很好,那么一旦你学会了第3或第4种语言,你就可以在开始使用新语言的6周内比大多数程序员更有效率(虽然改变语言家族(即命令性,function性,面向对象)需要更长时间)。 如果你不好,那么不要指望超越第一个。 希望你把它变成第一类。
除了您最终使用的书籍和网站之外,您可以考虑在您所在地区寻找当地支持小组。 许多领域都有Linux用户组或Java或Ruby编程组。 专业程序员使用这些小组来解决他们的编程问题,但这些小组通常对年轻人和初学者友好。 因为你的年龄和经验不足,不要感到尴尬或尴尬。 大多数人会钦佩你的主动性和好奇心,并乐意在遇到问题时帮助你。
假设你有一些基本的编程知识,Cocoa Dev Central有一系列的文章可以用不到1000页的方式解释基本的C和Objective-C。
学习C for Cocoa ,然后学习Objective-C
不应该花一个小时才能完成。 文章没有涵盖远程高级的任何内容,但是如果你正在学习ObjC来编写OS X应用程序,那么ObjC位基本上是微不足道的,它的Cocoa很难学习!
如果你想学习Objectif-C来创建iPhone应用程序,不要浪费你的时间在C上并立即学习Objectif-C,然后阅读一本关于iPhone编程的书。 它将超过1000页,但如果你想在你的生活中编程,你必须习惯阅读这些类型的书。
我创建了一个在线交互式C教程,您可以在不安装IDE的情况下开始使用它。