说说Android吧,iOS没接触过。路线基本是C->JAVA->Android有的人可能说这样太慢了,什么时候才能做出APP啊。浮躁就是你学编程的最大的阻碍,循序渐进,脚踏实地。学C的时候你可能会想:C语言除了能做个六年级奥数题,要不就排个序,还能干嘛?学JAVA的时候你可能会想:靠!老子什么时候才能把这种东西拿的出手啊,做个图形界面都这么丑!很多人死在了第一步,又有很多人死在了第二步。心一定要沉下来,很有可能你写个两年的代码都没法风光的展示给你的同学看,那又怎么样呢?念念不忘,必有回响~~~~~~~~~~~~~~~~~~~~~~说点干货吧~~~~~~~~~~~~~~~~~~~~~~如果你对程序一点都不了解的话建议你看网易云课堂翁凯老师的C语言程序设计。JAVA我就不推荐视频了,推荐两本书好了,一本是《Head first JAVA》,还有一本是《JAVA经典实例》。第一本讲的相当生动有趣,看完这本基本上就一只脚入门了。第二本就相对枯燥一点,但对你编程经验得进步贡献最大的就是第二本。其实不需要3了,如果你把以上的学完,你自己就会找到最合适你的学习道路。还是很喜欢这段话 Everybody in this country should learn how to program a computer because it teaches you how to think. (这个国家的每个人都应学习编程,因为它教你如何思考) -STEVE JOBS分享两段视频: [中文字幕]《多数学校不会教的东西》What Most Schools Don't Teach<<
作为光学工程专业硕士毕业,本科奔去了acm world final,现在主做科学计算的路过。题主很有兴趣,这个最重要的大前提已经具备,接下来首先你要明白自己的目的究竟是什么。以移动app为例,是做以网络服务为核心的app?或者一个精巧的小游戏?又或者以精妙算法为核心的工具?与硬件结合的图形界面?需求不同,学的内容是不一样的。至少起步时学的内容是不同的。无论是不是相关专业的学生,都很容易存在一个误解:学个编程语言,就可以做出自己想要的东西。但事实上语言只是最基本的工具,不可能说会用铅笔就能够画素描,会使钢锯锤子就能造汽车,只会编程语言是不足以支撑一个完整程序的开发的。语言这一关最容易出现的问题是学什么语言,然而这个问题其实不如想象中重要:对于现在的普遍环境,学好一个对象化的语言就可以了。就像学写字问用什么笔,虽然各种笔特点不同,用法有些许差异,但是重点在于写出来的字。至于换支笔,有了以前的基础和一些理论知识,也就分分钟的事了。语言会了,第二个要点则是往往被忽视的原理和概念知识。不要求特别精通,但是编程的人熟悉编译器/解释器基本工作流程,运行时错误代表的意义,时间空间复杂度估算之类的知识,都是十分必要的。此外,对于对象化相关概念,对操作系统的一些基本知识(如windowsd下的换行符问题),对中文文字编码问题的知识(utf8与cp936)等,必须了解。如果题主不打算专注算法深坑,接下来要面对的是各类framework各类api各种模块/库。现在基本上一个主流语言,你能想到的几乎所有复杂算法、功能,都能够找到相应的别人做好了的模块。能够看懂文档,就能用上了。这个阶段你会发现之前学的理论知识能够极大程度推进你的学习新模块的进度。至此,一般的小App就已经拦不住你了,接下来根据需要选择学习其它语言,研究算法,或者修改开源代码使之满足自己需求什么的,都属于积累经验。毕竟抛开算法不说,编程是个工匠活计,积累经验,产生新的创意思想,这些都是不可或缺的。
编程就像写文章,做一个程序员就像做一个作家。你觉得一个作家应该先学哪门语言,后学哪门语言,才能成为一个作家?或者是一个作家应该先学什么技巧,再学什么技巧,才能成为一个作家?不过如果你只是想写APP,那你用C#。C++和C#是目前跨PC和移动平台、跨领域最完整的语言。Java不能用在Windows/WP系列上,OC不能用在Windows/WP和Android系列上。C++的话你的目标太简单没必要学,所以还是用C#,你哪个平台都可以把你的程序编译上去。微软的平台用VS和Universal Apps,Android和iOS的你可以用Xamarin,Linux和OSX用Mono。如今做游戏用Unity3D大多都是用C#来开发的。在你什么都不会的时候首先学习C#的好处有:1、语言设计精巧,你只需要懂一点点就可以完整的写出你的APP的逻辑。当然了,你懂得越多,写出来的代码越漂亮,但是如果你不追求这个,没有关系。2、开发工具做的强大,调试起来毫无压力。3、资料也很多。4、Visual Studio 2013 Community是免费的5、如果你的APP需要后台,你的客户端和服务器可以只用一种语言来写,互操作方便得不得了。你完全可以抱着一种只想写APP而不想成为开发高手的心态来学,你也可以抱着一种通过写APP来学习编程最后成为开发高手的心态来学,都可以。