王寒:12岁儿童,该怎样开始iOS开发?

发表于2013-04-08 15:401318次阅读| 来源知乎21 条评论| 作者CSDN

摘要:知乎上有位12岁网友想学iOS开发,发帖寻求建议。在你我对此事惊讶之余,王寒的缜密回复凸显了问题的价值。王寒认为不论年龄,学习中有两点最重要,首先就是培养兴趣,其次就是培养自主学习和解决未知问题的能力。

王寒是笔者在微博上的老朋友,他的真诚与认真的态度可以在如下文字中体现的淋漓尽致。作为iOS开发者和《cocos2d权威指南》一书的作者,王寒将自己的学习、开发方面的经验和盘托出。其实抛开知乎这个问题不谈,文中提到的缜密的建议和学习资源都是不可多得的。

以下为文章正文,文/王寒

因为我这几年一直在搞iOS开发,也一直在努力尝试把教育和游戏结合在一起,提供寓教于乐的学习体验。对于知识教育(相对于教育的另一大核心人格教育),个人认为两点最重要,首先就是培养兴趣,其次就是培养自主学习和解决未知问题的能力。


先不论年龄,既然你对语言和ios开发感兴趣,已经解决了最重要也是最难的一个问题。

那么接下来就是如何培养自主学习和解决未知问题的能力。

根据你的描述,我提一下自己的建议,供你参考,但不一定适合你个人的特点:

1. 说到语言,如果要学习编程和软硬件开发,首先要学的不是哪种编程语言,而是英语。

没错,这是一个无奈的事实,除非有一天有哪位天才的中国黑客开发出基于中文自然语言的编程语言,并且让它被世人所接受。

当然,考虑到现在的中小学都已经开设了英语课程,这个看起来并非很大的障碍。事实则不然,很多大学生研究生包括毕业多年的老码农对英语的掌握都不行。当然,不乏很多高手牛人编程开发搞得好但英语很烂。但考虑到以下一些事实,个人认为适当提高下英语水平是很有必要的。

1)几乎所有重要语言,重要开发工具,开源项目都是在英文网站上以英文的形式展示。

以iOS开发为例,苹果官方开发论坛,stack overflow、github、google code、source forge等等网站都是让自己成为iOS开发高手的极大帮助。

以创业为例,kickstarter、Y-Combinator等网站会帮助你实现自己的一个看似甚至荒谬的创意。

2)基于我朝特色,很多对于开发人员开发非常重要的社交网站和资源都必须翻墙获取,当然也都是英文的。

比如twitter、facebook,一些海外的极客,黑客论坛。

3)针对12岁这个年龄,很难找到针对性的语言和软件开发培养教程,但是这个问题对老外(特别是老美)根本不是问题。如果你的英语比较好,可以很轻松的通过twitter,facebook,论坛,编程网站找到适合自己年龄阶段的开发教程。我不想直接给你答案和链接,如果你真的对编程感兴趣,就要尝试着自己去寻找答案。

绝大多数的老外牛人都是在12岁甚至更早的年龄开始了自己的编码和创造生涯,而其中的大多数则是从开发属于自己的游戏和小工具开始。那些名字都不用提了。

正因为如此,国外牛人和我们的差距至少是10年,不得不承认,这是一个可怕的数字。而且人最有想象力的年龄阶段正是在12岁前后,只会更早,而非20,30甚至40。

当然,如果你对英语很头大,也可以跳过。不过我想引用allan kay的一句话:People who are really serious about software should make their own hardware. 真正喜欢软件的人会尝试着制造自己的硬件。这句话后面我还会引用,不过在这里其实想套用它的格式来一句:People who are really serious about programming should be familiar with English. 真正喜欢编程的人应该对英语很熟悉。

既然你有兴趣,还怕什么!

那么如何提高英语水平?上课帮不了你任何忙,唯有兴趣。比如看看国外的电影,玩玩国外的游戏(英语单机或者外服),尝试着写自己的技术博客,多看国外的新闻,多去国外黑客极客喜欢的网站转。对于iOS开发来说,意味着多看苹果官方文档。

相信我,在这个过程中你不仅会提高英语水平,也会拓展你的视野和思路。

2. 第1点里面说的都是英语,接下来说说编程语言和iOS开发的学习。

之所以要强调第1点,是因为国内实在没有什么好的教程,特别是针对12岁这个年龄阶段的初学者来说。

我一向很讨厌国内的计算机课教学和国内一些公司的面试。一上来就是C语言,一上来就是复杂的语法,数据结构和算法,先把你吓个半死,从此彻底失去了兴趣。可以说,在我朝,很多程序猿之所以愿意当程序猿,只是把它当做一个谋生工具而已。

所以,远离一些让你瞬间对编程失去兴趣的教程,除非你要把自己当做一个励志榜样。

Step1. 如果你英语可以,我建议你可以从 codeacademy 的基本教学开始

Learn to code

如果你对英语没什么兴趣,可以跳到Step2

虽然这里面教的主要是网络开发语言,比如javascript、php、ruby、python之类的,但个人认为非常适合初学者入门。

为什么是这些网络开发语言而不是C语言之类的?

1. 兴趣

codeacademy 的教程非常浅显易懂,而且很有趣味性,可以让你在不知不觉间学到很多东西。

2. 立见成效

学习任何一门技能(不仅包括编程语言)的主要目的是用来解决未知或未曾接触过的问题。所以在学这些语言的第一天,你就要尝试着做一些简单的网页,试着做一个自己的网站。不要被那些所谓的专家吓倒,按照我朝专家的观点,一个程序猿不学会数据结构和算法就不能做东西,纯属放屁!

这一点我和很多老美的观点一致,屠龙刀固然锋利,杀鸡未必比得上菜刀。你要学习的是如何解决问题,而不是去发明另一种编程语言和算法,这些大可以在你成为高手之后再去做。

永远记得,入门和成为高手是不同的过程,绝大多数人都倒在门槛上,不敢迈出第一步。

可以参考这篇文章:

如何学编程,JUST DO IT!

在学完 codeacademy 系列中的每种语言(做了一个你自己的网站或小应用)后,你就可以真正开始iOS的学习了。

我希望你到此为止仍然对编程有非常浓厚的兴趣和创造自己产品的渴望。

Step2. 接下来你就可以看 raywenderlich.com 里面的iOS入门系列教程了。

iPhone Tutorials

里面有 iOS for high school students 系列教程,虽然你可能不是高中生,但考虑到我朝初等教育的先进,应该远远超过了他们的水平。

iOS For High School Students: Getting Started

另外我根据这里面的教程改写了一个中文版的教程(让不懂编程的人爱上iPhone开发)

让不懂编程的人爱上iPhone开发(系列1完结)

Step3. 学完了这个系列后,就可以考虑做自己的iOS产品了。

如果对游戏开发感兴趣,可以接下来看这个网站的游戏开发基础系列

How To Make A Simple iPhone Game with Cocos2D 2.X Tutorial

我个人还跟人合写了一本<cocos2d权威指南>的书,不过自觉里面写的有些啰嗦了,也不一定适合你。

同样的,这些都是实战教程,教你做自己的游戏。

如果你想开发简单的应用,可以接下来看这个网站的应用开发系列

How To Create A Simple iPhone App on iOS 5 Tutorial: Part 1/3

哦,我差点忘了告诉你,raywenderlich 这个网站的教程都有中文版的,你是不是松了一口气呢?

Step4. 接下来怎么办?

接下来要回到1里面告诉你的方法,想一个idea,然后把它实现。在这个过程中你会遇到很多问题,你需要查看苹果官方教程,去和高手论剑,去开源项目取经甚至为这些项目做贡献。

当然,国内的Cocoachina、51CTO和CSDN也有很多的资料可以供你参考。

但始终记住,你学东西是为了解决问题的,不要陷到某个坑里起不来了。而且你可以创造性的用自己的方法来解决问题。

相信我,这个世界上本没有专家,只是忽悠多了就成了专家。

不知道你目前在哪个城市,我目前人在成都,如果你需要学习又恰好在这里,可以周末或假期找我。我愿意免费教你学会基础的iOS开发(应用或游戏都可以),这样或许更有针对性。可以通过我的邮件或新浪微博(http://weibo.com/eseedo ),微信(iseedo)联系我。

我很乐意和你分享一下自己学习iOS的心得体会。

顺便说一下,我最近其实一直在考虑是否业余时间开一个类似美国少年黑客训练营性质的针对K12(小学,初中,高中)的编程周末班或者假期训练营,主要教K12游戏和网络应用开发,可以是公益性质的,也可以是带商业性质的。但因为工作原因迟迟没有行动。如果有同好可以联系我,我们一起探讨下这个问题,共同弥补中国黑客的10年差距。我相信这是一件非常有意义的事情。

来源:知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值