一  明确自我定位

现在你是初级工程师,但是你想当个高级工程师,所 以,你就要给自己定个目标,即:我是要成为高级工程师的男人。有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就会成为 你的B格,也就是说,虽然我现在是小菜,但是我不是一般的小菜,从而内心有一种自豪感,而这种自豪感会给你提供正能量。这一条是虚的,但是是有用的。

二 学习路线

首 先找本android入门的书来看,这个好办,市面上大部分书都是入门的书,要把基本的东西搞懂,在学习的工程中要顺带写点demo,需要注意的 是,demo要自己写,哪怕照着书上的抄,也不能直接把书中的demo运行一下。这个是有很大的区别的,代码感觉必须要通过敲代码来培养,抄一遍代码和运 行一遍demo效果是截然不同的,这点一定要注意。入门的书看完后,基本就可以上手做一些开发了,比如公司的一些项目啥的。到此,我们已经成为初级工程师 了,这个时间一般1-3个月即可。

下面说下如何要成为中级工程师:

中级工程师这个阶段很重要,一般来 说需要1年左右的开发经验就能达到。首先,要找家靠谱的公司去做android,什么是靠谱的公司,就是在里面能学到东西,可以先不考虑待遇什么的,毕竟 技术有了后面待遇也就自然有了。平时在公司要认真做项目,积极主动,一切以学知识为目标,不要图轻松少做项目。同时还要学习公司内部高级工程师、架构师们 写的代码,加以理解变为自己的东西。这些都是工作中的经验,除了工作,还需要在业余时间勤奋 学习才可以。业余时间是指非工作时间的其他时间,而且这个时间利用的越多,你的成长之路历程就会越短,你就能越快地提高技术。大家不要小看业余时间,甚至 好多情况下,只有工作时间是远远不够的,必须在业余时间也学习才行。那么业余时间如何学习呢?给大家如下几个建议:

1. 写一个app,比如高仿系列,或者自己做一个app发布也行

 

2. 建立一个博客,csdn或者个人博客都行

这 一条在我的眼里,是必须的,因为学习讲究总结、融会贯通,而博客刚好可以给我们一个写总结的地方。时不时把自己的知识汇总下写一篇博客出来,这对自己是一 个提高,对别人也是一个帮助。这个怎么说呢,当你写博客,你就会发现一个知识你自己会了和写出来这是不一样的,能写出来才是真正地懂了。另外,当你的博客 写好了,会有好多人看,这对你也是一个赞赏和激励,让你觉得你的辛勤劳动更有价值,这种利人利己的事,是一定要做的。刚开始写点基础的,慢慢就要写点难一 点的,这样才能逐步提高。除了写博客,平时也要在内心中多总结、所思考才行,比如可以想想,android中所有的IPC方式有哪些等。写博客和做开源, 对于提高个人知名度很有作用,而人一旦有了知名度,很多好事就都来了。这里可以阅读我之前写的一篇文章:树立个人品牌:让名企hr们主动来找你

 

3. 建立或者参加开源,比如github

开源的好处就不同提了,github上各色各样的开源都有,平时大家都是拿来用,但是自己写一个开源给全世界的人用,不是一个很美好的事情吗?建议大家参加开源,因为开源看起来档次比较高。我就有自己的开源,大家可以参看一下:https://github.com/singwhatiwanna

 

4.研究android中一些高级的概念、源码等

这个是很重要的,除了量变外,还需要质变。作为一个中级工程师,必须在核心技术上也有所提高,比如aidl、remoteviews、android内部的运行机制等

经过上面几个过程,大概一年时间,android中级工程师就ok了,下面说说如何成为高级工程师:

成 为高级工程师就没有太具体了,就是把中级工程师的那几个建议,每个都做的很好,这个阶段往往需要1-2年或者更多。高级工程师的要求是:熟练掌握 android api,理解android的内部运行机制,对view、activity等一些常用的android内部运行机制熟练掌握,对常见的android知识 点都有涉猎,并且还能够解决一些比较偏门的问题(需要基于android的内部机制),对android的性能调优和适配有认识,代码风格较好并且具有一 定的设计模式,在工作上除了技术还要有业务的理解,能够指导初中级工程师,在工作中能够独挡一面。同时在解决问题的能力上达到一个全新的档次,即能够用恰 当的手段去解决无法google出来的问题的答案。这个解决问题的能力的档次,这个有点抽象,但是的确很重要,它决定了一个人的档次,具体的需要大家慢慢 体会,当技术达到一个档次后,你就可以轻松解决一些疑难杂症。

关于整个周期,从初级到高级大概要2-3年,或者更 久。这么说,业余时间利用的越充分,这个周期就会越短,你的个人价值就会越高。虽然说起来简单,但是努力的过程是很艰辛的,但是只要你坚持去努力,很快你 的生活就会不一样,相信这一点,谁都知道要努力才能有所收获,但为什么还是好多人没收获呢,原因是努力是不容易的,是要花时间的,是比看电影玩游戏要痛苦 很多的。不怕别人比我们聪明,就怕比我们聪明的人还比我们努力,好了,大家加油了,花的时间到了,高级工程师自然就有了。最后,再强调下努力的重要性,在 一个公司里,周围人的水平都和我们差不多,要深知脱颖而出的困难程度,从那么多人中脱颖而出是很难的,因此,一定要努力,一定要逼着自己去学习,这样才有 可能脱颖而出,请大家一定要有这个意识。

本文转自:http://blog.csdn.net/singwhatiwanna/article/details/42343847

【Mood-13】Android --如何从初级工程师进化为高级工程师的更多相关文章

  1. “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX

    "快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...

  2. .net web初级工程师教程

    序 这份教程,只针对正在努力找工作的初级.net web工程师,软件这行,刚入门时找工作是个坎,希望教程对各位有帮助. 教程将通过一个实际项目,简单明了地完整呈现,在实际工作中,工程师都做些什么及怎么 ...

  3. 13. Android框架和工具之 Android Drawable Factory

    1. AndroidDrawableFactory 一个生成Android应用所需尺寸图片的工具. 托管在Github之中: https://github.com/tizionario/Android ...

  4. android学习13——android egl hello world

    通常情况下我们使用GLSurfaceview来实现opengl渲染.GLSurfaceview实现上是对SurfaceView和EGL的封装.为了从本质上理解渲染流程,使用EGL和SurfaceVie ...

  5. 算法工程师进化-SQL

    1 引言 SQL操作往往是程序员必备的技能,对于算法工程师而言,熟练掌握SQL操作则更为重要.本文以<SQL语句执行顺序>作为学习资料,总结SQL的理论部分. 2 SQL查询语句的执行顺序 ...

  6. Android studio ocr初级app开发问题汇总(含工程代码)

    博客第一篇文章,稍作修改,增加文字介绍 开发目的 最近由于某些需求,需要在Android手机端实现OCR功能,大致为通过手机照相,识别出相片中的中文信息字段.但是由于新手光环+流程不熟悉,遇到了各种各 ...

  7. Android面试收集录13 Android虚拟机及编译过程

    一.什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...

  8. 10.13 android输入系统_多点触摸驱动理论与框架

    1.多点触摸驱动理论 驱动程序仅上报多个触点的位置就可以,是放大还是缩小由应用程序控制 对于多点触摸驱动在linux系统中有个输入子系统,其已经实现了open/read/write等接口 我们只需要实 ...

  9. 学习计划-----java初级工程师

    目标: 1.具备扎实的JAVA基础,对数据结构.基本算法熟练掌握,并具备基本的算法设计能力. 2.前台:精通JSP/Servlet.HTML.JavaScript.Ajax.Jquery, XML.J ...

随机推荐

  1. hbase->Mapreduce->hbase

    Hbase对Mapreduce API进行了扩展,方便Mapreduce任务读写HTable数据. package taglib.customer; import java.io.IOExceptio ...

  2. [转]hadoop运行mapreduce作业无法连接0.0.0.0/0.0.0.0:10020

    14/04/04 17:15:12 INFO mapreduce.Job:  map 0% reduce 0% 14/04/04 17:19:42 INFO mapreduce.Job:  map 4 ...

  3. 高性能服务器设计(Jeff Darcy's notes on high-performance server design

    高性能服务器设计(Jeff Darcy's notes on high-performance server design 我想通过这篇文章跟大家共享一下我多年来怎样开发“服务器”这类应用的一些想法和 ...

  4. 将前台传回的HttpServletRequest转换成HashMap

    import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set; impor ...

  5. .Net Core 扩展使用Refit

    .Net Core 扩展使用Refit 标签(空格分隔): 未分类 在.net core 2.1当中,目前可以是用HttpClientFactory进行Http的调用,它的使用方法我不再多说,具体参见 ...

  6. [开源]OSharpNS 步步为营系列 - 5. 添加前端Angular模块[完结]

    什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...

  7. [CentOS7] Segmentation fault (core dumped),但是在主机上找不到core文件

    1.问题描述 程序执行报:Segmentation fault (core dumped),但是在主机上找不到core文件 2.如何让系统生成core file /home>ulimit -ac ...

  8. Head First Python 1-4章学习感悟

    一.学习知识总结 (1)迭代         range(起始值,结束值,步长):包含起始值,不包含结束值,步长为正数 (2)导入模块 from datetime import datetime (3 ...

  9. 树的直径-CF592D Super M

    给定一颗n个节点树,边权为1,树上有m个点被标记,问从树上一个点出发,经过所有被标记的点的最短路程(起终点自选).同时输出可能开始的编号最小的那个点.M<=N<=123456. 先想:如果 ...

  10. vs.net远程调试

    有些时候,不能在本机器启动程序进行调试,例如调试全屏模式,或者调试那些需要在特定运行环境的程序,这时候就只能进行远程调试了. 一般的调试器都支持远程调试,vs也不例外.只需要在远程机器上启动一个应用程 ...