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

前言

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

我是一个二本科班的应届生,今年毕业,想知道须要掌握什么样的安卓技能才能参加工做?

我在b站上看了不少安卓的教学视频,不少是16年左右的,内容很旧,想知道我学完这些,距离参加工做,还有哪些要去补充的?很是迷茫!

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

我相信有这种疑惑的同窗必定也不在少数,那么今天我就结合个人实际经验,来简单介绍一下,做为一名即将毕业的计算机专业的应届生,咱们须要作哪些功课才能帮助咱们更快地找到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开源之旅】
相关文章
相关标签/搜索