学习之路

概述

专访罗升阳:老罗的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.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一休日记

csdn打赏扣费20点,这

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

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

打赏作者

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

抵扣说明:

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

余额充值