分享

自学Android到什么程度才能找到工作?

 豆20710111103 2016-05-12

读完本文大概需要4分钟。


微信公众号最近新出了一个功能,我觉得很赞,就是可以非常方便的看到每个人的留言次数、赞赏次数等,截个图给你们看下:




看到这个赞赏数的时候我惊呆了,这位同学竟然持续赞赏了我这么多次,哪怕每次赞赏我2块钱也破费了有七八十了,我知道我的文章对你们有帮助,但是这哥们还是远远超出了我的想象,不止他一个,赞赏十几二十次的不在少数,他们从没奢求在我这得到过什么,我也从没有承诺过赞赏有什么特殊待遇,真的非常感动这些一直支持认可我的人,某种意义上是你们支撑我坚持写到现在。


但是我想着要为这些一直默默「付出」的人回馈点什么,于是就给这篇文章「爱我或者恨我,我就是我!」赞赏我的所有人一个小小的福利,就是可以问我一个问题,请记住,只有一个问题,需要用简短的语言描述清楚你的问题,其实提问也是一门技术,可以是关于任何话题的,如果我理解不了你的问题,或者认为你的问题不值得回答可能不会作答哦。


就这样一个小小的福利,没想到大大超出他们的预期,因为他们赞赏只是单纯的支持我的文章而已,并没有其他想法,一看到我主动回复的这个福利还蛮惊喜的。于是问的最多的就是今天的话题「自学Android到什么程度才能找到工作?」,比例如此之高,想着可能很多人都有这个疑问,姑且就单独写篇文章给你们解答下。


其实不管你是自学的还是培训的,是在校生还是毕业生,最终都逃离不开这个话题,不管你是找实习工作还是全职工作,性质都一样。今天我就来给大家详细说下自学 Android 到什么程度才有资格找到一份说得过去的工作!


1
Java基础


Java语言其实应用很广泛,对于Android开发来说只需要你掌握 Java SE 就够了,尤其对于一个Android初学者只需要掌握Java基础就行,这包括哪些呢?我粗略的列了下,主要包括:


Java基本语法、面向对象相关的基本概念与思想,常用String类的api,异常处理,IO基础,容器,多线程,内存管理与垃圾回收, 知道并最好知道几种常见的 Java 设计模式等,建议可以找些网上Java面试宝典之类的文章,熟悉下面试常遇到的一些Java知识点,一般都是Java基础。


2
Android基础


Java 如果算基础中的基础,那这部分才是你找工作的核心技能,毕竟你要从事的是Android开发,所以Android基础一定要牢固,这部分包括:


Android基础UI控件的熟练掌握,也就是指 Button、TextView、EditText、CheckBox、RadioButton、ImageView、Spinner、ProgressBar、SeekBar、ListView、RecycleView、ScrollView等,可能不全,以上只是一时想到的,可自行补充。


Android四大组件的理解与熟练掌握,四大组件就不必说了吧,具体掌握到什么程度呢?如果我问到「Activity的生命周期」你还支支吾吾的那我就没心情继续问下去了,其他一些如Activity的四种启动模式,Fragment的生命周期、Fragment与Activity之间的关系,BroadcastReceiver、ContentProvider、Service的使用场景与具体用法,更细节点的如 BroadcastReceiver 的广播类型与不同的注册方式的区别等都应该关注并理解到位。


动画相关也是必须掌握的,不管是矢量动画还是属性动画的api都应该熟练,一些简单的动画应该随手就能写出来才行。


自定义View得会吧?这个在实际的开发中经常遇到,因为基本的那些UI控件不可能完全满足你的需求。


Sqlite与SQL语句得掌握吧,数据库虽然说在客户端开发上只有特定的业务或者场景才用得到,但是SQL语句这是基础,基本的操作sqlite相关的api也必须要掌握。


常见的数据格式与解析方法得了解吧,虽然目前常用的数据格式就是json,解析库也有很多,如Gson、Jackson、Fastjson等。


网络编程相关的基础知识要掌握,如http协议相关,如http method, status code, request & response, http cache, request header, params等,Android请求网络相关的api,虽然现在成熟的网络请求库很多,但是自己应该试着用 HttpUrlConnection 封装一个网络库,哪怕封装的很烂,自己也要尝试着写一下。


还有...暂时想不到了,以上都是随手想到的,后面如果再想到就补充下。


3
项目经验


其实大部分人都觉得自己的基础掌握的还算可以,但是为什么就找不到一份工作呢?其实项目经验这个才是很关键的,因为编程行业是一个非常注重能力的行业,你理论基础掌握的再好,没有实践验证都是不可靠的。


那有些人又说了,我一个自学的,或者一个在校生,没有工作过哪来的项目经验啊?那你就错了,项目经验并不单纯指工作中的项目经验,你自己完全可以写一个业余练手项目,这都可以算作项目经验。


但是这些练手项目哪里来呢?我只会写Android,其他都不会啊,哪那么容易就写一个项目出来了?


在现在这个时代随便写一个项目练手还真的非常容易,现在有各种开放的api,你完全不用关心后端数据问题,举个例子,新浪微博有api,我就基于新浪微博api写个简单的微博客户端,有多简单呢?我甚至只能查看微博,其他啥都干不了,完成了查看这一步,再接着慢慢完善其他功能,不要觉得写一个微博客户端遥不可及。如果微博需要登录授权,可能稍难点,有更简单的直接读取数据的,如知乎日报,如对糗百进行数据抓包,写一个糗百的简易客户端,这类就完全不用授权,再比如我写个天气的客户端,关于天气现成的接口不要太多。


至于我怎么知道有哪些现成的api可以直接用?就知道你要问这个问题,给你找好了,百毒有个api store,收集了太多可以直接用的开放api,地址:http://apistore.baidu.com/


(PS:别借机黑我,抵制百毒不代表百毒的所有东西都是垃圾,有一说一,这个 api store 对开发者来说还是蛮不错的!)


最后,可能不是特别详细,如果我有时间,我甚至都想搞份超详细的教程课表给你们,可惜精力真的有限,没那么多时间去做。但是大的方向绝对ok的,如果你掌握了以上列举的基础,然后又自己从头到尾做了一个还算完整的项目,相信我,找到一份实习或者工作很轻松。如果你没找到,那可能只是运气跟机会的问题罢了,自己有能力完全不用担心,只是机会还没到,缺的只是时间而已!


最最后觉得本文对你有帮助再赞赏,这是我坚持原创干货分享的最大动力,但是赞赏的人不承诺有任何福利,请慎重!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多