Android开发Android开发经验谈Android技术知识

干货分享:10年Android资深程序员的开发经验总结

2020-08-24  本文已影响0人  不正经的创作者

前言

这是我这几年来的一些经历,我用故事的方式告诉大家,希望大家能从中领悟到一些东西,因为只有真正理解了,才会变为你们自己脑子里谁也抢不走的东西。希望Android“小菜鸟们”花点时间看完,一定会对你们有收获的。

01

刚毕业时,到一家软件创业公司上班,公司规模不大,加上领导只有6个人,主要做教育平台,那时待遇,1500元。(不怕你笑话,刚毕业时对薪资不敢期望,有人收留就已经感激不尽了)

做会员模块时,要实现在线支付功能,得与支付宝、财付通第三方支付sdk对接,在此之前,我对这些一点都不了解。

不怕你笑话,当时心里那个怕啊,虽说专业是计算机软件的,可同学中从事专业对口的的,寥寥无几啊,指望同学指点几乎不太可能。

找同事帮忙也就更不太可能了,他们都很忙,负责的模块也多,当时心里就慌了,要是没能完成任务,岂不是得丢了饭碗。如同人家说的,一毕业就失业啊,好不容易应聘到的岗位,如果因此就没有了,心不甘。

在做程序员前,早就听老师说过,程序员最关键的是解决问题,甭管你之前学没学过,只要在你职责范围内有需求,你都得想方设法把问题处理。

想到这,心静了下来,于是逐个访问官网,按照官网提供的文档以及官网提供的demo,逐个对接到项目中来,领导安排我做这个模块前, 还特意给我的账号各打了10元,方便调试。

对接这两个,我用了4天的时间,虽然中间遇到一些坑,通过查看官方论坛查看别人碰到相似问题的,实在没法就加入官网技术群,找技术支持帮忙。

记得周五那天演示给领导看时,领导轻轻拍了我一下肩膀,说,“不错,流程走通了”。心里甭提有多开心,这次任务给予了我足够的信心,让我继续走程序员这条路。

02

后来我成功应聘到某集团技术部担任技术员,也是网站开发,主要开发办公OA系统和电子商务。

有段时间工作相对比较轻松,那时Android开发比较火,我正好买了一台智能手机,如果不能让其实现资源最大化的利用,太浪费资源了。

说来也巧,部门临时来了个重要客户单子,需要开发一个安卓app,由于公司主要业务不是做app,也就没计划招app开发人员。同事都是从事网站开发的,我刚好会点安卓,项目周期也算比较充足,领导就把这个项目交给我负责,说实在,我当时挺开心,正好给自己检测一下这段时间的学习成果。

由于有一定的Android基础和时间比较充足,让我有更多的时间去查找相关开发资料,这个Android客户端也顺利完成了,客户也比较满意。

有些东西你只要用心学习去做,其实并不像你想象那么难。要敢于去尝试,给自己一点点压力,取得的效果是你自己难以想象的。

喷泉之所以漂亮是因为她有了压力;瀑布之所以壮观是因为她没有了退路;水之所以能穿石是因为永远在坚持。

03

职场上,请牢记,解决问题是我们的义务。公司请我们来的目的只有一个,解决问题。对于领导安排的工作,千万不要说“我不会”、“我做不到”类似这样的话。

工作中要是遇到困难,这很正常,我们需要做的是主动寻找答案和办法,哪怕你的办法不妥,那么就去问,但无论如何请不要对你的领导说,我不会。当然特殊的需求除外,譬如什么接口都没有就要,就要我们根据手机壳动态更换App主题颜色。

有次听见市场部的领导安排一位同事定一个大会议室,客户下午要来讨论需求。虽然是大公司,但要定个大的会议室是很难订到的,弄不好还需托关系。这个同事问了楼层前台,前台说没有大会议室,被其他部门定了,于是他跟领导说“前台说没有大会议室了,我订不到了”,领导当时就急了,“那怎么办?让我来定吗?还是叫客户不要来开会了?”

这位同事发现自己订不到会议室后,首先要自己想办法解决问题,向前台说明此处会议的重要性,看看能否和其他部门协商一下,而不是直接向领导反馈“我订不到”。

解决问题的能力是员工最关键的能力。在工作中遇到困难特别正常,在这时,我们有一项义务,就是找到解决问题的办法,而不是制造问题。

04

要想人前显贵,背地里需付出更大的努力。大家都在同一个平台下干活,智商其实都差不多,谁也不比谁高多少(当然天才除外),大多拼的是用心程度。

一项任务,你用心了,就有可能比人做得好。要是你原本就落后别人一大截,人家下班你也下班,人家玩你也跟着玩。试问一下,你拿什么和人家竞争?凭长相?

我们有没有用心去做,领导一看就清楚,如果你想糊弄过关,抱歉,领导并不傻。领导在判断问题时,标准其实也很简单:

我能想到的,你没有想到,说明你不怎么用心;

我能想到的,你只想到了一部分,说明你用心不够;

我没想到的,你想到了,说明你不仅做到了,还做到位了。

也就是我们平时所说的“超预期”。如果你每次都能给你的领导一个超预期的结果,那绝对是个好员工,颁发个最佳年度员工奖都不为过,升职加薪指日可待。

作为员工,不管我们的工作能力如何,首先考虑的就是如何能够让领导认可我们的工作。

想要让领导认可,就需要知道领导对我们的预期值。比如领导让你做一个方案,方案周五要使用,如果你在周三或周四提前完成,这样你就超过了领导的预期;反之,如果你在周五才完成,虽然你完成了安排的工作,但要是方案哪里出现不足,需要调整之类,这样时间就会相对比较仓促,你在领导心中就会产生不好的印象,这对你以后的工作十分不利。

但程序员的岗位有点特殊,要是我们总是提前跟领导反馈任务已经完成了,下次安排给我们的任务可能就加重了,如果我们自己负责的模块提前的完成,这时我们可以自己先测试,提前解决已知bug,不用等到测试反馈。也不至于一给测试人员测试,问题就一大堆。要是真没发现什么bug,可以利用这个时间多学点新知识。

如果对于领导安排的任务实现有问题, 应该尽早提出,再根据领导的期望去有针对性地工作,从而给自己创造一个良好的工作环境。比如,当你接到一项任务后,领导要是对任务没有提出具体要求,可以根据具体情况主动去和领导讨论,将你自己的想法告诉他。在开始工作之前,提前和领导沟通你对工作完成时间的预计。

要是发现有困难,要及时反馈,比如,“根据我的工作经验,这项任务完成可能要比预期的时间向后延迟两天”等,这样在工作之前就让领导心中有所了解,取得表现自己的机会或者避免因为完成时间的延后而给领导制造麻烦,同时也会建立起良好的信任关系。

05

作为一名Android 开发人员,如何在面试中脱颖而出,找到自己心仪的工作?就个人观点看,一般需要这样的技能:技术扎实,有技术追求和工作激情 ;良好的沟通和协作。

简单点,就是技术水平和沟通能力。其中技术始终是面试成败的决定因素,技术掌握到什么程度才能相对轻松地通过面试呢?

一般来说,一场Android面试内容不太可能全是Android的问题,应该也会与编程基础相关的问题。譬如数据结构、算法和常见的设计模式要熟悉,比如单例模式、工程模式、观察者模式等。至于数据结构工作中不常用到,但还是要稍微了解下,能熟练掌握更好。

在工作中不断提高自身技能,提高自身的竞争力。如果提高自身的核心竞争力,这里给几点建议:

1、形成个人知识体系

工作中,我们的知识积累往往相对比较零散,需要我们思考汇总,从而形成自己的理解,围绕自己的职业目标,去有意的获取和提高自己的知识范围,塑造有利于自己职业生涯的知识体系。

对于基础知识,要重视。比如Activity的启动模式、Service的启动模式、消息机制等,这种问题很多。这类知识点,我们在开发过程中可能不会去太在意,这会导致一个问题,那就是开发应用没问题,但要是我们辞职了,去面试,要是在面试时面试官只要稍微问下细节或者特殊情况,可能就接不住了。 所以,平时开发中还是得重视。

2、形成个人方法体系

著名的PDCA循环(Plan\Do\Check\Action),也称戴明环。PDCA是为了提高质量的管理思想,是一套科学程序,注重管理活动的全部过程。

“P”是PLAN:制定目标和计划。

《礼记·中庸》提到:“凡事预则立,不预则废.”,说明了目标和计划的重要性。

很多时候,我们都是走一步算一步,缺少目标的定制和计划,认为这个很虚,没有必要,也就缺少对目标的实施,到底完成了多少,实现了多少,还是那些未能实现,是什么原因导致的,都无从知晓。

“D”是DO:开始行动,实施计划。

很多人制定了计划,可以说,计划是相当完美,可因见异思迁,三分钟热度,一时的激情过后就没了动力了。有位记者采访通用公司前总裁杰克.韦尔奇时,记者问:“请问韦尔奇先生,你们为什么能成功?”,韦尔奇先生回答说“你们知道了,我们做到了”。很多时候我们都没有勇敢的迈出第一步,总是想着这,顾虑那,慢慢就放弃了。

“C”是CHECK,对行动的结果进行检验。

行动了,做了,要有个结果,对其结果是否满意,思考下次方案是否可以改进等。

“A”是ACTION.纠正错误,调整方向.其实也就是总结、完善的意思。

工作中,小到日报,周报,大到月总结,季总结等。有总结我们才能更进一步把工作做得更好。平时要要注意积累,比如写博客等,这样有助于我们对知识点更好的掌握。

3、明确的职业目标:对自己的职业生涯应该有个目标

阶段性总结, 制定合理计划,实现阶段性目标,对于那些没能实现的任务要时常更新,卸载掉一样没用的,别让包袱负担太重。播下的种子,并不是都会发芽结果,但没付出何来的收获?业精于勤而荒于嬉,脚踏实地,切记勿好高骛远,所谓 “慢工出细活”,相信总有一天会有质的飞越,精益求精。

比如AIDL原理、Binder机制、多进程、View的绘制流程、事件分发、消息队列等。这类知识点,需要我们不断去探索实践,运用才能更好的解决问题。

我们平时如何积累面试中需要的技术,阅读源码是一个不错的选择,因为面试中的很多问题我们都可以从源码中找答案,其次要主动学习平时工作中遇不到的一些技术,由于工作的原因,我们不可能通过公司的项目来解除到Android中所有的重要技术,尤其是一些规模不大的项目来说,这个时候需要我们主动去学习。

4、善意待人

在你往上爬的时候,一定要保持梯子的整洁,否则你下来时可能会滑倒。进退有度,才不至进退维谷,宠辱皆忘,方可以宠辱不惊。今日你面试他人,他人明日可能面试你,这软件圈子,有时候说小还真的小。懂得善待他人,这也是我们提升自身竞争力不可忽视的一面。

06

最后,给大家一些干货吧!从小白到Android高级工程师需要哪些呢?学习路线脑图——书籍——系统学习资料——Android学习视频——一个好的交流圈子(里面最好有老师可以及时解答问题)

博客和书籍

鸿洋大神

非著名程序员

玉刚说

郭霖大神

code小生

Android源码设计模式、Android开发艺术探索、Java并发编程的艺术、Android基于Glide的二次封装、Android内存优化——常见内存泄露及优化方案、.Java编程思想 (第4版)

最后

谢谢大家看到最后,有什么需要可以找我一起学习交流

这里给大家分享我收录整理的Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容

这些都是我现在闲暇还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效的帮助大家掌握知识、理解原理。

分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。也是希望可以帮助到大家提升进阶

如果你有需要的话,可以点击获取

上一篇下一篇

猜你喜欢

热点阅读