精通Woodwop5.0编程软件高手,怎么能瘦脸快速做图与系统…

如何学习编程?
按投票排序
没想到收到这么多赞同,有点受宠若惊,我觉得自己的经验或许对那些不是科班出身,但是又对计算机感兴趣的同学更有帮助一些。当舍友怀着满腹不解问我为什么能够在电脑前对着黑框玩一天,我会反问他为什么你可以在电脑前玩一天游戏?Just for Fun !更多可以参考我的另一个回答----------------------------------------------------------------------------------------------------------------------------------很多人都说最好通过C入门,但是我自身经验告诉我,最好先从一门脚本语言入门,如我的入门是通过PHP。一开始接触C语言,老是对着一个黑洞洞的框,容易使人丧失兴趣。这些黑框和我们常见的QQ、Office等桌面程序相差实在太远了。而且往往在初学的时候没有人告诉我们控制台应用和图形界面的应用之间的关系。如果对Web感兴趣可以先学点基础的HTML和CSS虽然这在严格意义上不算是编程语言,但是却可以在一开始让你做出一个可以看的到的界面,而且掌握基础还是很简单的,然后在学点后台开发语言,我推荐PHP或者python。记住,新手最重要的是保持热情!学习一段时间之后可以自己尝试做一个简单的留言板,别小看这个老土的小东西,这个可是能让你立刻充满成就感。而如果你一开始就上手C这样的成就感就需要更久才能获得,而往往很多新手都躺在了前进的路上。然后,可以在留言板的基础上做出一个简单的博客系统。记住一定要在每一阶段都做出一个看上去"正常"的东西,而不是一堆代码一执行出来一行行字符那种。这也是我推荐学习HTML和CSS的原因,因为这可以让你简单地搭建一个拥有用户界面的程序。当你把这些都做完了,如果感到对编程还是有很大兴趣,而且感到自己在渐渐地从心底里喜欢上了编程,那么你再面对那些黑框的时候,就会感觉好很多,而且感到自己真的很酷,你会喜欢把自己想成电影里的黑客。至于说算法数据结构,等有了兴趣,需要这些知识了,再去慢慢学习,都不会是障碍,而且会变得有趣许多。但是一开始没有任何程序基础,就给你学这些,只能使你迷糊,根本不了解这又什么用。这也是我讨厌现在的大学教育的一个方面,完全违背认知规律。先给你讲一大堆理论,不告诉你为什么,有什么用,让人感到厌恶,但当后来我们真正需要了,却也记不得了,只能从头再学。最后,我还是要补充一下,对于新接触编程的童鞋,或许保持兴趣是最重要的,但是在你对编程有一定了解之后,你会发现自己还有很多困惑,这时候就需要恶补基础知识了,对底层了解的越清楚越有助于你消除困惑和对编程更深层的理解。
昨晚在另一个地方发了个类似的回答:昨天才进入知乎社区,不知道社区的转载主要以什么方式,所以就用最传统的方式——复制黏贴,这么转过来了。刚注册知乎就见到了这条问题,所以就留到晚上来回答了。虽然才毕业一年,但是因为竞赛的原因从小学低年级的时候就开始学习程序设计,直到大学读了计算机,被各种老师教导过、自学过、教过学生。什么是编程?我刚开始学习那时,面向对象和互联网,至少在国内,还没推广开来,甚至不多人知道。直到现在,也就现在大家见到的这个时代了。扯这历史要说的是,“编程”对我而言从一开始的竞赛,到现在的“创作”,已经是两个范畴的概念了;同样对于时代的需求,从从前的科学计算,到现在的各个行业各个角落的各种应用实现,已经不是一个同样的行为范畴了。但是,编程的本质上跟当年课本上写的没多大区别,就是编写(广义上的)计算机可执行的指令(集合)。这个领域的知识是什么样的?然后要延伸一下时代问题。从面向对象开始,互联网时代兴起,到现在的移动互联网时代,编程绝大部分的目的是在于创造“软件”,而创造软件也由于世界上最聪明的人群高速集中涌入,以及时代的需求压力,已经形成了一整套工程学,也就是“软件工程”了。现在“编程”被集中在“软件工程”的需求中,产生的一个结果就是“工程化”,而“工程化”就是整个生产体系开始逐步分化以及逐步专业化,从而出现了这个领域中的各种针对性专业,比如“前端工程师”、“测试工程师”、“算法分析师”、“.NET软件工程师”。在整个软件的开发周期中,我们都需要跟不同的人在不同程度的合作。即使是个人开发者,都会用到开源的代码、各种下载的人家做好的工具。这就是工程化后的结果,也就是“编程”被和其他不同的专业,比如数学、医学、建筑、人文等科学结合在一起然后具体地分化成了各个关联的模块。这些模块有一个特点,就是整体上“临近相连”。这什么意思呢?举例说明就是,但从(某个)网站开发而言,就有客户、老板、美工、前端工程师、服务端工程师、数据库管理员、网络推广等等。这些角色两两间可能有工作上的直接关联,单指这个软件项目的开发工作的话。无论哪个是因,哪个是果,现在的情况都是没两个角色间的知识必定关联和有交集。在往广度上看,整个软件工程领域以及世界都如此,只是软件工程领域如建筑领域一般,有比较大的定量的专业化,一切都是有根据有标准的。而至此,形成的一个结果就是,没有人能掌握所有知识;所有知识都是有关联的,追寻着关联的路径学习产生的效果普遍情况下是最大的。后面那条可以简单地证明,假设两样知识八竿子打不着,那么你就要等很久它们才能连起来,发挥加成效用。虽然乔帮主说过,总有一天这些dots总会连起来的,但是嘛......靠谱点也不是不好。所以,学习这个领域的知识是这样子进行的那么,回到学习上,就变得很明确了。开发的需求需要各种技能,各种技能都是相关的,而一个项目所需要的技术在一定期限内是大致有限的。如果你要开发某样东西,或者做某种用途(比如科学计算),都需要某个知识点进行切入,从哪里都好,切入某个知识点,然后用关联的方式扩充。如果在过程中见到新的不懂的名次,要么马上去“扩充”,要么就记下来,留待以后“点亮”这个天赋,总有一天这些dots......以上是学习编程要要知道的第一点,这个领域的知识是怎么组织的。以下第二点,关于学习方法。一个学习的误区与结果有句名言,是布鲁克斯(Frederick P. Brooks)说的吧,说过,最好的程序员和最差的产出差n倍。为何?计算机科学基本上是由数学和机械类学科衍生而来,最大的特征就是两道门槛:能不能做出来、这个方法(算法或者设计)效率有多高。前者不说,后者最明显的举例就是,用加法来计算和用乘法来计算效率差别极大。这个领域的只是最大的特点就是它们的关系如果你想打通,是需要“理解”的,至少知道怎么用。你不懂得一个公式、一个技术怎么使用,你知道有,到需要的时候也用不了。所以钻研是一种必要的学习习惯。看到以上内容的时候,你可能会觉得,一开始都设定好要做的目标,然后弄清楚这个范围需要的知识点,然后都从某点开始,全部学透,就能完成了。这犯了个软件工程的一个极端化错误,在学习上也同样适用,因为每次开发都是基本上是一次学习过程,你又不是*讯,你所做的东西就算别人做过,你也一定没做过。如果别人做好了给你,也不用你做了,腾*也不用去抄了是吧?这个错误就是将整个项目理想化,如果把这次学习视为一个项目的话。整个项目都是原本不存在这个世界上的东西,没人知道开发(学习)过程中会发生什么,怎有任何可以相信的精细的计划?如果这么学,你会很容易陷入一个,拿了一本专业书(一个切入点),然后看,然后看着看着就看不下去了。然后?然后就没有然后了......我们是怎么解决这个问题的软件工程里是怎么解决这个问题的呢?敏捷开发(Agile Development),每个项目或多或少都能用到。详细解释可能太多,毕竟我知道的也不多。不过其中最通俗的几点:将大计划切分为短周期,并且每个周期结束后调整计划,使得最近的一个计划可执行并且有效;计划中,将每次的产出进行具体化量化,每个周期都发布(生产出)有效的可用的产品,这个产品是在上一个产品的基础上的改进或者增加;在原有的产出已经难以再升级时,将原来的产品重构(重新设计、重新生产)。细节的道理就不多说了,都出了多少本书了。实际上现在你能买到的好的编程教学的书籍都是遵循这个教学模式,也是暂时被认为最有效的书本教学模式。这些书一般会教你从“Hello World!”(到时你就知道是什么了)开始,让你手把手做一次,然后逐步深入;有时候做了一次后,在后面介绍了新的技术,又会让你用新技术跟着做一次;看完整本书,你至少就达到了某个水平了。要注意的是,你必须有心理准备就是,书上讲的,跟你做的根本有不同的产出,或者你根本做不到。比如书上说计算a+b会输出2,而你的输出3;书上说要点击某个按钮,但是你就是在自己机子上找不到那个按钮......这些都是不可避免的,而且一般都会浪费很长时间。莫名其妙的问题本身就是以上说的,不知道会遇到的问题的一部分,也是现代程序员加班的其中一主要原因。毕竟,你的机子跟作者的机子肯定不一样。所以学习该是这样的总的来说,说到了知识是关联的,学习是以不同的学习成本连接不同知识的过程。还有呢,值得鼓励的是,随着知识的增加,智力和经验会随之提高,学习成本也会降低,越来越容易学习。虽然具体到某个知识点只有懂和不懂,但是具体到一个面,还有懂多少的问题。这就回到了刚才的引述,生产效率为什么会差n倍。因为这是一个广度和深度的综合比拼,而随着时间增长,会形成两个人知识的“马太效应”,差距会成倍增长。不过放心吧,这个增长是有天花板的,无论是知识总量的有限还是需求有限导致的,至少从程序员的工资就可以看出来(哭)。具体的学习建议到这里,至上而下地给出学习建议:先有一个想法,像学钢琴也有一开始想弹奏的曲子,提出一个想用生产出来的产品,或者买一本评价好的入门书,做出书中提出的“产品”为目标将这个目标细化,可以找专业人士帮忙,梳理出知识的“切入点”以及周围的“关联点”,然后开始计划第一次迭代(做出第一样东西),可以是一段很短的程序或者一个作品,但必须有具体的产出每次产出后都重新调整计划,重要的是自己或者专业人士要能具体地评估这次产出的价值。如果是跟着书就自然容易了,就是跟书上对一下就是了如果要具体给到一个切入点,那么我的建议是两个选择:从C语言开始,然后学习算法,走科班路线从网页制作开始,然后学习网站工程,走产品路线,这是产品中最好入门的了不必太担心学错,因为到达工程级别,你学过的八成知识都不会被作为工具使用,而它们的只是实现了它们的历史使命——成为你现有某个实用知识的中间点/桥梁、为你现在的学习效率做了一次铺垫。实际一点地说,对于一个“毕业了”的程序员,学习一门新的编程语言,可能只需一周,而熟悉需要三周,熟练地用于开发是三个月,精通只需一年。这也是大概而已,严谨地说,不同的语言所关联的知识点的数量是不一样的。这也不影响举例,因为在这之前,一个大学生在学习他们的第一门语言,通常是C/C++,用了一个学期,还可能挂科呢(那是态度问题或者是Dota的问题)。首先吧,别想速成。这要能速成,那么我们专业人士不就该喝西北风去了?所以要真解决了学习范围的问题后,你下一个问题应该是“要实现**应该具备那些知识”一类的了。等你在某个点扎根后,想的就是利用这个学习能力,去另一个自己更喜欢的领域,还是就此为据点扩充范围,亦或者深入这个领域(也是扩充的一种吧,方向不同)。最后重申的一点,就是软件开发本身就是一个学习的过程,只是产出的代码具备不同的价值而已。软件的特殊性已经导致了难以重复地写出两段相同的代码,一般只会改写重写,或者重用原来的代码(就是复制黏贴或者引用调用)。
题主问如何学习编程,应该是入门,那我告诉你就这么学——全宇宙最快的学习编程方法,一般人我不告诉他:最后奉劝不要去看网上所谓的培训视频,浪费时间。优秀的文字版教材对着练就是最好的方法,方便快捷。最后奉劝不要去看网上所谓的培训视频,浪费时间。优秀的文字版教材对着练就是最好的方法,方便快捷。------------------------------补充解释:为了集中精力我把两个软件的ui设成了黑色,顶部是任务栏,个人习惯而已不必模仿。图片中演示的是:左边是foxit阅读器,PDF格式编程书籍(当然也可以换成网页版文字资料),右侧是IDE工具。按图中的方式调整两个窗口大小,就可以一边看一边练习书上的代码,有效利用了宽屏显示屏。实测学习效率很高,比拿着纸质书练习高的多,非常适合新手入门。至于学习资料,根据高手的推荐书目,自己去搜吧 也可以购买电子版图书。
Peter Norvig 的 Teach Yourself Programming in Ten Years [1] 是很好的指引性文章。[1]
找个妹纸,问她愿不愿意和你一块从零开始学编程,大部分都会有点兴趣的然后就是你先学,然后找个固定时间教她我敢保证你会爱上编程,天天晚上睡不着觉去学习
如果你想成为高手,请学习C语言,请重视数据结构,请研究Unix,请不要丧失激情,请一定要坚持!!!
1、先选一种自己喜欢的语言(C,C++,Java,Python等等)2、买一本关于这种语言入门的书,一开始不要看太难的,循序渐进,先看一遍。3、多练基础代码,将各种语句练得非常熟练,可以选一些计算机语言初等练习题做做。4、再重头到尾好好看一遍,哪里不懂,可以与他人交流。5、多看看别人用这种语言写的程序,借鉴编程方法,对自己错误的思想进行校正。6、多多练习,每天都打一些代码,毕竟熟能生巧!
编程,跟写文章一样。程序语言,就是一门精炼的外语。所以学习的手段都一样,不外多读,多写。同样同任何语言一样,要学成是要花费大功夫的,编程不是小玩意。所以要是玩票只是对计算机对软件感兴趣,可以多了解体验些软件网站,欣赏好文章就得了,真要学,得做好长期时间投入的准备。
我认为主要还是兴趣,没有兴趣是很难深入的。而兴趣的培养可以从一个个小问题的解决开始。可以看看网上有人写的How To Become A Hacker.
熟悉以下关键东西,可以边学边做,定期训练,经常思考,长期积累:语法。
基础理论(数学、数据结构、算法等)。设计方法(编程原则、设计模式、框架设计等)。库(核心、基础、UI、扩展、游戏引擎等)。计算机相关(操作系统、网络、图形学等)。领域知识(游戏设计、网站设计等)。开发工具(编辑器、IDE、自动部署等)。项目管理(进度管理、分工协作、Bug管理、版本控制等)。最普遍也是最重要的能力:创造力。努力分析并理解好做什么以及怎么做。要知道上面那些东西一开始都是不存在的。具体方法包括:快速阅读入门教程和书籍,适合学习语言和基础库。比如我学Java读的《Java编程思想》,练习题做过一点,然后学ActionScript就没读过书,只读过Adobe官方文档《ActionScript 3.0编程》。阅读库的文档、实例、源码。比如Flash、Flex开发,熟悉官方API很重要,很多细节要具体使用时才注意到,这时候最好做个笔记,虽然我从没看过我的笔记。做一个自己感兴趣或熟悉的小项目,比如我就以黑白棋游戏作为多个语言的试水项目,一样的逻辑,便于把关注点放在语言特点上。自己动手丰衣足食。厨师有菜谱,程序员可没菜谱。比如我做游戏,最关键的游戏编程知识全部是动手学出来的,很少有专门针对某个业务领域(如游戏)的编程书籍,要么是入门书,要么是模式书(如算法)、理论书(图形学),很少有书籍教你如何开发一个45度角地图系统加编辑器的,全靠自己思考,以及看前人的代码,需要时找些网络资料。关键是,可以培养最重要的创造力。对于算法和设计模式,可以研读下,但是关键还是靠平时如何使用了。新手勉强不来的。项目管理方面的,就得靠工作经验了,多思考多提意见不要只走流程。
1. 选一门热门的语言,比如说JAVA;2. 买一本叫《XXX入门》和《XXX速成》的书,认认真真从头看到尾;3. 找到一个学习的论坛或者交流QQ群,跟大家一起讨论;3. 买一本叫《XXX项目实战》的书,把书的配套光盘代码全部理解并敲一遍;4. 对照下招聘网站上对该语言开发工程师的招聘要求,有目的地弥补一些技术方面的盲点;5. 模拟做几个主流的项目,将代码和书上的代码做出对比并找到为什么;6. 这里将出现分支:if 急于找工作 then 学习网上的面试宝典,准备面试成功后在工作中积累经验;else 继续学习设计模式、算法、编程思想之类的东东;7. 保持激情,关注新技术,关注新的框架;8. 积累一定的经验之后,多琢磨琢磨架构.
零基础学习编程又快有简单
你可以到这个在线学习编程的网站去学习
1.选择一种语言,做一个最简单的应用,比如留言本,然后实现它。2.让你的每张数据表的记录数都达到千万级。3.让你的应用承受100,... 的并发这样你的基本功差不多就练成了。
从非程序员的角度回答一下。请问“如何学习英语?”。“英语”,"编程“,都是死的。思想才是活的。诺贝尔文学奖向来是颁给伟大的思想的,而不是没有意义的修辞。编程是向各种抽象计算机器交谈的抽象工具,学会”I you are“只是小学生的事情,你的最终目的是要学会写诗。有朋友在一个12人初创游戏公司当策划,他表示公司中6个程序员主要是中专毕业,程序质量差,适应能力差。窃以为中专的编程教育应该是猛敲键盘为主,理论教育稀疏,如果以这样的“编程水准”来做一名职业的程序员,职业前景并不乐观。我在美国的一个初创软件公司实习过,100人的规模。公司的CTO曾经靠篮球专长上了个社区大学,非计算机专业,辍学后经商多年,失败。在岳父帮助下,他做了电话接线员,软件公司的电话接线员,任务就是把客户的疑问记下交给程序员。他暗自学习编程,若干年后,他可以直接回答客户的问题了,甚至比正牌程序员水平还高。公司很器重他,派他去某编程研讨会。他在大会上侃侃而谈,却被别人暗地嘲笑。原来与会者大多是phd,而他呢,其实根本连问题本身都没理解。从此他开始恶补理论知识,即便他现在已在多家公司担任过CTO,他依然坚持每天4点起床,看两个小时的书。当时他表示他在跟进斯坦福的机器学习课程。好,既然思想最重要,工具只是辅助,那你首先要清楚你脑袋里要装哪种伟大闪烁的思想,然后选择适合你的工具。这其实暗示了,学习的每一个小阶段需要一个具体的目标带给你激励。比如,”今天我一定要写一个UDP client发送一个hello world。思想 -& 例举工具--------------------------------------嵌入式,架构,网络等 -& C计算机视觉,机器学习 -& Matlab, Python计算机图形学 -& C++计算生物 -& perl网站后端 -& perl, python, ruby, php, scala编程语言 -& haskell软件分析 -& java,C++当然,我估计楼主想当个伟大的码农!那么,路线图应该是:先大致学个java或python,能实现简单算法就行,别纠结什么继承啊,函数式编程之类的,没有上手实际经验很难吃透。一定要在linux下学习,通过命令行来编译,这是肺腑之言。(推荐鸟哥的通俗入门教程)然后去刷算法题,做到熟练。到了这一步,楼主自己应该有自己的想法如何继续发展了。
首先知道自己要学习编程来达到什么目的,然后选择一个语言,朝着你的目的慢慢前进。
多读写好的代码,勤于动脑思考。学好基础数据结构和算法。兴趣最重要,参与开源社区等。
先确定好要实现什么,然后自己一边敲代码一边学……
最好选择动态编程语言,推荐python,然后买一本该语言方面的书,然后将本书的所有代码无论多么简单都上机敲一遍。
先对编程感兴趣,然后再保持激情。
无他,不断的编。编的过程中思考,借鉴。如何自学 Android 编程?
想自学android编程,从何入手。2000年本科入学,期间学过c c++ 数据结构,之后就再也没有用过。本人数学专业出身。求大牛们指点迷津。
按投票排序
泻药。我想我是有资格来回答你的问题的,我算是彻底的从编程白痴一步步学习过来的。之前写了一篇博客
被疯狂转发,带起了一阵学习Android的大风,我不晓得具体影响了多少人,但是这篇博客已经成为Android新手学习必备的资料。很多人问我是怎么一路过来的,姑且借这个机会说说我的故事吧。===============================内容有点长,大家姑且当做励志小说来看吧,对这些经历不感兴趣的可以直接看最后“如何自学Android”部分===============================大学大学上的是全国二流本科,专业主要就是数学专业。大学的总结就是:逃课、挂科、篮球、泡妞、Dota。目前为止可以说我的大学是我这辈子过的最爽的时期,大一开始就逃课,好点的理由是我对大学那些课程完全没兴趣,其实本质上是因为高考太压抑了,大学之后没人管了,开始无止境的放纵自己。毫不夸张的说大学四年上的课应该没有逃的课多。逃课最直接的影响就是挂科,从大一挂到大三,专业课数学分析特么每年都挂,后来听说补考考不过要重修,还得交钱,这特么让家里人知道还了得,于是发愤图强,最终补考每门都以优秀的成绩过了。相信英语四级应该是大学必考吧,英语四级这辈子我都忘不了,我考了三次才过,每次考试说是裸考都褒奖了,大学英语全是吃高中的底子,第一次没过,少了十几分,第二次他妈睡觉睡过了,就没有去考,现在想想当时的自己真是脑残,终于在第三次勉强过了。现在想想幸亏当时过了,之后毕业找工作时英语四级是最低要求。做编程这行,英语真的挺重要的,大学的时候一定得想办法把四级给过了。现在想想大学和编程唯一相关的课程就是C语言了,但是对于我们专业是属于全校公开课,最终这门课虽然考过了,但是连i++ 和++i我都弄不明白,可想而知你们应该能猜到我是怎么过的。由于高中就开始打篮球,大学时毫无疑问就入了学院篮球队,而且担任队长,所以大一、大二过来基本就是一大半是在篮球场度过的,也是因为篮球征服了我现在的老婆。大二下学期周围的人都在玩Dota,于是也开始了游戏之路,篮球也基本放弃了,那时候玩的疯狂,记得最长的一次和同学在网吧连续包夜两星期,不过白天是回来睡觉的,不然估计早猝死在网吧了。转眼间大四了,这一年终于在我老婆的监督下不再挂科了,而且在毕业前的最后一次评比竟然拿到了三等奖学金,真是受宠若惊啊,后来钱也被狐朋狗友们拿去腐败了。周围的同学都在准备考研,我却唯独对考研没兴趣,自始至终都没有为考研花过一分钱,买过一本书。后来证明我的决定是正确的,周围的小伙伴放弃的放弃,考不上的考不上,考上的后面也没见混的有多好,当然如果能考上好的学校还是很有帮助的。毕业又一转眼毕业了,去参加了学校几个招聘会也是醉了,全是没听过的小企业,一去参观都是各种厂房,根本不需要任何学历,是个人出点力都可以干的那种,要么就是各种电话销售。。。那时候真的有点急了,大学四年,毕业一份像样的工作都找不到,回去怎么面对乡亲父老。三月份的时候一家IT测试培训机构来做宣讲会(具体什么名字我就不说了,免得认为是广告),听完之后就说培训之后包就业,培训地点在大上海的最中心,当然是自费,但是可以工作之后分期付款。那时候哪知道测试是干嘛的,更不懂IT是干嘛的,回来就查了下这个机构确实存在,网站也有的,知道不是骗子遍决定来上海试一试。当时下定决定要来上海培训之后,几个狐朋狗友毫不犹豫的跟着我一起来了,总共应该是7个人,决定之后没几天便毅然而然的背着大包小包来到上海,我们之中一部分是一次性付费,另一部分是分期。后来证明我们当时来上海的决定是正确的。培训之路这里并不是宣传大家去培训,只不过被工作所逼,学校不好,大学也没学啥真本事,稍微有点出路都不会去培训!培训的日子还是蛮轻松的,一周就上四天课,朝九晚五,毕竟大家家庭都不富裕,家里辛苦攻读了四年大学,毕业还要再交钱去培训,打心里大家都很愧疚。一开始卯足了劲要好好学习,但是坚持了没多久就有点放松了,但是好歹也是都有学习的。培训的时候算是接触了点编程吧,课程有C语言、Oracle、Linux,然后其他都是软件测试的理论,其实都是非常基础的东西,算是带你入行吧,Orace就学习一些基本SQL语句,Linux就学了几个命令,但是起码知道原来电脑可以干这么多事,之前还一直以为电脑就是用来看电影、聊天、打游戏的呢。现在回头看给我一周的时间我可以看完整个培训课程,但是当时的培训周期要四个月。第一份工作--SunNet7月份拿到毕业证书就直接来了上海,四个月的时间对于我来说实在太漫长了,我等不及了,于是在课程还有最后一个月的时候我提前出来单独找工作,当时培训老师说工作后的工资大多是3500左右,我觉得我学的比别人好,所以必须要比别人高,做好了长期准备面试的过程。没想到面试第一家就直接录取了(后来才知道原来是公司的测试怀孕在家,急需测试),公司名叫SunNet,中文名山诺,工资4000。收到offer的时候欣喜若狂!真正接触编程之后便在SunNet正式入职,工作就是测试,但是就在SunNet我才真正的接触了什么是编程。SunNet是一家小型外企,总部在休斯顿,上海这边主要是研发部。研发人员总共不到10人,主要业务是以web为主,使用语言是.NET。当然我的职责就是web测试了,工作倒是没什么难点,主要测试就我一个,一进来就有好几个项目等着我测试,还好自己是数学专业,逻辑思维能力还不错,加加班总算能按时完成任务。三个月的时间顺利转正,之后的某一天偶然得知公司一开发人员工资比我高2000,其实也就比我早毕业一年而已,才知道原来开发和测试工资差距这么大,于是当时就下定决心要转行做开发,所以说起我从测试转行开发的原因是因为钱,一开始说因为兴趣坚持下来的都是扯淡。。。编程之路由于在公司我的主要任务仍然是测试,任务也挺多,基本每天要9点能到家。下定决心之后只能利用业余时间来学习,由于公司主要业务是.NET,很自然我一开始学习的方向便是.NET,后来才了解到.NET是基于C#的,学习.NET之前必须要先学习C#,于是像公司借了一本C#学习资料,就这样学习了大概两周吧,还仔仔细细做了一大堆笔记。之后觉得语法学的差不多了,便又借了本.NET的书开始学习web开发。但是web开发远没有学习一门语言这么简单,后来才知道web开发涉及到html, css, javascript, ajax, database等,范围太广了,于是为了效率,我只能每一项掌握住基础,于是网上搜索找到
这个好东西,里面的东西都是基础的,我把教程整理到手机里,每天上下班的地铁上,吃饭的时候,回家的时候等等利用一切时间来学习,也是差不多大概2周的时间掌握了html, css, js的一点基础,接下来准备正式学习.NET的时候,被我们老大知道我正在学习开发,我们老大叫Aaron,是一位典型的程序员,比较胖,人品超好,知道后不建议我学习.NET,说.NET出来都十来年了,已经很成熟了,很多人在学校都有.NET教程,现在学习已经比别人晚了。现在移动开发刚崭露头角,也没多少人会,建议我直接学习移动开发。真是一句点醒了我啊!!移动开发听了老大的建议,于是放弃了.NET,开始准备学习移动开发。那时候是12年初,整个移动互联网也是刚起步阶段,iPhone4还是非常火的时候,毫无疑问我把目标锁定在了iPhone开发上。这次有经验了,知道了iPhone开发首先肯定得有一门编程语言的,了解到是Objective-C,于是又从公司借了一本OC的书(公司书很多,老大每月都会买来好多书,虽然看的人很少),又花了将近一周的时间来了解了基本语法,因为之前学了C#,这次没完全看完的情况下想直接上手实践。正打算学习的时候,才知道iOS开发必须得在mac上才可以,也就是说我得自己有台mac电脑,虽然当时公司是有的,但是回家的时候不能继续学习练习,肯定影响效率的,一台mac对于当时的我简直是奢侈品,虽然现在也依然是奢侈品,但当时根本不可能买得起。于是只有放弃iPhone开发转向Android(后来才知道有虚拟机这东西。。。)Android学习之路几经波折,终于才确定自己的方向,这期间已经耽误了不少时间,走了不少弯路了,但是仍然阻挡不住我转行开发的脚步。公司关于Android的书竟然没有,于是我自己亲自买了一本Android书籍,叫《疯狂Android讲义》,作者是李刚!!不说这本书有多好吧,这本书比较厚,非常厚,所以讲的一些基础比较细,新手按照上面的完全可以看懂,现在不知道这本书内容更新了没,之前内容对于现在来说有点老。这个时候应该是12年的3月份,说起来也巧,这个月公司刚好接了个移动端项目,iOS有人来做,但是公司上下没有会Android开发的,其他人都有自己的项目在忙,老大看出我的兴趣,就问我想不想试一下,我当然欣然同意了,只此就开始正式的边做边学习Android。那个时候的测试任务仍然很重,于是我只能挤出时间来做这个项目,基本是每晚以及周末都会自动加班来完成这个项目,现在看来那个项目真是太简单不过了,快的话一周都不要就可以搞定了,但在当时我摸爬滚打了一个多月总算搞定了。做完这个项目自己有了点信心,但当时自己的主要任务还是测试,自己开发的时间是少之又少,于是下定决心离职找一个专门做Android的工作。说明原因之后老大很理解,也是建议我想做开发的话就放手去找一个专门做开发的职位,这样进步会比较快。第一份工作能遇到我的老大Aaron,真是我的福分!薄荷12年4月底离职之后,我便开始在家里准备面试,投简历,由于自己的基础很薄弱,之前的Android经验也非常少,那时候说是招聘Android职位,但是很多公司面试基本全是Java内容,而且我能感受到工作内容和Android相关的也比较少。来薄荷面试的时候感觉很好,包括CTO、CEO的面试都感觉不错,果然没几天就收到offer,来之不易的机会,非常珍惜。12年5月中入职薄荷,你们以为我到了薄荷之后Android之路就一帆风顺?错了,路更艰难。我是薄荷入职的第一位Android工程师,薄荷在那时候只做iOS平台的App,事实证明这种做法不可取,包括BOSS后面也亲自说投资人来投资的时候一看数据这么少,后面做了Android平台之后用户数据才慢慢上来,毕竟还是Android用户基数大。来薄荷的第一个任务是做联想TV的一个视频App,很蛋疼,折腾联想的SDK,遥控器等,好歹App功能比较简单,试用期间完成的还不错,就这样顺利转正了。转正之后做了第一个Android App,叫减肥食物库,功能与页面全部Copy iOS版的App。这个时候一大堆没做过的东西全部涌来了,网络库、http、api对接、组件定制等等,那个时候没有像现在各种资料、开源库一大堆,公司也没人能给指导,只有硬着头皮慢慢来,为了能把进度赶上去,上线前夕曾经连续在公司通宵三天三夜,累了就在公司趴一会,这辈子就经历过这一次,虽然项目最终也拖延,但总算在接受范围之内上线,这在当时是第一个试水Android平台的App,可惜的是上线之后表现不好,没有达到预期的效果。Ruby、Rails这个App试水表现不好之后,公司决定暂停Android业务,主攻iOS平台。我的位置就变得很尴尬,CTO找我谈话希望我能转做Ruby,Android业务会暂停,我们后端的api全部是基于Ruby语言的,虽然当时心里有点不情愿,但是没办法,为了不丢掉工作我只得硬着头皮做下去,于是就开启了我的Ruby之旅。学习Ruby以及Rails是我目前为止遇到的最大的困难。Ruby是一种动态语言,Ruby On Rails是一种流行快速开发web的框架。学习ruby不同地方在于要学习Linux,代码基本全是在终端进行,没有IDE,没有编译检查,习惯各种命令行。这对于一个刚开始进行开发的人来说真的是太困难了。那个时候从内心也有抵触,学习领悟能力也超差,我能感觉到公司领导层对我已经不是很满意了,现在想想那时候公司没能开除我真是得感谢我们的CTO,一个很有耐心、敢于给新人机会的人。中间遇到非常大的困难,还好得到薄荷ruby工程师小伙伴们的帮助,一直鼓励我,遇到问题总是不厌其烦,在基础、经验、能力不行的情况下,我总得克服这种困难,让别人看出我的态度。于是学习Ruby、Rails的那段时间我每天都是做最后一班公交车回去,我记得好像是11:40. 这个状态持续一个月,包括周末,从未间断。这一个月我在公司的主要任务就是学习,没有给安排任何事情,偶尔帮同事修修电脑,调下电话线,为此我非常感谢薄荷,感谢我的CTO Vincent,恐怕这在任何一家公司都不能这样给一个人单独的学习时间吧。一个月之后,学习的终于有点起色,开始实际做Rails项目,做后台,写api,虽然效率很低,代码很烂,但是在做Ruby的过程跟着我们CTO学了不少设计上的东西,面向对象的思想,设计模式等都在这个阶段接触的,自此我已经习惯各种终端操作,熟悉一些Linux基本命令,喜爱Ubuntu,参加了Ruby Conf 2012大会,喜欢Sublime,接触Git,GitHub,搭建了自己的Blog。我感谢做Ruby的这段时间,他让我接触了不一样的世界,心态完全变了,变得更开放,更乐于分享。回归Android做ruby的这段时间很是快乐,付出了这辈子最艰辛的努力,换来了点小小成果,我喜欢ruby语言,到现在为止都认为ruby是最优雅的语言。但是Android在我心里一直都有一个位置,从未放弃过。直到13年5月的时候,这个时候Android份额近乎疯狂的增长,公司不得不开始注意Android市场,于是公司打算推出Android版app,于是作为公司唯一的Android程序员,CTO再次征求我的意见,问我想继续做ruby还是做Android,虽然我更喜欢ruby语言,但是从心底我更喜欢客户端开发,和语言无关,客户端是用户最能感知的一部分,做出的东西更有成就感一点,我就在等待着这个机会,这一刻我毫不犹豫的选择继续做Android。回归Android开发的我一个人开发新的App,单枪匹马,经过之前的一系列挫折,突然感觉再没有更困难的了,一个人摸索架构、克服难题,App一推出便一直快速疯狂的增长,目前薄荷App总用户数已经破千万,公司也顺利融资,业务发展越来越好。后话由于一个人一步步过来,我深知这其中的不易,之后自己一直坚持写博客,除了自己的积累外,还希望帮助更多的人,所以现在你们可以看到不管是我的GitHub,博客,微博还是微信公众账号都很乐于分享,希望自己走过的这些弯路你们能少经历,虽然最终我也到达了终点,但是如果能有直路可直达最好不过了。总结上面啰啰嗦嗦的叙述我的这些陈年经历,看似和题主的问题无关,其实有很大关系:1. 如果你是非科班毕业想要转行编程,看了我的经历你一定很有信心与动力,我能,你一样能,何况我中间走了这么多弯路;2. 如果你接触过一些数据结构、编程语言之类的,想要学习编程,想题主这种,你更应该有信心,你比那些非科班的人已经多了一些基础,你要做的只是坚定信念,坚持走下去;3. 不要感慨上天的不公平,一路走来很悲催,走了太多的弯路,遇到了太多的困难,都是我这辈子难以忘记的坎坷,但同时我是幸运的,我的前任老大Aaron以及现任CTO都深深的影响着我后来的职业发现,我在薄荷的一些小伙伴们对我的帮助,我女朋友无数个日夜的理解与支持,上帝在给你制造坎坷的时候总会对你有些眷顾;4. 如果你准备或已经在做开发的人员,没有信心或动力,又或是对未来迷茫的时候,姑且当做一篇励志小说来看,你要做的就是做好你当下在做的事,相信你的付出一定能有所收获;建议评论里有人说是在校生,想要给点建议,那就以一个反例的身份给出事后的一些建议吧:1. 每天花1小时看书,难的不是1小时,难的在坚持;2. 最好不要挂科,因为挂了你还是得花时间补回来;3. 英语对编程来说很重要,试着习惯英语阅读;4. 数据结构和算法要学好,这算是对编程来说最重要的课了,以后不见得能用得上,但用的时候起码你有印象;5. 大三或者大四一定要去实习,对于编程来说经验还是比较重要的,实习经历比你那些理论要有效的多;6. 找个女朋友吧,不是说工作了你就找不到了,而是工作之后从事编程很少有时间和精力去接触别的女孩,所以可以的话在毕业前找个可以同甘苦的女朋友吧;7. 第一份工作很重要,因为你会受一些周围同事、公司氛围的影响,我为自己遇到Aaron、Vincent而感到幸运,他们俩是我目前为止最尊重的两个人;如何自学android编程最后才应该是题主最需要的:1.
前面说过我的这篇博客是Android新手必备资料;2. 书不在多,适合你就好,这里推荐一本Android和两本Java书籍吧;《第一行代码》:郭霖大神的著作,我是看过郭神博客过来的;《Thinking In Java》:Java经典书籍,不必说;《Effective Java》:Java进阶必备书籍;3. 有些人一开始看书也有困难,没关系,那就去网上看视频,结合视频和书一起看,边看边敲,推荐下Mars老师视频,包括java基础以及Android篇都有:极客学院的视频:口味不同的人可去各大网站自行搜索适合自己的教学视频。4. 多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多;5. 关注一些Android界不错的博客:我(stormzhang)的博客:Trinea的博客:代码家的博客: 6. 善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人;7. 关注我的微博和微信公众账号,我也会在上面分享一些最新动态与技术前沿信息,忙起来的时候偶尔会暂停,望理解,账号均是: googdev大家都有了以上相同的教程,但是人和人之间的区别在于:别人有颗更强大的内心,可怕的是比你聪明的人比你还要更努力!!当你下定决心,准备前行的时候,剩下的只有坚持了。。。===============================我是华丽的分割线===============================我是很少在知乎上正经回答问题的,没想到这个回答引起这么多人关注,引起了很多人的共鸣,收获了这么多点赞,这里针对很多人的私心以及评论做点补充吧:1. 回答中提到了培训之路,很多人要推荐培训机构,其实一方面当时没有经验,也比较迷茫,迫不得已才去培训试一试的,后来过来后其实培训学不了什么东西,我后来转行Android完全是自学,和培训一点关系都没,所以不推荐去培训,最终得靠自己;2. 有人问我单独开发的app是什么,我现在公司名是薄荷科技,app也叫薄荷,你可以去各大市场搜索“薄荷”,排名第一的应该就是,从架构到实现一直都是一个人在做,总用户现在差不多过千万了,当然现在已经不是一个人在开发了,现在带领一个小团队在做,你可以下载体验下,不过现在依然有很多不足之处,我们一直在努力改进;3. 文中提到我学习了很多语言,很多人比较疑问,是都需要学这些语言么?当然不是,我是因为走了不少弯路,有些语言为了工作不得不去学的,不过后来证明学的这些东西对自己是有很大帮助的,但是如果你确定了方向建议你直奔主题,现在社会需要一门精而不是门门通的人才,现在有很多“全栈工程师”的概念,其实都是在建立在一门精的基础上才去别的领域发展的,所以不要妄想一开始就成为“全栈”,还有如果你对当前做的事很抵触,觉得一直纠结在功能上,但是又没法去改变的时候,不妨竭尽全力把当前做的事做好,后面你会发现有事情做自己不知不觉总是会进步的;4. 很多人找到我博客,搜索到我被Facebook邀请,具体见这篇博客
, 虽然这算是对自己技术能力的一个认可吧,但是在技术上远没有大家想象的那么牛逼,我一直在努力提升自己的技术,但是仍然有很多需要学习的,自己也一直在坚持学习,现在也一直想靠自己的技术来改变自己的生活,起码不拼爹(主要是拼不了),但是后来才感觉到技术并不是一切,千万别陷进无止境的技术坑里,有很多事情比技术更重要,这个就等待大家自己慢慢发掘领悟吧。。。
之前回答的这个问题:《》,已经明确回答了,因为我之前是有Java 基础的,对于题主来说,有C,C++,数据结构基础,这是学编程的基本功,况且C++ 和Java 都属于面向对象程序语言,学过C++,再学Java,也是很容易的,他们有很多地方相通的,学了Java 再学Android,就事半功倍了,当然,您也可以基于NDK(使用C,C++开发Android)的,但由于我不是太了解,就不详细说了;之前我写的一篇文章《》,讲了怎么入门学Android;最近知乎上有网友问我怎么自学Android,其实说实在的,我学的也一塌糊涂,当然在学习过程也积累了一些知识,对于以前没接触过Android的朋友,或者刚入门Android 的朋友,这篇文章作为入门,那是再合适不过了,希望对刚入门Android的朋友有帮助,接下来,就不罗嗦啦。本文主要有以下几个步骤:1. Java 基础;2. 搭建Android 开发环境;3. 了解Android 运行原理以及一个工程项目结构;4. 如何系统学习Android;5. 推荐一些实用的资源6. 总结首先呢?当然要有Java 基础;我大学的专业就是Java,但由于没学好,刚开始学Android 的时候,挺吃力的,后来又去补Java 基础去了;因为Android SDK 是基于Java 开发的,使用的语言是Java,如果有了Java 基础,学Android 就会事半功倍;比如在Android 中要使用到的接口,抽象类,类型转换,继承,覆盖,匿名内部类,多线程,这些都是Java 语言的,如果以前没有基础过,学Android 会很郁闷的;当然如果你有C++ 基础,当然也可以基于NDK 开发,可以不使用Java;对于没有Java 基础的朋友,我推荐一些资料:Mars 的Java4Android:极客学院推出的Android 专题:搭建环境Android 开发IDE选择,有Eclipse,IntelliJ IDEA,Android Studio(基于IntelliJ IDEA 社区版开发的),Eclipse 和 Android Studio 是免费的;对于初学者我推荐使用Eclipse,因为Eclipse 成熟,遇到问题,搜索也容易找到答案;以后可以尝试不同的IDE;搭建环境的步骤:Eclipse安装;Android SDK安装(Android 开发工具包);ADT安装(Eclipse 的插件,使Eclipse 能够开发Android);创建AVD(在电脑创建一个虚拟手机);详细步骤:在这里会有很多工具,可能刚入门的会比较模糊,可以参考:如果最终虚拟的手机屏幕能够显示主界面,则表示成功;了解Android 运行原理,一个工程的项目结构项目结构推荐慕课网的视频教程:系统学习Android有了上面的学习,对Android 也有了初步的认识,接下来可以系统地学习Android 啦,网上资料也很多啦,书籍也很多,视频也很多,我觉得首先要《》;然后手上准备一本书,可以当做字典,不会可以看看;如果看官方文档,有难度,看书进度太慢,可以看视频,跟着视频学,做一下东西,有什么不会的问题,可以Google 搜索;如果说到细的知识点,比如四大组件,UI,多媒体处理,信号连接,数据存储,我在这里就不多介绍了;主要介绍了一些学习资料;官方文档官方指南:Android API:官方中文文档: 书推荐《》;《》;视频教程博客推荐网站推荐总结当然Github 上有很多开源的项目,多看看源码,自己才能快速提升;《》,这里几乎汇总了github 上所有的开源项目,可以自己找些慢慢学;然而学习是乏味的事,坚持到最后是不易的;要善于利用搜索引擎,遇到不会的问题,要使用Google 搜索;对了,作为一个开发者,要学会自备梯子;还有学Android,要时刻关注Android 的最新动态,比如最新发布的Android 5.0 棒棒糖版,去了解他的新特性;加一些QQ 群,有不会可以问问,相互交流;本文作者:本文出处:转载请在开头注明作者详细信息和本文出处。
看书敲码 。。。。如此循环
简单实用。。。最全的Android开源音乐播放器源码汇总Android 应用源码大收藏全网最全的Android游戏源码汇总AndroidUI设计之高仿系列全网最全的Android源码汇总—几百个Android源码(不断更新中)ContentProvider专题Android多线程开发专题GitHub开源项目总结汇集的几十个Android源码Android开源项目大全之工具库Android开源项目之优秀项目Android开源项目之个性化控件(View)非常好用的组件或者框架。Android开源项目开发及测试工具篇Android源码之10个开源项目Android视频教程大合集Android常见的开源项目汇集分享10个Android应用源码推荐10个google上的Android开源项目分享多个google的Android开源项目非常有价值收集的一些Android开源库——全都是经验之谈AndroidUI设计之高仿系列
其它类似问题的答案,粘过来给你。我也是通过自学走向Android开发的,我来回答下。1.要对移动开发有热情,而不仅仅是为了找份工作。有热情才能保证持续的学习和在实际编码中的精益求精,不然在编程的道路上走不长。2.Android应用层开发是用的Java语言,所以熟悉Java语言是必须的。如果以前没编程基础,推荐毕向东老师的Java视频。如果有编程基础,推荐李刚的《疯狂Java讲义》。国外的《Java编程思想》不适合初学者,《Java核心讲义》翻译不太好,不推荐。3,掌握Android基础知识,推荐郭霖的《第一行代码》,相信我,这是最适合入门的Android书籍。4,掌握Android进阶知识,推荐郭霖的CSDN博客,主要看关于View的绘制流程、Touch事件分发、Handle机制等。 5,熟悉常用的设计模式,先开始熟悉几个很常用的就够了,比如单例,观察者等等。学到这,Android应用开发基本入门了,学习曲线也不是很陡,加油↖(^ω^)↗。
官方文档完全满足需求了,照着做一遍,基本的就了解的差不多了
说直接点好了,其实要想学好一样编程技术,并不是看你有一个多牛逼的老师,有多少牛逼的教程,有多牛逼的书,而在于你有多少决心,你愿意花多少心思,你有没有动手去敲代码。你也看到了,@stormzhang,@Tikitoo已经分享了非常多的资料,我相信这些资料绝对够你看的了。一个月之前我还并未接触过安卓编程(很抱歉,虽然安卓非常非常非常的火,但是我一直对它不感冒,尽情说我没眼光好了),就上个月10号,虽然我明确跟公司说了我不做安卓,可是我依然被分来做安卓了,公司还说了一年之内你就在这别想换了;虽然我明确跟我师傅说了我不想做安卓,师傅还是甩给了我一个文件管理器的项目让我自己做,我只能默默接受。其实我师傅还是挺牛逼的啊,可是牛逼的人都是很忙的啊,所以我就一切只能靠自己的了啊!到目前,我已经基本做出了这个文件浏览器,实现的功能也不算简单(当然对Android高手来说is nothing),还在继续完善当中(现在就在加班改代码)。这么快上手有秘诀么?其实考虑到我以前做过很久的Java开发这应该算是慢的了。实际上,我至今对安卓编程还什么兴趣(继续骂我没眼光好了),所以还没看过安卓方面的书,只是浏览过官方网站的教程(写的挺好的),然后直接进入项目开发了。学习编程的方式非常多,此处是一些我以往的学习经验,期望能对你有所帮助:Java之所以Java列在第一个,是因为这是我最拿得出手学的最好的。Java的学习是通过网上看视频学习的,这点我是非常应该感谢尚学堂、传播智客这些培训机构的,特别是马士兵马老师的视频教程确实帮到了我不少。看视频学习的一大好处在于,可以一步一步的跟着视频去做,入门很容易,导致后来我学习很多东西的时候都第一反应是去找视频教程,现在我的电脑里躺着几十G的视频教程,不过只有一小部分看过,因为当你入门以后,再想深入学习一门技术的时候,这些视频要么已经帮不到你了,要么你会感觉看视频学习太慢了。不过,随着Java学习的深入,读了一些书,比如《Algorithm》和《深入理解Java虚拟机》,我在Java的学习上已经非常系统了。总结:Java的学习我是一步一个台阶,慢慢地系统学习过来的,所以Java学的非常系统,基础非常扎实。PythonPython是在网上看了《Dive Into Python 3》入门的,入门以后因为当时想做一个网站,所以又看了《The Django Book》学习了python的web框架,这两本书都来自于网络。后来又用到Python做一些爬虫、数据分析之类的杂活,也都是参考了一些网络上的博客教程。总结:Python的学习就是有需要了,就去谷歌找网络教程参考学习。网络上的博客教程,非常的多,也非常的杂,要想找到好的教程需要一些筛选。此外,只靠网络教程,想要系统的学习较难,至今我对于协程、装饰器都理解的很肤浅,相较而言,Python就没有Java那么精通了。Ruby对于Ruby的学习就比较奇葩了,因为我从未学习过Ruby。之所以了解Ruby,仅仅是因为当时我看到了松本行弘的《松本行弘的程序世界》就想拿来看看大师眼里的编程世界的。不过,Ruby的语法糖与Python非常相似,所以即使我从未学过Ruby,看Ruby相关的书毫无压力,在读《松本行弘的程序世界》的过程中还看了《Ruby元编程》这本书。虽然我从未学过Ruby,我倒是觉得对Ruby的了解程度超过了Python。总结:Ruby的学习是通过看书,看好书,看大师写的好书学习的,因为这些书写的更为接近语言的核心,所以对Ruby的了解不比对Java差,但是Ruby的实战经验就没有Python多,写点什么的时候反而倾向于Python了。Javascript这个就有点类似于Ruby的学习了,断断续续看了《Javascript权威指南》大半,不过没经过什么实际修炼,不过尔尔。C# Android这两样属于工作驱动学习,工作压来之前我都是一窍不通的。来公司以后,公司先给我分的任务是做一个单片机项目的上位机,因为要用串口通信,Windows下串口通信还是C#最简单,现学现卖,也是一个月搞定了,C#确实太像Java。现在又被强派来做安卓,虽然不会但有Java基础以后参考官网教程和Github上的源码,问题也不大。总结:工作驱动模式下的学习,总是可以很快的进步,因为目的明确,不需要完整学习编程语言。所以,如果学习的时候,试着做一个项目,更有助于进步,也有助于提升学习的兴趣和信心。C C++好吧,虽然大学第一次接触编程就是C语言,但是我至今不敢说精通这门语言,C++就更不敢提自己懂了。这两门语言一度给我的编程之路蒙上阴影,虽然至今我依然没完全看透语言,但已经不重要了。若是楼主的C和C++学的好,入手Java问题不大,再入手Android问题更不大。总结:虽然有老师教,有教科书看,可是至今很多程序员和我一样,对这两门很重要的编程语言依然是没学透。Closure好吧,我承认,这个我才刚开始学。所以,学习方式有很多,随着你的学习目的不同,可以选择不同的方式,但是这几种方式有些东西是一样的:决心。编程这个行业,很可能掉进这个坑就是一辈子的事,所以请慎重。对于那些做了很久以后才觉得编程这个行业无聊、累人、没有前途的人,我表示惋惜,不是惋惜他们不识货,是惋惜他们当初怎么就还没看明白就跳进坑里了。时间。学习编程肯定会花去很多时间的,也许要比做其他所有事情花去的时间都会多一些,因为编程确实是一件困难的事。如果编程成为一个工作,公司还会经常要求你加班(比如我,周末还加班)。动手。编程没有捷径,唯一的进步方式就是动手去敲代码。当有一天你的手上敲的满是老茧(一定要是敲代码敲出来的!),离高手就不远了。所以吧,所以我要总结的都在开头了。
Android应用开发使用Java语言,所以要先学好Java基础,Java的面向对象,集合,多线程,IO流知识是必须的,还有xml。1. 不是很建议看视频,逛论坛,效率比较低;2. 多敲代码,有基础后可以使用一些第三方库,不必自己造轮子,以后开发多了慢慢深入了;3. Github是个好地方,有很多Demo,资料4. Android更新很快,建议学习新的API下面分享些参考资料:(Android开发涉及到的工具、教程合集)
(eoeAndroid wiki)关于学习软件开发方面我的一个答案:张龙的圣思园Java教学视频感觉很不错,有一课是讲学习方法的,可以看看有个博客,写了写张龙视频的学习笔记,后面也有Android的-------
圣思园开学仪式(学习方法谈:程序设计学习七宗罪)
/v_show/id_XODE3ODc3OTYw.html
先简单介绍一下自己,原专业机械,现在在一家不大不小的公司做安卓开发,我今年才毕业,所以也提供不了什么太好的建议,以供参考。首先,你得精通一门语言,开发安卓当然得会java。建议看完《java编程思想》。看的越深入越好。另外稍微花几天功夫了解下xml和操作系统。接下来就可以边开发应用程序边学习了。一开始你不需要多深入的了解,要学会基础的知识,如控件的使用,广播,意图等等。切忌眼高手低,在实践中加深对android的了解。在你了解了Android基本知识后,可以自己动手写两个小程序试试。这时候也可以稍微深入了解下Android更深入一点的知识,另外你也可以多关注一些Androud开源的项目,这个你可以参考我的同事@Trinea负责维护的Android开源库,你也可以向他问更深入的问题。答主现在也在学习中,最后,也是最重要的一点,向周围的人学习,这真的很重要
从hello world开始用简单的activity 显示hello world用fragment显示hello world用自定义view 显示hello world用C, C++写,通过NDK ,JNI调用显示hello world把官方文档上边的接口全都过一遍,符合预期的显示hello world然后,大神,求带!不好意思,这样子,系统方面没有涉及到,买个开发板,自己焊电路,烧个android进去,显示hello world
谢邀,其实具体的流程,楼上两位大神都已经说得很明白了,而且我身为题主的后辈,反而还要多多学习,我就说说我的学习经验吧。如果是数学专业出身,学编程就已经有了很好的底子,而编程虽然语言不同,很多思想其实是类似的。我之前有稍微接触过MFC,听老师讲过MVC的设计模式,在后来学习android时都有很大帮助。题主如果C++数据结构学得很好,对学习android相当有利。C/C++学得好,学java会快很多,把javase部分学好,直接买一本android教材啃一个月就行,我就是这样学的,现在遇到不懂的或者忘记的,就去翻书。书不仅一开始能引导我们入门,后面更多的是作为工具书的存在,基础学的差不多了,就去用下github上的开源项目,用得熟练了,就去看源代码,我也是最近才开始看pulltorefresh的源代码,能学到不少技巧。最后,如果对Java不感兴趣,其实可以学IOS开发。
正能量。学习能力和自制能力,总结思考,身边不乏成功的例子,总是在抱怨自己的不幸运,其实在于没有用全心去坚定方向吧,对于自己该好好反省了
The big nerd ranch guide的android programming,非常不错的Android开发入门书,有中文版,看了就知道
Android学习之路比较好的几个开源项目别人整理的一些Android项目
既然刚开始,为什么不学iOS呢?做安卓的人比较多,粥少!
首先你应该想想如何自学java?
开发android,需要哪些技能基础。①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议
⑤Android基础知识 ⑥服务器端开发知识①Java基础知识安卓学习视频的话老罗的视频还是不错的我当初是报的培训学校学的,都是学校老师讲的,课下有时候听一些视频课程,最多的还是自己敲代码,多看官方文档,多敲代码,那段时间天天除了上课就是敲代码,改bug。推荐几个不错的学习网站给你,可以自己学习下。csdn()它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,源码只是其中的一项,但是很实用 里边有很多大牛。DevStore()是一个开发者服务整合类平台,DevStore汇集国内外500余款开发者服务,每个服务都有相对应的服务评测报告。开发者可以在这里提交服务、下载源码、评测、对服务进行对比并进行评论等等。成立于2008年8月,是目前国内最大的开源技术社区,经过不断改进,已经形成了由开源软件库、代码分享、资讯、翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台,为中国广大开发者提供丰富多样的软件下载,源码托管等功能。自学的话平时就多看一些官方文档,帮助文档也是一个很好的参考资料,多看看,平时多敲代码,多看看注释多看规范,看完之后去敲代码主要是在实践过程中发现错误,多做项目自然多遇见问题,遇见问题解决问题,下次自然就知道怎么解决,在实践中发现真理。当然可以的话有一个老师还是很好的,但是要记得要是的作用只是引导,师傅领进门修行在个人。
08——09年,曾经在培训机构学习Java, 不过半途而废,没有坚持到最后,也想见不到后来移动端的开发这么火!上面有答主说马士兵和传智播客的视频,我也看过讲的非常的好,而且马士兵老师和我还是一个县的老乡,可惜没有在他的尚学堂学习,确实真的好可惜!种种机会都错过了,所以现在我还是一个纯屌丝……
郭霖《第一行代码》,绝对是入门首选。在此书上市之前,国内没有一本入门书籍是合格的。
我相信大多数人都没有初学就去看谷歌官方英文文档的勇气和毅力吧。。也看不懂。建议看几集教学视频之后再看文档,会好很多。

我要回帖

更多关于 怎么能瘦脸 的文章

 

随机推荐