如何自学Android编程?想自学android编程,从何入手

91百科网 54 0

之前有人留言说想看我所谓的奋斗史。 前天的这个调查也显示,这个群体的人也不少。 今天突然想到2年前我在知乎上回答过一个关于“如何自学Android编程”的问题,今天又去看了一遍。 时隔两年多再次阅读这篇文章,勾起了我很多回忆。 我非常感谢原来的答案。 它记录了我人生的一个阶段,给我留下了终生难忘的印象。 宝贵的资产。 虽然可能有些人已经看到了,但我觉得还是有必要搬到这里来给那些还在迷茫的人一些鼓励。

问题:“如何自学 Android 编程?”

我想自学Android编程,从哪里开始呢? 我是2000年读本科的,期间学习了C和C++数据结构,但之后就再也没有使用过它们。 我是数学专业的。 向专家请教。

我的答案

泻药。 我想我有资格回答你的问题。 我是跟着一个十足的编程白痴一步步学习的。

之前写过一篇博客《Android学习之路》,被疯狂转发,掀起一股学习Android的热潮。 不知道影响了多少人,但是这个博客已经成为Android新手必读的博客。 很多人问我是怎么来到这里的。 让我借此机会讲述我的故事。

内容有点长,就当作励志小说来读吧。 如果你对这些体验不感兴趣,可以直接阅读最后的“如何自学Android”部分。

大学

我以国家二流的本科学历上大学,专业主要是数学。 大学的总结就是:逃课、挂科、篮球、泡妞、Dota。

到目前为止,我可以说我的大学是我一生中最愉快的时期。 我从大一开始就逃课。 更好的原因是我对大学课程不感兴趣。 其实本质上还是因为高考太压抑了。 大学毕业后,没人在乎了,我开始无休止地放纵自己。 毫不夸张地说,大学四年所修的课不应该有逃课的那么多。 逃课最直接的后果就是挂科。 从大一到大三,我每年专业数学分析课都不及格。 后来听说如果补考不及格,就得重考,而且还要交钱。 这确实让我的家人知道我可以还钱。 ,所以我努力学习,终于以优异的成绩通过了每次复试。

我认为大学英语四级应该成为大学的必修考试。 我一生都不会忘记英语四级。 我考了三次才通过。 每次考试都被夸是裸考。 大学英语都是建立在高中基础之上的。 我第一次就失败了,丢了十多分。 第二次我睡觉了所以没有参加考试。 现在想来,我当时真是傻了。 我第三次终于通过了。 现在想来,我当时就通过了,真是幸运。 当我毕业找工作时,英语四级是最低要求。 在编程行业,英语确实很重要。 你必须想办法在大学通过英语四级。

现在想想,大学里唯一与编程相关的课程就是C语言,但对于我们专业来说,却是全校的公开课。 虽然最后通过了课程,但是我连i++和++i都看不懂。 这是可以想象的。 你应该能猜到我是怎么度过这段时间的。

自从我高中开始打篮球以来,毫无疑问我在大学就加入了大学篮球队并担任队长。 所以我大一和大二的大部分时间基本上都是在篮球场上度过的。 也是因为篮球征服了我现在的生活。 妻子。 大二下学期,周围的人都在打Dota,我就开始玩游戏,基本放弃了篮球。 那时我玩得很疯狂。 我记得最长的一次是和同学一起在网吧待了两周,但白天就回来了。 他正在睡觉,不然他早就死在网吧里了。

转眼间,我已经是一名大四学生了。 今年,在妻子的监督下,我终于不再不及格了。 在毕业前的最后一次评估中,我居然获得了三等奖学金。 我真是受宠若惊。 后来这些钱又被坏朋友用来贪污了。 。 我周围的同学都在准备考研,唯独我一个对此毫无兴趣。 自始至终,我考研从来没有花过一分钱,也没有买过一本书。 后来证明我的决定是正确的。 我身边的朋友都放弃了,失败的也没有通过考试。 即使那些通过考试的人也没有看到我考得有多好。 当然,如果我能进入一所好学校还是有帮助的。 的。

毕业

一转眼我就毕业了。 我在学校参加了几次招聘会,仍然喝得醉醺醺的。 它们都是我从未听说过的小企业。 我去的时候,都是各种各样的工厂。 根本不需要学历。 一个人只需付出一点努力就可以完成。 诸如此类的事情,或者各种推销电话。 。 。 我当时真的很着急。 大学四年了,毕业后却找不到一份像样的工作。 回到家后我该如何面对乡亲们?

3月份,一家IT测试培训机构举办了一次研讨会(具体名称我就不告诉大家了,免得以为是广告)。 他们听后表示,培训结束后就业有保障。 培训地点当然是在上海市中心。 自费,但下班后可以分期付款。 那时我不知道测试是用来做什么的,更不知道IT是用来做什么的。 当我回来时,我查了一下这个组织确实存在并且有一个网站。 知道不是骗子,我决定来上海一试。 当我决定来上海培训后,几个朋友就毫不犹豫地和我一起来了。 总共应该有7个人。 决定后没几天,我们就毅然背着大大小小的行李来到了上海。 我们当中,一部分是一次性付款,另一部分是分期付款。 后来证明我们来上海的决定是正确的。

培训之路

这并不是鼓励大家去培训,而是因为工作所迫,学校不好,大学里没有学到什么真本事,即使有前途也不会去培训!

训练的日子过得很轻松。 我每周上四天课,朝九晚五工作。毕竟我们家并不富裕。 我们在大学里努力学习了四年,毕业后还要花钱培训。 每个人都感到内疚。 。 刚开始的时候,我很有精神,想好好学习,但是坚持了很久,感觉有点轻松了,但还是学到了一些东西。

在培训期间,我接触了一些编程。 课程包括C语言、Oracle、Linux,剩下的都是软件测试理论。 其实都是很基础的东西。 它的目的是向您介绍这个行业。 Orace刚刚学习了一些基本的SQL语句。 我只是学了一些Linux命令,但至少我知道了计算机可以做很多事情。 以前,我一直以为电脑只是用来看电影、聊天、玩游戏的。 现在回想起来,如果给我一周的时间,我就可以走完整个培训课程,但当时的培训周期长达四个月。

第一份工作“SunNet”

我是7月份毕业后直接来到上海的。 四个月对我来说太长了,我不能再等了,所以在课程的最后一个月我很早就出来自己找工作了。 当时培训老师说,下班后工资大多在3500左右。 我觉得我比别人学得好,所以我一定比别人高,并且为面试准备了很长时间。 没想到,我面试的第一家公司就直接录取了我(后来发现是公司在家做孕检,急需检测)。 公司名字叫SunNet,中文名字叫山诺,薪资4000。 当我收到offer的时候我欣喜若狂!

真正接触编程

之后我正式加入SunNet,我的工作就是测试。 但我真正接触编程是在SunNet。 SunNet 是一家小型外国公司,总部位于休斯敦。 上海这边主要是研发部门。 研发人员总共不到10人。 主要业务是基于Web的,使用的语言是.NET。 当然,我的职责是网络测试,工作并不困难。 我是唯一一个以测试为主的人。 一进来就有好几个项目等着我去测试,好在我是数学专业的,有很好的逻辑思维能力。 经过加班,我终于可以准时了。 任务完成。

三个月的时间我成功成为一名全职员工,有一天我无意中得知公司里一位开发人员的工资比我多了2000。 事实上,他只比我早一年毕业。 我这才意识到开发和测试的薪资差距这么大,所以当时我就下定决心转开发,所以当我说我从测试转开发是因为钱的时候,说我是因为兴趣才坚持下来的,那是无稽之谈。 。 。

编程之路

由于我在公司的主要任务还是测试,任务也比较多,所以基本上每天都是九点钟才能回家。 打定主意后,我只能利用业余时间学习。 由于公司的主要业务是.NET,所以我很自然地开始学习.NET。 后来我了解到.NET是基于C#的。 在学习.NET之前,我首先要学习C#,我从公司借了一本C#学习资料,学习了两周左右。 我也做了很多认真的笔记。 之后我觉得语法已经学得差不多了,于是就借了一本.NET的书开始学习Web开发。

但网络开发远不像学习语言那么简单。 后来才知道web开发涉及到html、css、javascript、ajax、数据库等,范围太广了,所以为了效率,只能掌握每一项的基础知识,于是上网搜索,找到了w3school在线教程,这是个好东西。 里面的东西都是基础的。 我把教程整理到手机里,利用所有的时间在地铁上下班、吃饭时、回家时等学习,花了大约2个星期的时间才掌握了html、css、html等基础知识。 js。 当我准备正式学习.NET时,我的老板知道我正在学习开发。 我们的老板叫Aaron,他是一个典型的程序员。 他很胖,而且性格很好。 了解后,他并没有推荐我学习.NET。 他表示.NET已经出来十多年了,已经非常成熟了。 很多人在学校都有.NET教程,现在我比别人学得晚。 现在移动开发刚刚兴起,知道的人还不多。 有人建议我直接学习移动开发。 这句话真是让我点醒了! !

移动开发

听了老板的建议,我放弃了.NET,开始准备学习移动开发。 那是2012年初,整个移动互联网还处于起步阶段,iPhone 4还很受欢迎。 毫无疑问,我把目光投向了 iPhone 的开发。

这次有了体会,我知道iPhone开发首先要有编程语言。 了解到是Objective-C,于是就向公司借了一本OC的书(公司书很多,老板每个月都会买很多书,虽然很少人看),花了我近一周的时间才明白基本语法,因为之前学过C#,这次没有完全学完,想直接开始练习。 当我打算学习的时候,我意识到iOS开发必须在Mac上完成,这意味着我必须拥有一台Mac电脑。 虽然当时公司有,但是回家后就无法继续学习和练习,肯定会影响我的效率。 ,Mac对于当时的我来说简直就是奢侈品。 虽然现在它仍然是奢侈品,但在当时是买不起的。 于是只好放弃iPhone开发,转投Android(后来才知道还有虚拟机这种东西……)

安卓学习路径

经过一番周折,我终于确定了自己的方向。 这段时间,我浪费了很多时间,走了很多弯路,但是依然无法阻止我转行开发。 公司没有Android方面的书籍,所以我自己买了一本Android的书,名叫《疯狂Android讲义》。 作者是李刚! ! 别说这本书有多好,这本书比较厚,很厚,所以它讲的一些基础知识都比较详细。 新手按照上面的操作就可以完全理解了。 不知道这本书的内容有没有更新。 以前的内容不适合现在有点旧了。 这个时间应该是2012年3月,似乎很巧合的是,这个月该公司刚刚接手了一个移动终端项目。 有人在做iOS,但是公司里没有人懂Android开发。 其他人都忙着自己的项目。 老板看出了我的兴趣,问我是否愿意尝试一下。 我当然爽快地答应了,从此我就开始正式学习Android了。

当时的测试任务还很繁重,所以我只能挤出时间来做这个项目。 基本上每天晚上和周末我都会自动加班来完成项目。 现在看来,这个项目确实很简单。 如果比较快的话一周之内就可以搞定。 没有它也是可以完成的,不过当时我奋斗了一个多月,终于完成了。

完成这个项目后,我有了一些信心,但当时我的主要任务还是测试,开发的时间很少,所以我下定决心辞职,找一份专门做Android的工作。 解释完原因后,老板很理解,并建议我如果想发展就先找一个专门负责发展的职位,这样会让我进步更快。

在我的第一份工作中见到我的老板亚伦真是太幸运了!

薄荷

2012年4月底离职后,我开始在家准备面试和投简历。 由于我的基础很薄弱,之前的Android经验也很少,当时就说我在招聘Android岗位,但很多公司面试的基本都是Java内容。 ,而且我能感觉到工作内容与Android相关的相对较少。 来Mint面试的时候感觉非常好,包括CTO和CEO的面试。 正如预期的那样,几天之内我就收到了offer。 这是一次来之不易的机会,我非常珍惜。

我是2012年5月中旬加入Mint的,你觉得我到了Mint后我的Android之路会一帆风顺吗? 错了,路更难走。 我是 Mint 聘用的第一位 Android 工程师。 当时,Mint 只为 iOS 平台制作应用程序。 事实证明,这种做法不可取。 就连BOSS后来也亲口说过,投资者来投资的时候,看到的数据太少了,以后再做。 Android平台推出后,用户数据慢慢出现。 毕竟Android仍然拥有庞大的用户群。

我来到Mint的第一个任务是为联想电视制作一个视频应用程序。 这是一个令人痛苦的事情。 不得不摆弄联想的SDK、远程控制等,不过该app的功能比较简单,而且试用期间完成得很好,所以顺利转正了。 当我成为一名全职员工后,我制作了我的第一个 Android 应用程序,名为减肥食品库。 所有功能和页面均复制自iOS版本的App。 这时候很多以前没有做过的东西就涌了进来,比如网络库、http、api对接、组件定制等等。当时的资料和开源库还没有那么多。现在,公司里没有人可以提供指导。 ,我只好硬着头皮慢慢来。 为了赶进度,上线前夕我在公司呆了三天三夜。 累了就在公司里躺一会儿。 这是我一生中第一次经历这种情况,尽管该项目最终被推迟了。 ,但最终还是在可以接受的范围内推出了。 这是当时第一个测试Android平台的App。 遗憾的是,上线后表现不佳,没有达到预期效果。

红宝石,导轨

在该应用程序试运行表现不佳后,该公司决定暂停 Android 业务,专注于 iOS 平台。 我的处境变得非常尴尬。 CTO 跟我谈话,希望我可以转用 Ruby。 Android业务将暂停。 我们所有的后端 API 都基于 Ruby 语言。 虽然我当时有些不舍,但也无可奈何,只能避免失去。 我必须硬着头皮继续我的工作,所以我开始了我的 Ruby 之旅。

学习Ruby和Rails是我迄今为止遇到的最大困难。 Ruby 是一种动态语言,而 Ruby On Rails 是一种流行的快速 Web 开发框架。 学习 Ruby 的区别在于你必须学习 Linux。 编码基本上是在终端中完成的。 没有IDE,没有编译检查,你习惯了各种命令行。 这对于刚开始开发的人来说确实是很难的。 那时我内心很抵触,学习能力和领悟能力都很差。 我能感觉到公司领导对我已经不太满意了。 现在想想,当时公司并没有解雇我。 真的要感谢我们的CTO,一个很有耐心的人。 ,敢于给新人机会的人。 我在这个过程中遇到了很大的困难。 幸运的是,我得到了 Mint Ruby 工程师同事的帮助。 当我遇到问题时,他们总是鼓励我,乐此不疲。 当基础、经验、能力不够的时候,我总是要克服这个困难,让别人看到我的态度。 所以我在学习Ruby和Rails的时候,每天都是坐末班车回来的。 我记得当时是11点40分。 这种状态持续了一个月,包括周末,没有间断。

这个月,我在公司的主要任务就是学习。 我还没有安排什么。 我偶尔帮同事修电脑、调整电话线。 为此,我非常感谢 Mint 和我的 CTO Vincent。 恐怕任何一家公司都不是这样的。 你不能给一个人这样单独的学习时间。 经过一个月的时间,我的学习终于有了一些进步,我开始真正做Rails项目,做后端,写API。 虽然效率很低,代码也很糟糕,但我在 Ruby 工作的过程中从我们的 CTO 那里学到了很多设计的东西。 对象的思想、设计模式等都在这个阶段暴露出来。 从那时起,我就习惯了各种终端操作,熟悉了一些基本的Linux命令,热爱Ubuntu,参加了Ruby Conf 2012大会,喜欢上了Sublime,接触了Git、GitHub,建立了自己的博客。 我很感激我作为 Ruby 工作的时间。 它让我接触到了一个不同的世界。 我的心态完全改变了,变得更加开放,愿意分享。

返回安卓

我在从事 ruby​​ 工作时非常高兴。 我付出了一生最大的努力,也得到了一些小小的成果。 我喜欢 Ruby 语言,直到现在我认为 Ruby 是最优雅的语言。 但Android一直在我心中占有一席之地,我从未放弃过。 直到2013年5月,当Android的份额几乎疯狂增长时,该公司不得不开始关注Android市场,因此该公司计划推出Android版本的应用程序。 于是作为公司唯一的Android程序员,CTO再次征求我的意见,问我是继续做Ruby还是做Android? 虽然我更喜欢ruby语言,但从心底里我更喜欢客户端开发。 这与语言无关。 客户端是用户最能感知的部分,我创造的东西更有成就感。 我就在等待这个机会,此时此刻我毫不犹豫地选择继续做Android。

当我回到Android开发时,我自己开发了一个新的应用程序。 经历了之前的一系列挫折之后​​,我突然觉得没有什么比这更困难的了。 我独自探索了结构并克服了问题。 该应用程序自推出以来一直在快速而疯狂地增长。 目前,它是薄荷的。 App用户总数已突破1000万,公司已成功筹集资金,业务发展越来越好。

后记

既然我一步步走到了这里,我就知道这有多艰难。 从那时起,我就一直坚持写博客。 除了我自己的积累之外,我也希望能够帮助到更多的人,所以现在大家可以看到无论是我的GitHub、博客、微博还是微信公众号都乐于分享。 希望您能少走我走过的弯路。 虽然终于到达了终点,但如果有一条笔直的路就最好了。

总结

上面长篇大论地描述了我的旧经历,看似与问题主题无关,但实际上却有很大关系:

1、如果你非专业毕业想转行编程,看完我的经历你一定非常有信心和动力。 我能做到,你也能做到,更何况我在这个过程中走了那么多弯路;

2、如果你接触过一些数据结构、编程语言等,想学习编程,你应该比那些非该专业的人更有信心,自己有更多的基础。 你要做的就是坚定信念,继续前行;

3. 不要哀叹上帝的不公。 一路上的旅途非常凄惨。 我走了太多的弯路,遇到了太多的困难。 它们都是我一生中永远不会忘记的酸甜苦辣。 但同时,我又很幸运。 我的前任老板 Aaron 和现任 CTO 深深影响了我后来的职业发现。 我在 Mint 的一些朋友帮助了我。 女朋友给了我无数个日日夜夜的理解和支持。 上帝总是会给你制造困难。 我对你有一些恩惠;

4、如果你正准备做开发者,或者已经在做开发者,没有信心、没有动力,或者对未来感到迷茫,就当励志小说来读吧。 你要做的就是做好你现在正在做的事情。 我相信,你的努力一定会得到回报;

建议

评论里有人说自己是在校生,想给点建议,那我后面提点建议作为反例:

1.每天花1小时阅读。 难的不是1小时,而是坚持;

2、课程最好不要挂科,因为如果挂科了,你还得花时间去弥补;

3. 英语对于编程非常重要,尽量习惯英文阅读;

4、一定要学好数据结构和算法。 这是编程最重要的一课。 以后你可能用不到,但至少用的时候会有印象;

5. 你必须在大三或大四的时候去实习。 对于编程来说,经验还是比较重要的。 实习经历比你的理论有效得多;

6.找个女朋友。 不是说工作以后就找不到了,而是从事编程工作后,很少有时间和精力去接触其他女孩了,所以如果可以的话,找一个能与你同甘共苦的女朋友毕业前。 酒吧;

7、第一份工作很重要,因为你会受到一些同事和周围公司氛围的影响。 我很幸运能够见到亚伦和文森特。 他们是迄今为止我最尊敬的两个人;

如何自学 Android 编程

最后一件事应该是主体最需要的:

1.《Android学习之路》前面说过,我的这篇博客是Android新手必备的资料;

2.书不多,适合自己的就行。 我推荐一本Android和两本Java书籍;

《第一行代码》:CSDN博客专家郭林的作品;

《Thinking In Java》:经典的Java书籍,不用多说;

《Effective Java》:进阶Java必备书籍;

3、有些人一开始看书也有困难。 没关系。 然后去网上看视频。 将视频和书籍结合在一起观看。 一边看一边做笔记。 推荐Mars老师的视频,包括Java基础和Android章节:

Java4Android.zip_免费高速下载

极客学院视频

视频来自 MOOC.com

不同品味的人可以去各大网站搜索适合自己的教学视频。

4、多花点时间在目前最流行的开源社区GitHub上。 多参与一些开源项目,慢慢尝试阅读牛人的代码。 到时候,你也可以为开源社区做出贡献。 可以说,在GitHub上你应该是认真的。 你在一年内学到的东西比大学四年学到的东西要多得多;

5.关注Android社区中的一些优秀博客:

我的博客:

我的一些好朋友的博客。 他们不仅擅长Android,而且是活跃于社区、乐于分享、帮助他人、推动技术进步的有前途的年轻人。

6、善于使用搜索引擎。 开始使用Google并学习搜索英文关键词。 当你有疑问的时候,你会立刻想到去搜索,而不是去问别人;

标签: 编程 培训 薄荷 自学 视频

发表评论 (已有39066条评论)

评论列表