如何成为一名合格的Android开发工程师——技能篇

article/2025/9/8 10:08:32

前言

前段时间,一位计算机专业大四即将毕业的同学关注了我的公众号,然后问了我一系列的问题,表达出他对未来的迷茫:

我是一个二本科班的应届生,今年毕业,想知道需要掌握什么样的安卓技能才能参加工作?我在b站上看了很多安卓的教学视频,很多是16年左右的,内容很旧,想知道我学完这些,距离参加工作,还有哪些要去补充的?非常迷茫!

我仔细看了一下他提出的问题,归纳总结无非就是:计算机专业的应届生,需要掌握哪些技能才能找到Android方面的工作?

我相信有这种疑惑的同学一定也不在少数,那么今天我就结合我的实际经验,来简单介绍一下,作为一名即将毕业的计算机专业的应届生,我们需要做哪些功课才能帮助我们更快地找到Android相关的工作。

自我介绍

在开讲之前,我先简单地做一下自我介绍:

我是南通大学12级网络工程毕业,一个再普通不过的二流地方院校。16年毕业,15年10月找到的实习单位参加工作,中间跳槽了几家公司,一直从事Android相关的开发工作,目前已有5年有余。

平时喜欢逛逛github,看看掘金,有空就维护一下github上的开源项目,没空就写写文章,发发牢骚,是个再普通不过的屌丝程序猿。

说了我的这些经历,无非就是想告诉大家:我一个普通二流本科生能做到的,大家也一定能做到。所以大家不必担心,只要你能够按照我的指导去做的话,你一定可以比我更加优秀!

掌握扎实的基本功

俗话说:基础不牢,地动山摇

作为应届生,由于没有什么实际的项目经验,所以在面试过程中,用人单位会更看重应届生的基础知识掌握程度以及发展潜质。

所以,作为一名应届生,我们一定要把基本功的提升放在首位。那么要想成为一名Android开发者,我们需要着重掌握哪些内容呢?

  • 基础学科知识。如计算机组成原理、数据结构、计算机网络、操作系统、数据库设计、数字电路等。这些科目向我们介绍了计算机的工作原理,掌握了这些就可以帮助我们更好地理解程序的本质。
  • Java基础知识。包括语言的特性、语法、规范等。例如:Java数据类型、运算符、面向对象、集合类、泛型、注解、反射、多线程并发、Java虚拟机、设计模式等内容。
  • Android基础知识。例如:Android四大组件、Activity的生命周期以及启动模式、动画、自定义View、Android不同版本的特性、SQLite、内存泄漏、ANR、Context、Handler机制、View绘制渲染机制、事件分发机制等内容。

如果我们能够牢牢地掌握上面列举的内容,那么外面的公司绝对是抢着要你的。

认清学校与社会的差距

不要天真地认为把学校里学到的东西都学会了就可以顺利找到工作了,当然也不要认为学校里学的都是些没有用的东西。

作为一名应届生,我们非常有必要认清学校与社会存在的差距。

  • 学校里教的都是些非常重要且基础的东西,我称之为专业素养。这些东西非常重要,它直接决定了我们日后发展的天花板在哪里。

  • 社会上教的都是些具体工作领域方面的知识,我称之为职业技能。这些内容可以帮助我们更好地完成工作。

所以,我们除了要把学校里学的内容打扎实,还需要尽早地接触社会,找到对口的实习工作,掌握必要的职业技能。

我们在找实习单位的时候,可以参考以下几点:

  • 无论是大厂还是小厂,进去都会有所收获。进大厂我们可以收获不错的履历和人脉(这非常有用),学习到优秀的管理制度和流程控制,提高技术的深度。而在小厂可以磨练你的意志、获得更多主导的机会、更大的自由度,拓展技术的广度等。
  • 第一家实习单位可能极大影响个人的职场观和价值观,选择时需慎重。切忌去小微企业或者创业型公司,因为这类公司每天都可能徘徊在倒闭的边缘上,所以并不会重视人才的培养。
  • 在选择实习单位的时候,要多了解和掌握企业的信息,走正规渠道。不正规不可靠的千万别去;入职前,以任何借口让你交钱的公司不要去。

提高自己的动手能力

做技术搞开发的,动手能力永远是需要作为首要能力进行培养的。除非你是业内公认的技术大佬,否则秀出你的代码才是证明你实力的最佳方式。

很多小白在入门某一项语言或者技术的时候,通常都是购买网课或者买一本入门书籍翻看,抄一抄视频或者书中的源码,就天真地以为自己已经彻底掌握了。他们殊不知,这些只是一些皮毛而已,当条件稍微发生一点变化的时候,他们就彻底懵逼,手足无措了。

那么怎样才能摆脱这样的困境呢?其实非常简单,多敲代码,多练习,多思考,熟能生巧嘛。

下面我简单举几个例子,给大家一点启发:

  • 假如你今天学了Android如何自定义View控件,那么你就可以按照自己的想法写一个Android尚未提供给我们的控件或者是仿xxx的控件等。
  • 假如你今天学了Android的事件分发机制,那么你就可以尝试着解决几个层级较为复杂的事件冲突问题。
  • 假如你今天学了Google提供给我们进行应用开发的Jetpack框架组件,那么你就可以尝试用这个Jetpack组件去写个属于自己的app。

如何提高自己的动手能力

正如Linux之父的那句"Talk is cheap. Show me the code.",嘴上说千遍,也不如直接上代码撸一遍更加令人印象深刻。

说到这儿,可能又有朋友想问了:对于一个从来就没有具体项目经验的人来说,该从何做起呢?

这里我还是推荐大家多到github或者gitee这种开源代码托管平台去找一些优秀的开源项目,这些项目很多都是历经了各种复杂业务考验的高价值项目,临摹他们的代码,可以极大地提升我们的技术水平和编码水平。

那么当初我是怎么锻炼我的编码能力的呢?下面我就简单介绍一下供大家参考:

  • 1.首先到开源代码托管平台寻找到适合自己的目标项目。
  • 2.阅读项目的代码,初步了解项目的实现原理以及架构。
  • 3.自己新建一个项目,然后按照自己的理解去自己实现一个类似的项目,不懂的时候可以借鉴或者copy目标项目的代码(目标项目就类似于参考答案)。
  • 4.最低的要求是能够正常运行并且实现目标项目的主要功能,要求高一点的就是能够有一些属于自己的优化点或者特性等。
  • 5.最后对自己做的这个项目进行归纳总结,优秀一点的可以写一篇README介绍或者原理分析。

如果你能够按照我上面所说的,来回写个4~5个项目之后,相信你的动手能力一定会有质的飞跃。

最后

在这里,我想给新手朋友们一点建议:很多时候,很多事情,并不像你想象中的那么简单,千万不要自认为简单而不愿意去做,很多东西只有你亲手去做了之后,才会发现事情并不像你最初想的那么简单。

我是xuexiangjys,一枚热爱学习,爱好编程,致力于Android架构研究以及开源项目经验分享的技术up主。获取更多资讯,欢迎微信搜索公众号:【我的Android开源之旅】


http://chatgpt.dhexx.cn/article/OrrsdchG.shtml

相关文章

android开发工程师需要学什么?3年Android开发工程师面试经验分享,持续更新中

前言 咱们这行似乎每个人都有个常识:程序员做到35岁之后,职业道路就很窄了,但我不信这个邪,我今年37岁,依然活跃在开发一线,并且做到了月入四万+。 偶尔也有人问,你是怎么打破35岁…

Android APP应用工程师转Android Framework系统工程师(仅此一篇够了)

推荐阅读 干货|Android APP应用工程师转Framework工程师(仅此一篇够了) Android安全/逆向/系统定制 https://m.weishi100.com/mweb/series/?id1372437 Web安全/网络安全 https://m.weishi100.com/mweb/series/?id1373351 原创:哆啦安全,微信公众号​ Ubuntu系统…

系统Android开发工程师进阶指南,三个月学完,稳拿大厂offer

Android工程师想要成为架构师或想突破20~30K薪资范畴,拓宽技术的深度与广度是必经之路。我们千万不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划与学习习惯也很重要,但是最重要的还…

1.3 Android工程师的角色方向与定位

联系方式: 简书:WillFlow CSDN:WillFlow 微信公众号:WillFlow Android工程师的方向一般可以分为三类:专业方向、业务方向、操作系统方向。 个人认为对于初学者来说,一定要在开始的时候对各个方向有一个比较清晰的了解,然后有机会的话尽量按照兴趣来选择自

职业规划-Android工程师

Android工程师是指从事Android移动应用操作系统、游戏和各种Android平台功能的应用、开发和测试的技术人员。以手机开发为主要对象,包括但不限于手机操作系统、手机游戏、手机其他多种功能的开发和优化人员。 新手入门初级选手高级专家资深达人 一、新手入门 任职…

应用层协议 --- Telnet协议

Telnet 协议 Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式,它基于 TCP 协议,使用端口 23。 终端使用者在本地电脑上使用 telnet 程序,用它连接到服务器,终端使用者可以在 telne…

[计算机网络]应用层协议,HTTP,SMTP,DNS

应用层 应用层协议原理 网络应用程序体系结构 规定如何在各种端系统上组织应用程序,由研发者设计 客户机/服务器 服务器:对外提供服务的一系列硬件和软件 客户机:使用服务器提供的服务 服务器 7*24小时提供服务永久性访问地址/域名利用大量…

2 应用层 - 应用层协议原理

应用层协议原理 一、网络应用程序体系结构客户机/服务器 体系结构纯P2P 体系结构客户机/服务器与P2P的混合 二、进程通信客户机和服务器进程套接字(socket)进程与套接字关系 进程寻址进程识别信息(两部分) 用户代理(us…

HTTP协议:当下最主流的应用层协议之一,你确定不了解一下吗?

一.HTTP协议的含义 http是什么? 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。‘超’可以理解为除了文本之外的图片,音频和视频,和一些其…

计算机网络应用层协议分析总结

 1、应用层协议原理 1.1、网络应用程序体系结构 C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可能有时打开,也可能总是打开。C/S结构之下,客户机之间…

物联网应用层协议

物联网连接的七层协议如上图所示,从下往上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 应用层网络协议(DHCP)是一种使网络治理员能够中心治理和自动分配IP网络地址的通信协议。IP网络中,每…

6、应用层协议

目录 HTTP协议(超文本传输协议) FTP协议(文件传输协议) POP3协议(收邮件) SMTP协议(发邮件) DHCP协议(动态主机配置) DNS协议(地址解析&…

磁盘挂载 nvme

解决AWS 挂载、解决挂载完重启就消失等问题 linux上的盘和window的有区别,磁盘空间必须挂载在目录上,要不然没用 对与新增的硬盘、SSD固态硬盘、挂载到linux上的操作如下: df -h     #显示目前在Linux系统上的文件系统的磁盘使用情…

k8s数据挂载

nfs挂载 如果采用nfs挂载的方式,我们只需要将需要挂载的mysql-data目录指定nfs 的server和server的目的路径 ,如下,挂载到本机的/data/dev/mysql, 采用nfs的形式: volumes:- name: mysql-datanfs:server: localhostpath: /data/dev/mysql- na…

CentOS7磁盘挂载

1、查看磁盘是否存在 fdisk -l 或 fdisk -l |grep dev 通过下图可以看出有四块磁盘(/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde)共计4T需要挂载 2、进入分区工具设置(以磁盘/dev/vdc为例) fdisk /dev/vdc 依次输入以下选项 n p 回车 回车 t 8e …

云服务器挂载硬盘

系统CentOS7.5 联通的沃云服务器 步骤:先分区-格式化-挂载 1、使用 “fdisk -l” 命令查看硬盘情况: 画红色线的是数据盘,大小有64.4G左右,已经分区好了,所以在这里不用再分区了! 注意:如果提示“Disk /dev/vdb doesn’t contain a valid partition table”说明这块硬盘…

Docker容器挂载

docker的理念:将应用和环境打包成一个镜像!通过镜像启动容器运行 问题:在容器中存储的程序数据是需要持久化的,不能容器删了数据也随之删除。比如,安装一个MySQL容器,在其中存储了大量数据,结果…

在LINUX-DEBIAN系统下挂载新硬盘的方法

LINUX-DEBIAN系统下挂载新硬盘的方法。 总共六个部分,一起来看看吧,非常简单的。 一、fdisk -l 查看硬盘的使用情况,也就是哪些硬盘没有挂载 下面显示的,三块硬盘,其中二和三是没有挂载的。 二、df -h 查看挂载情况…

挂载命令

1.mount命令基本格式 linux所有存储设备都必须挂载使用,包括硬盘 命令名称:mount命令所在路径:/bin/mount执行权限:所有用户 mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] \ 设备文件名 挂载点# \:代表这一行没有…

vue挂载

一个人能力太小,聚沙成塔,抱团取火,分享知识,帮助学习, 有愿意或者有问题一起钻研,新人也好,老手也好,希望在这个寒冬下,尽力生活, 欢迎 一起 qq群&#xff0…