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

时间:2023-04-06 07:58:03

公众号 AndroidDeveloper

最近公众号上问我这个问题的比较多,比例如此之高,想着可能很多人都有这个疑问,姑且就单独写篇文章给你们解答下。

其实不管你是自学的还是培训的,是在校生还是毕业生,最终都逃离不开这个话题,不管你是找实习工作还是全职工作,性质都一样。今天我就来给大家详细说下自学 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

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

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