android学习路线:如何成长为高级工程师

转载地址:http://blog.csdn.net/singwhatiwanna/article/details/42343847

转载原因:博主说的挺好,前辈经验。高级也算是自己的一个长远目标吧,学习ing


##一 明确自我定位

现在你是初级工程师,但是你想当个高级工程师,所以,你就要给自己定个目标,即:我是要成为高级工程师的男人。有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就会成为你的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://www.mzph.cn/news/414886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2698):重读vue电商网站19之处理图片预览操作

图片预览窗可以用 el-dialog 组件来做&#xff0c;然后通过 on-preview 函数来处理图片预览的操作。 Js <!-- 图片预览 --> <el-dialog title"图片预览" :visible.sync"previewVisable" width"50%"><img :src"previewPath&…

Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS

/*** 判断定位服务是否开启** param* return true 表示开启*/ public static boolean isLocationEnabled(Context context) {int locationMode 0;String locationProviders;if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {try {locationMode Settings.Secure.…

vscode-spring-boot YAML_UNKNOWN_PROPERTY 解决

使用vscode开发&#xff0c;安装了vscode-spring-boot ,报错如下 解决方案&#xff0c;增加对yml文件的识别 新增.vscode/settings.json 内容如下&#xff1a; {"files.associations": {"*.yml": "yaml"} }

adb命令检测apk启动时间、内存、CPU使用情况、流量、电池电量等——常用的adb命令...

ADB&#xff1a;Android Debug Bridge&#xff0c;是Android SDK里一个可以直接操作安卓模拟器或真实设备的工具&#xff0c;颇为强大。检测APP&#xff1a;adb shell am start -W packageName/.MainActivity //启动时间adb shell dumpsys meminfo $PID …

vue3父组件调用子组件方法

父组件 <component ref"xponent" /><script lang"ts" setup> import { ref } from "vue"; const xponent ref();const download async () > {console.log(xponent)xponent.value.download() } </script>子组件核心方法&…

Android之Junit测试类

今天跟着视频学习了Junit测试类&#xff0c;趁热打铁、顺便把学的东西整理下来&#xff0c;再就是为了以后好回顾 1、Junit单元测试介绍&#xff1a; 在实际开发中&#xff0c;经常要对已经实现的功能进行单元测试&#xff0c;以保证当前单元没问题&#xff0c;尽可能的减少已有…

前端学习(2699):重读vue电商网站20之使用Timeline 时间线

可视化地呈现时间流信息。 由于 vue-cli-plugin-element 最后更新时间是 2019年1月&#xff0c;而 element-ui 中 Timeline 时间线更新是在 3月份&#xff0c;因此我们没有办法直接进行引用。因此&#xff0c;我们直接通过手动导入的方式。 然后&#xff0c;我们打开 element.j…

Android 高德地图根据地址获取经纬度,计算两个坐标的距离

1、到高德开放平台申请&#xff0c;获取key 高德开放平台&#xff1a;https://lbs.amap.com/ 2、下载高德定位及地址搜索SDK:https://download.csdn.net/download/meixi_android/10845407 3、项目绑定高德SDK &#xff08;1&#xff09;配置key <meta-data android:name&q…

Graphics.DrawRectangle Method(矩形)

Overload List Name Description DrawRectangle(Pen, Int32, Int32, Int32, Int32) Draws a rectangle specified by a coordinate pair, a width, and a height. DrawRectangle(Pen, Rectangle) Draws a rectangle specified by a Rectangle structure. DrawRec…

前端学习(2700):重读vue电商网站21之如何导入全局样式表

直接在 main.js将相关样式导入即可 Code // 导入全局样式表 import ./assets/css/global.css

Android中WebService的应用

1.简介 Android中的WebService 是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台&#xff0c;不同语言、不同技术整合到一起。在Android SDK中并没有提供调用WebService的库&#xff0c;因此&#xff0c;需要使用第三方类库&#xff08;KSOAP2&#x…

宝塔 nginx 配置文件的存放目录配置vue的history模式

在项目中使用vue的history模式&#xff0c;需要配置文件&#xff0c;使用到宝塔面板的服务器。现在记录存放位置。 /www/server/panel/vhost/nginx配置history模式 try_files $uri $uri/ /index.html qkbim/index.html;配置跨域 add_header Access-Control-Allow-Origin *;ad…

Android 高德地图添加自定义Marker,添加图片Marker,Marker点击事件

地图点击事件 map.setOnMapClickListener(new AMap.OnMapClickListener() {Overridepublic void onMapClick(LatLng latLng) {addMarker(map, latLng.latitude, latLng.longitude, latLng.toString());} }); private void addMarker(AMap map, double latitude, double longitu…

AccessClient插件在苹果电脑闪退

AccessClient闪退的原因&#xff1a;苹果在MacOS12.3中将系统中的python2运行库移除了&#xff0c;导致AccessClient执行时找不到python 解决方案&#xff1a;在AccessClient点击鼠标右键&#xff0c;选中显示包内容&#xff0c;进入到Contents/Resources/Scripts目录下找到mai…

mongodb报错一例

开发程序报错信息&#xff1a; Caused by: com.mongodb.MongoException: Executor error: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit. 从程序报错中可以看到是排序的内存不足。 解决办法…

查看Chome浏览器中已保存的密码

好累啊&#xff0c;今天上午模拟比赛&#xff0c;敲了一上午的代码&#xff0c;真是够够的&#xff1b;想想自己自学Java&#xff0c;然后自学Android&#xff0c;到现在一直没有放弃&#xff0c;其中要感激的人有很多很多&#xff0c;指导老师等等&#xff0c;最感谢的还是现在…

Didn't find class cn.jpush.android.service.DownloadProvider on path:

项目运行在安卓7.0、6.0/8.0没问题&#xff0c;可是运行在安卓4.4就直接奔溃了&#xff0c;提示应用停止运行。 解决方案 1、build.gradle设置multiDexEnabledtrue 2、在dependencies内加入compile ‘com.android.support:multidex:1.0.3’ 3、在Application类重写attachBase…

vscode开发java自定义代码模版

1、打开首选项配置 2、选择全局的 3、填写自己的代码块 {// Place your 全局 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable…

前端学习(2702):重读vue电商网站23之element-ui 如何按需导入

在element.js 文件中&#xff0c;按照如下方式&#xff0c;进行按需导入即可。然后通过 Vue.use()方法进行引用。&#xff08;优化点&#xff1a;也就是将组建导入都放在一起&#xff0c;如果组件过多的话&#xff0c;支持换行&#xff09;