AndroiAndroid程序员最大的悲哀是什么?d程序员最大的悲哀是什么?
Android 开发国际化。
ART 和 Dalvik 虚拟机的区别,主要是 AOT,Ahead-Of-Time 预编译。
熟悉 DEX 文件结构。
单元测试:JUnit4,AndroidJUnitRunner,Mockito 框架的使用。
自动化测试:Monkey / Monkey Runner ,Espresso ,UI Automator 等。
掌握模块化开发方式:主要注意分好层、模块间跳转通信。
代码重构能力,推荐书籍:《重构改善既有代码的设计》、《重构与模式》
Google 动态化框架 App Bundles。
Jetpack,Google 推出的新一代组件、工具和架构指导,旨在加快 Android 应用开发速度。Jetpack 主要分为 4 部分:
大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭
Android开发常用的第三方库:
响应式编程:RxJava、RxAndroid,Google 的Agera
网络库:包括Retrofit,OkHttp,Volley
图片:Fresco,Gilde,Picasso
依赖注入:Dagger2
数据库:Realm,ORMLite,GreenDAO,ObjectBox
数据总线:EventBus,otto
内存泄漏检测工具 LeakCanary 等
各个技能点如果详细拓展开,会形成相当庞杂的一张知识图谱,建议大家自行梳理总结消化。
3. OOAD 和设计模式
在架构设计方面,首先要掌握的就是面向对象的开发和设计。具体知识点包括:
**面向对象三大特性:**封装,继承,多态。
五大基本原则(SOLID 原则),单一职责原则,开放封闭原则,里氏替换原则,依赖倒置原则,接口分离原则。
23 种设计模式:常用的有工厂、单例、适配器、桥接、组合、代理、命令、观察者、策略、状态模式等等。
4. APP架构设计
包括 MVC、MVP、MVVM、MVI、VIPER、Clean Architecture、Flux。目前除了 MVC 外 MVP 和MVVM 用得比较多,具体的架构设计还要结合业务去考虑。
(二) 软技能
人在职场,行走江湖,想进阶高级程序员光有技术深度是不够的,还需要掌握众多软技能,注意综合职业素养的磨练。有很多人一开始重视程度不足,在职场后半段的上升过程中,容易遇到瓶颈。
下面是我个人总结出的高级程序员必备软技能,供大家参考。
**1. 快速学习能力:**包括技术深度和广度,能够不断探究新技术,不断学习。
**2. 沟通能力:**加强表达、阅读、编写能力,即使在技术发达的今天也绝不会过时。因为任何方式的沟通在企业内部都是非常有必要的。
**3. 团队协作能力:**开发人员很容易陷入孤立的人际交往状态,但开发工作永远都不可能是一个人完成,只有成员真正能融入团队内,顺利与其他同事沟通合作,才能体现出其真正的价值,被列为未来职位晋升候选人的几率也更大。
**4. 时间管理能力:**可以参考时间管理「四象限法则」,有重点地把精力和时间集中用于处理重要但不紧急的工作,这样可以做到未雨绸缪。
大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭
**5. 影响力:**一方面是业务影响力,另一方面是技术影响力。其中,提高技术影响力的方式包括:多参与技术分享,把积累的知识进行总结和传播;参加技术方案评审,把技术经验分享出去;帮助新同学解决技术问题;在博客、Github、StackOverflow 等平台上对外分享。
6. 文档编写能力:
代码注释。很多程序员很少写注释,或者注释过多,都是不合适的。多参考开源项目的注释规范。
编写技术设计文档。包括流程图,类图,功能时序图等等。
此外推荐一本书:《软技能——代码之外的生存指南》
大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭
二. 技术专家VS管理,哪条路更适合你?
工作 3-5 年后已经进阶到高级程序员了,很多人开始面临一个问题:未来发展方向是技术专家还是技术管理,哪一条职业发展路径更适合自己?
选择哪条路线,首先要明确自己想要什么。想做技术还是管理,都跟目标和职业规划有关,每个人的实际情况不同,目标就不同,建议尽量做和自己的性格相符合的选择,并且坚持。哪怕一时半会看不出效果,长期总是能够看到效果的。
1. 怎样的程序员适合做技术专家?
*技术专家的核心就是深入而精通。对某个技术领域很熟悉、对代码编写保持热情、持续学习新的技术、能够静下心来做技术,而不是急功近利。性格相对内向、不擅长沟通协调、不希望花大量时间带团队、主要负责把关键技术做到专业和,这样的人更适合往技术路线发展,比如技术专家,架构师。
2. 怎样的程序员适合转型技术管理?
首先要明确,通常所说的技术管理者都需要做哪些事?
- 团队建设:人员激励、团队文化、梯队建设。
- 任务管理:任务分工、任务协作。
- 管理规划:新技术调研,支撑新业务的重构等。
相应地,需要的能力包括:向上汇报向下传达能力、团队管理能力、人员培养能力、上下游部门合作把控能力、业务需求沟通能力、重大问题的决断能力、长远目标规划能力、执行力等等。
综合来看,管理能力和技术能力的要求差别较大。作为技术管理者首先应该有角色认知的改变,不能以程序员的角度去看待问题,需要站在更高角度,从全局思考问题。推荐有志走管理路线的移动端程序员参考这本书:《成为技术*》**。
3. 两种发展路径的异同点
**(1) 不同点:**技术专家更依赖个人技术能力,需要结合业务做好技术规划,框架设计,性能优化以及技术创新;技术管理者是协助团队一起把产品做出来,负责团队内外的组织沟通和相互协调。
**(2) 相同点:**终究需要面对管理,只是管理工作的多和少之分。即使你是架构师,也需要 lead 一个技术团队。
因此,不论你未来是走纯技术路线还是非技术路线,都需要增长自己的管理技能,因为到***总归是需要管理沟通的。当你级别非常高,却还不跟任何人打交道,完全靠个人能力来贡献的情况是很少见的。
4. 如果选择错误,是否还有二次选择机会?
我认为需要先把职业目标和职业规划想好,经常改变对职业影响较大。
**(1) 技术转向管理:**要提前掌握相关管理知识并在角色认知上做出改变,以团队为出发点去思考问题,对业务了解更多,提高部门内的影响力,有合适的晋升机会可进行转型。
**(2) 管理转回技术:**如果你面对诸多跨部门沟通,在性格等因素上感觉不合适,需要尽快做出决策,转回技术开发。
三. 大前端趋势下,移动端程序员如何保持竞争力?
我从招聘网站上摘录了某些一线公司的职位描述要求:
3 年以上工作经验、深入了解移动端的底层和原理、独立主导或开发过一款以上产品的核心项目、丰富的项目经验或管理能力、有 React Native 或者Weex 的实战经验、掌握一些前端开发技术,HTML / JavaScript / CSS 等。前后端开发经历是加分项。
可以看到,市场对 Android 程序员的要求越来越高,除了深入掌握 Android 底层原理,对前端 JS 等技术也有要求。
**今天我们已经进入了终端碎片化的时代。**从 2007 年 iPhone ***代发布至今的 12 年里,智能手机并没有被取代的迹象。但创新仍在继续,比如智能手表、TV、眼镜、头戴 VR 等等,可以想象这样的设备仍会继续增多。
这些新设备也是新平台,与智能手机类似,可以安装第三方应用,且这些平台基本都支持浏览器或内嵌浏览器引擎。早期 Hybrid 和后来 React Native 等探索,在显示终端应用的开发上,前端开发已成为必备技术。
**因此,大前端趋势对移动端程序员而言,*的影响就是新的移动开发技术栈。
移动设备作为主流终端,其应用开发技术也应该是大前端最关注的技术。以前移动开发技术栈以原生开发为主,现在的趋势是跨平台技术愈演愈烈。
那么,在如今技术快速变化的环境下,移动端程序员该如何保持竞争力?
首先,加强 Android / iOS 技术深度储备,深入理解系统底层原理,对新技术持续投入。
其次,逐步完善前端技术栈,广度扩充,熟悉前端 JS,以及 RN,flutter 等跨平台框架。
选择 Android 细分领域并提高,比如应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK 开发和智能电视盒子开发等等,在其中选择一个并不断深入。
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
SDK 开发和智能电视盒子开发等等,在其中选择一个并不断深入。
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
AndroiAndroid程序员最大的悲哀是什么?d程序员最大的悲哀是什么?相关推荐
- 关于程序员的那些事——一个五年程序员的总结
一晃,做了五年多的程序员了,感觉自己应该是程序员大军中比较典型的一个,班科生毕业,直接加入了软件开发的行列,先是小公司,然后大公司,走了一条典型的程序员的路线. 虽然我不是大牛,但是感觉在我这样普通程 ...
- 项目总监批评程序员穿大裤衩上班情商低!程序员一气之下要离职!项目已到一半了,总监着急发帖求助!...
项目总监批评程序员穿大裤衩上班太随意,程序员反驳说是成都下暴雨了,总监恼羞成怒指责程序员情商太低,结果人家要离职!总监懵逼了,项目到一半了,这可咋整呢? 程序员友军纷纷出来打卡,站队程序员,说是大裤衩 ...
- 程序员薪资两极分化,如何成为高薪程序员?
整理 | 李磊 出品 | CSDN(ID:CSDNnews) 现代管理学之父彼得·德鲁克在<知识社会>中说,40 年前,从事知识与服务劳动的人占总劳动力的比例不到 1/3.今天的发达国家, ...
- 程序员微信头像_这才是程序员的内心独白
在互联网公司的各个职业当中,程序员可以算是最善于自黑的群体之一了.自称"码畜",管工作叫"搬砖",最常见开"头发少"这种玩笑,还经常调侃自己 ...
- python算程序员吗_我算是优秀的程序员吗?
心态 我经常问自己,我算是优秀的程序员吗? 有的时候我觉得自己是优秀的程序员,什么时候呢? 当我解决问题的时候,当我学会一个技术,并且能应用于项目中的时候.我都会心里夸自己"你牛,你牛,你真 ...
- 程序员如何用糖果实现盈利 - [别人家的程序员01]
程序员如何用糖果实现盈利 - [别人家的程序员01] 程序员如何用糖果实现盈利 - [别人家的程序员01] 前言 CandyJapan 网站如何从零走到今天 平台收支状况 如何做分析.写代码 总结 程 ...
- 程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...
今天有人问如何处理IIS网站出现"Service Unavailable"的情况. 在网上google了一下,导致这个出错的原因很多,而"Service Unavaila ...
- 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...
- 小程序的 HelloWord 01《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...
- 程序员进阶之路:四个程序员职业阶段,通常对应不同的薪资待遇!
IT行业可谓现在的热门行业,程序员也是很多人羡慕的工作.薪水高,不用东跑西颠,敲敲键盘,看看屏幕,一切工作全都搞定,轻松而方便. 但是,果真如此吗? 不尽然,实际上,程序员的职业生涯也是一个求道的过程 ...
最新文章
- 求解最大公约数算法(包含四种方法)
- SQL Server 2012 安全新特性:包含数据库
- SQLServer数据库自增长标识列的更新修改操作
- 快乐学算法之:字典树Trie
- GitLab 在多分支中的一个push
- qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境
- Hibernate一对多映射示例注释
- Pravega Flink connector 的过去、现在和未来
- 从来没见过这么多的资源~~好好找找吧,一定有你需要的
- 如何获取国际标准时间
- JAP的类关系 @OneToMany 和 @ManyToManys
- 编程入门先学哪种语言好
- allegro差分信号走线_Cadence差分线走线规则
- RoboCupRescue心得
- 帝国html5图片站模板,html5响应式自适应帝国CMS整站模板源码瀑布流文章图片资讯文章站...
- 论文笔记:BING and BING++(论文+程序)
- python中arcsec_python绘制基本初等函数图像
- 车辆侧翻预警系统介绍
- python+cuda编程(一)
- COBIT简介 (一)
热门文章
- Eclipse知识点精粹
- Flink及Storm、Spark主流流框架比较-实时框架比较
- sgi集群管理软件SMC安装步骤整理
- 从flw中提取mp3
- 重磅!Linux基金会白皮书:开源软件技术不受美国出口管制
- deeplabv3+——训练自己的数据集 torch1.12.0 cuda11.3
- word格式角落的直角问题又名裁剪标记
- 有梦想的人,始终在路上!(记阿里实习生霸面经历,拿到offer)
- python爬虫 多线程 爬取网站排行榜上的所有小说
- Windows 系统45个小技巧(建议收藏)