学习之路

概述

专访罗升阳:老罗的Android之旅有感!

离大神级别,差了不止那么一点点,感觉有鸿沟了!

激励一下自己,别放弃,该努力了!

If you can’t fly then run, if you can’t run then walk, if you can’t walk then crawl, but whatever you do, you have to keep moving forward.
如果飞不起来,那就跑;跑不动,那就走;走不了,那就爬。无论怎样,都要继续前行。

C/C++/C#/Java/PHP

由于学的是计算机专业,大一的时候就要开始编程的了。一开始学的就是C语言,不像现在很多人一开始学的是都是C#、Java、PHP这些高级又相当易用的语言了。后来才逐渐学习了C++、Java和C#等这些高级语言。刚开始学C语言还是很痛苦的,龙其学到指针、链表这些知识的时候。记得大一上学期的国庆节,还专门花了几天的时候去啃了链表的实现原理。现在回想起来,一开始就选择学习C语言是对的。因为无论你现在工作用的是什么语言,如果想要把它背后依靠的平台吃透,都不可避免地需要了解它的底层实现,而这些底层实现基本上都是离不开C/C++。或者换句话说,语言只是一个工具,要理解你的软件实现原理,关键都是要理解软件背后的计算机系统,而C是最接近计算机系统的语言。因此,我是非常建议有志于从事软件开发的同学们,无论你现在、以后工作用的是什么语言,都一定要学好C/C++。

Linux

那两年基本是把所有的业余时间都花在了学习Android上,包括工作日的下班时间、周末、节假日等。由于是第一次接触这么系统又这么底层的知识,从一开始恶补Linux内核知识,到后来系统地学习Android系统的专用驱动、HAL层和应用程序架构层等知识期间,遇到的困难是可想而知的。以致于在花了两年的时间,完成Android系统研究的第一阶段任务之后,忍不住写了一篇文章《2012年的Android之旅:梦想、学习、坚持、自信、淡定》总结这段学习经历。

Android和Java

罗升阳:实际上,Android是Android,Java是Java。不用Java,用C/C++写的程序,也一样可以在Android上运行。对于这个问题,其实不只是初学者,对于不少有经验的开发者,也会认为做Android应用开发,懂Java就行了。从最近面试的一些人来看,就很明显地感觉到这个问题的普遍性。很多Android应用开发者只懂得使用Android SDK提供的Java接口来开发东西,但是没有进一步去学习一些更深层次的东西。

Android学习

从语言层面来说,需要掌握C、C++、Java,甚至还有汇编。

从系统层面来说,需要有Linux内核基础,包括进程管理、内存管理、文件系统等,还需要掌握Android的HAL、C/C++ Runtime Framework、Java Runtime Framework和Davivk等。

虽然应用开发者平时不用接触系统方面的东西,但是如果能够深入理解Android的框架层,好处是不言而喻的。

首先,可以提高能力和拓宽眼界。因为要看得懂Android系统的代码,要求了解很多知识。要了解这么多的知识,又需要不断地去学习。在学习的过程中,能力和眼界就会自然得到提高和拓宽。

其次,可以正确地使用SDK接口。学习SDK接口,我们一般是通过阅读SDK文档。但是这些SDK文档只是告诉你它们是怎么用的,没有告诉你它们是怎么实现的。如果我们既知道一个SDK接口是怎么用的,又知道它是怎么实现的,那么用起来肯定会得心应用很多。而且在使用出错的时候,也能迅速地通过检查它的实现代码来定位原因。(个人觉得自己程序出错的时候,就很难定位。谢谢老罗)

再者,可以有效地解决BUG。当程序运行出错的时候,系统除了会输出异常信息或者Crash信息之外,通常还有伴随着一些错误日志输出。往往这些系统输出的错误日志包含很丰富的信息,告诉到底是哪些地方出错了。但是这些错误日志是由系统输出的,它们的含义以及输出条件都是由系统定义的。这时候如果要理解到底是什么地方出错了,那就得对系统有一定的理解,甚至需要找到输出这些日志的系统代码来阅读一下。

总之就是技多不压身,学到的东西都是自己的,以后靠这些技术赚到的钱也是自己的。但是前面讲到,要学入理解Android系统,需要具备的知识是很多的。基于这个原因,应用开发者最需要注意的问题就是不要被这个问题吓退。其实是没有人与生俱来就具备这些知识的,而且知识是无究无尽的,活到老就可以学到老。所以一定要坚持学习,一点一滴的积累,哪些不懂就补哪里。开始学慢一点没有关系,等积累到一定程度的时候,就会发现自己的学习能力呈加速度趋势。

总结

上家公司自己也遇到了个鹅厂老大,他解决问题的确什么都很快,但是个人感觉从他身上学不到什么东西。因为你问他的时候,他第一句就是“你这都不会?”我“呃。。。”内心其实是百感交集的,然后跟老大以这种方式交流完了之后,各种百度该怎么怎么怎么,然后还是没有找到自己想要的答案。然后还是没有明白自身到底是什么问题。

唉,看完了老罗的Android之旅,我突然是有点明白自己做事情的时候,为什么没别人快,找bug也没别人快的原因了。在这里真心感谢老罗。也让自己明白,学习Android这事,真的不是一天两天就精通xxx,这个不可能,每天下班回来不学习,真是跟不上大神的节奏。感觉被人甩下一大截的感觉。这滋味。。。总之,罗马不是一天建成的。没有看大神的经历,感觉自己恐怕这辈子也难明白,为什么没别人好了。哈哈,总之我还差得太远。。。

知道自己病根在哪儿,就知道对症下药了,自己努力,珍重。

If you can’t fly then run, if you can’t run then walk, if you can’t walk then crawl, but whatever you do, you have to keep moving forward.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一休日记

csdn打赏扣费20点,这

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值