时间:2023-12-16 07:14:01 浏览:24
在市场吃紧、前端大的趋势下,移动程序员如何规划职业生涯,保持竞争力?今天,100要约邀请了爱奇艺负责移动金融产品研发的孔涛。他会和大家分享大前端的发展趋势,android开发需要的高级技能,移动程序员的职业发展道路。
作者简介:
孔涛目前负责爱奇艺科技产品中心金融产品的移动r&d。拥有7年android开发经验,曾在新浪、百度等大型互联网公司担任android工程师,负责新闻、地图等应用的研发。熟悉android系统原理和大型app的模块化、组件化、插件化架构设计方案。
移动互联网时代到来后,移动app成为新的主流,需要开发android和ios。有不同的版本,如视窗手机。早期主要开发以phonegap为代表的hybrid表单和嵌入在app中的webview,浪费人力物力。
自2015年react native以来,weex、flutter、kotlin-native等跨平台框架相继出现。随着微信小程序和手机厂商的快速应用,前端技术在移动端的使用场景越来越多。因此,越来越多的公司在组织结构上进行了相应的调整,以适应这种大的前端趋势。以前团队主要由移动程序员组成。现在除了android/ios开发,还有rn/h5/小程序等开发者。
那么,大前端趋势是否意味着传统 native android 程序员需要转型?
android和ios是唯一主流的移动操作系统。以前者为例,android已经广泛应用于手机、平板、车载网络、物联网、智能电视等领域,是名副其实的终端霸主。另外,android在国内手机市场的市场份额超过80%,短期内被其他os替代的可能性很低,所以原生程序员还是有非常大的市场的。
现在的技术分工越来越细化,也意味着大部分企业都需要专门的人才,最好是多领域的熟练和精通。去大公司面试安卓。如果你的android技术不深,面试官对了解剩下的前端、后端、python技术不感兴趣。所以,并不是能得到的越多越好。一定要做好减法,先专攻一科,再学其他技术。
大前端时代,合格的开发者应该是js ios/android。可以是熟练的前端,学一点原生,也可以是原生程序员会js。如果公司以app为主,注重用户交互体验,合理的路线是原生app开发者坚持提炼原生部分,然后学习js前端知识,拓宽技术栈。
一. 从初中级到高级,移动端程序员的进阶宝典
我们以android开发为例,梳理一下大前端趋势下从初级到高级的移动程序员需要的技能点,推荐一些实用的书籍和资料。
(一) 硬技能:专业的技术知识
java / kotlin开发语言
(1) java
常用数据结构:.的数组列表、向量、副本写数组列表、哈希表、并发哈希表、哈希表等使用场景
jvm 虚拟机包括java内存管理、gc垃圾收集机制和类加载机制。推荐书籍:《深入理解 java 虚拟机 jvm 高级特性与最佳实践》。
多线程编程,包括线程池、锁机制和线程同步。推荐书籍: 《java 并发编程实战》和《java 多线程编程核心技术》。
aop 编程实现,包括jdk动态代理实现,asm直接操作字节码,cglib实现,其原理封装了asm,使用起来更方便。
javassist:修改了加载字节码之前需要直接切入的方法,并对android中开源库广泛使用的处理器apt进行了标注,如data binding、butterknife、event bus 3等。
异常处理 exception,包括运行时检查异常和异常处理。
io 流相关,包括阻塞输入输出和非阻塞输入输出。
java 的一些高性特级,如反射、代理、泛型、枚举、正则表达式等等;同时,了解jdk1.8、1.9和1.10等新特性。相关书籍很多,推荐《thinking in java》和《effective java》。
(2) kotlin
kotlin是一种基于jvm的新型编程语言,在google io 2017中被google宣布为官方android开发语言。
kotlin 有哪些优点?
简洁性:提供了许多标准功能,这大大减少了模板代码的数量。
安全性:避免了空指针异常等错误。
互操作性:充分利用现有的jvm、android和浏览器库。
工具友好:可以用任何java集成开发环境或使用命令行来构建。
在kotlin中,您需要树立函数式编程思想.函数被理解为从一个值到另一个值的映射关系,每个业务逻辑作为一个单元来处理。该函数可以用作参数或返回值。使用kotlin提供的标准函数,如let、run、with、apply、还和lambda表达式。尽量使用闭包和高阶函数。
科特林的另一个突出特点是协程,它为设计异步和非阻塞程序提供了一个强大的范例。协同进程是一个轻量级线程,它提供了一个更便宜和可控的操作:协同进程暂停,以避免阻塞。复杂的异步操作放入底层库,程序逻辑可以顺序表达,简化了异步编程。
最后,让我们简单谈谈kotlin/native。其初衷是支持非jvm虚拟机平台环境下的编程,如ios、嵌入式平台等。并支持与c的互操作性。推荐书籍:《kotlin 实战》.
2. android 进阶技术点
进程相关,包括app过程原理和aidl原理。
性能优化,包括:内存、cpu、功耗、网络请求、ui布局、线程、数据库等优化方法和优化工具的使用。
android 源码相关,包括:绑定机制、活动启动过程、处理器原理、ams、pms、wms原理、视图绘制过程、触摸事件传输机制等。
编译打包流程,从java/kotlin源代码到apk的最终形成。
目前,热修复的实现原理,有多种热修复框架,包括底部替换、类加载和即时运行。
逆向工程原理,主要是为了防止apk被分解和破解,了解apk加固方案。
在插件化,目前也有很多方案,主流的技术实现是hook模式,其中activity注册占坑,activity占坑由ams验证,插件activity恢复,其他组件原理类似。
ndk 开发,给jni打电话,给爪哇打回去。
自定义控件,我们需要关注onmeasure、onlayout和ondraw的通话时机,以及touch事件的分发机制。
动画 view animation,视图动画很早就在安卓版系统中提供了,只能用来设置视图动画。
属性动画 property animation,仅适用于3.0或更高版本,可以设置为任何对象,包括尚未在屏幕上渲染的对象。这种动画是可扩展的,任何类型和属性的动画都可以定制。
webview 中 native js 交互,常用的jsbridge等。
gradle 的特性以及 dsl 语法,例如使用gradle转换api,允许第三方插件在编译后的类文件转换成索引文件之前对其进行操作。利用这个特性,我们可以在代码编译阶段实现代码注入或者代码修改,这也是很多埋藏技术和热修复技术的基础。
安全性:https通信原理,数据加密方法,包括md5,rsa,webview安全,代码混淆,数据验证,组件通信安全,服务器通信。
ci 持续集成:詹金斯、吉他谱ci等。构建持续集成的开发工具。
sersor 传感器:包括陀螺仪、加速度传感器、方向传感器、重力传感器、光传感器等。
android 开发国际化.
art 和 dalvik 虚拟机的区别,主要是aot,提前预编译。
熟悉 dex 文件结构。
单元测试: junit 4,androidjunitrunner,使用mockito框架。
自动化测试:猴子/猴子赛跑者、浓缩咖啡、ui automator等。
掌握模块化开发方式:注意层间和模块间的通信。
代码重构能力,推荐书籍:《重构改善既有代码的设计》 、 《重构与模式》
google 动态化框架 app bundles.
jetpack,由谷歌推出的新一代组件、工具和架构指南,旨在加快安卓应用的开发。jetpack主要分为四个部分:
android开发常用的第三方库:
响应性编程:rxjava,rxandroid,谷歌的agera
网络库:包括改装,okhttp,凌空
照片:壁画,吉尔德,毕加索
依赖注入:dagger2
数据库:领域、ormlite、绿道、对象盒
数据总线:eventbus,otto
内存泄漏检测工具leakcanary等
如果每一个技能点都详细展开,就会形成一个相当复杂的知识图谱。建议你自己整理、总结、消化。
3. ooad 和设计模式
在架构设计中,首先要掌握的是面向对象的开发设计。具体的知识点包括:
面向对象三大特性:封装,继承
,多态性。
五大基本原则(solid 原则),单一责任原则、开与闭原则、里克特替换原则、依赖倒置原则和界面分离原则。
23 种设计模式:常用的有工厂、单例、适配器、桥、组合、代理、命令、观察者、策略、状态模式等等。
4. app架构设计
包括mvc、mvp、mvvm、mvi、viper、干净架构和flux。目前除了mvc之外,mvp和mvvm应用比较广泛,具体架构设计要结合业务考虑。
(二) 软技能
人走在职场,江湖。高级程序员光有技术深度是不够的。他们还需要掌握许多软技能,注重综合职业素质的培养。有很多人一开始注意力不够,在职场后半段上升过程中容易遇到瓶颈。
以下是我个人对资深程序员必备软技能的总结,供大家参考。
1. 快速学习能力:包括技术的深度和广度,可以不断探索新技术,不断学习。
2. 沟通能力:"s的表达、阅读和写作能力即使在今天的先进技术中也不会过时。因为任何沟通方式在企业内部都是非常必要的。
3. 团队协作能力:的开发商很容易陷入孤立的人际交往,但开发工作永远不可能由一个人完成。成员只有真正融入团队,与其他同事顺利沟通合作,才能体现其真正的价值,被列为未来晋升候选人的概率更大。
4. 时间管理能力:可以参考时间管理的“四象限法则”,专注于处理重要但不紧急的任务,以便提前计划。
5. 影响力:一方面是商业影响,另一方面是技术影响。其中,提高技术影响力的途径包括:参与技术共享,总结传播积累的知识;参与技术方案评审,分享技术经验;帮助新生解决技术问题;在博客、github、stackoverflow等平台分享。
6. 文档编写能力:
代码注释.很多程序员很少写评论,或者评论太多不合适。多参考开源项目的注释规范。
编写技术设计文档.包括流程图,类图,功能序列图等等。
另外,我推荐一本书:《软技能——代码之外的生存指南》
二. 技术专家vs管理,哪条路更适合你?
工作3-5年,已经进阶到高级程序员。很多人开始面临一个问题:未来的发展方向是技术专家还是技术管理?哪条职业发展道路更适合他们?
选择哪条路线,首先要知道自己想要什么。想做技术还是管理,关系到目标和职业规划。每个人的实际情况不同,建议做出符合自己性格的选择,并坚持下去。即使一时看不到效果,也总能看到很久的效果。
1. 怎样的程序员适合做技术专家?
技术专家的核心就是深入而精通。熟悉某个技术领域,对代码编写保持激情,不断学习新技术,能够静下心来做技术而不是急功近利。人比较内向,不善于沟通协调,不愿意花很多时间和团队在一起,主要负责关键技术的专业化和极致化。这样的人更适合技术路线开发,比如技术专家,建筑师。
2. 怎样的程序员适合转型技术管理?
首先,要清楚,通常所说的技术管理者都需要做哪些事?
团队建设:人员激励、团队文化、梯队建设。
任务管理:任务分工和任务合作。
管理规划:研究新技术,支持新服务的重建等。
相应地,所需能力包括:向上汇报与向下沟通能力、团队管理能力、人员培训能力、上下游部门的合作与控制能力、业务需求沟通能力、重大问题决策能力、长期目标规划能力、执行能力等。
总的来说,管理能力和技术能力的要求是大相径庭的。作为技术经理,首先要有角色认知的转变,不是从程序员的角度,而是从更高的角度。推荐有兴趣走管理路线的移动程序员参考这本书:《成为技术领导者》.
3. 两种发展路径的异同点
(1) 不同点:技术专家更多依赖个人技术能力,需要结合业务做技术规划、框架设计、性能优化和技术创新;技术经理是协助团队一起做产品,负责团队内外的组织、沟通和协调。
毕竟,(2) 相同点:需要面对管理,但管理任务越来越少。即使你是架构师,也需要带领一个技术团队。
所以,以后无论走纯技术路线还是非技术路线,都需要增加管理技能,因为最后需要管理沟通。当你处在一个很高的层次,但还是不和任何人打交道的时候,很少会单纯依靠个人能力去贡献。
4. 如果选择错误,是否还有二次选择机会?
我觉得首先要考虑职业目标和职业规划。频繁的变动对职业生涯影响很大。
(1) 技术转向管理:应提前掌握相关管理知识,改变角色认知,以团队为出发点思考,多了解业务,提高部门内部影响力,有合适的晋升机会进行转型。
(2) 管理转回技术:,如果你面临许多跨部门的沟通,并且觉得在性格和其他因素上不合适,你需要尽快做出决定,转而回到技术开发上来。
三. 大前端趋势下,移动端程序员如何保持竞争力?
我从招聘网站上摘录了一些一线公司的职位描述要求:
至少3年工作经验,对移动终端底层和原理有深入了解,独立领导或开发一个以上产品的核心项目,有丰富的项目经验或管理能力,有react native或weex的实践经验,掌握一些前端开发技术,html/javascript/css等。前端开发经验是加分项。
可见市场对android程序员的需求越来越大。除了掌握android的底层原理,还需要前端js等技术。
自2007年第一代iphone在今天我们已经进入了终端碎片化的时代。发布以来的12年里,没有迹象表明智能手机已经被取代。但创新还在继续,比如智能手表、电视、眼镜、戴vr等。可想而知,这样的设备还会继续增加。
这些新设备也是新平台。类似智能手机,可以安装第三方应用,这些平台基本都支持浏览器或者嵌入式浏览器引擎。随着早期的hybrid和后来的react native的探索,前端开发已经成为显示终端应用开发中必不可少的技术。
因此,大前端趋势对移动端程序员而言,最大的影响就是新的移动开发技术栈。
作为主流终端,移动设备的应用开发技术也应该是大前端最关注的技术。以前技术栈的移动开发侧重于原生开发,现在的趋势是跨平台技术日趋激烈。
那么,在如今技术快速变化的环境下,移动端程序员该如何保持竞争力?
第一,加强android/ios技术的深度储备,深入了解系统的底层原理,不断投入新技术。
其次,逐步完善前端技术栈,扩大其广度,熟悉前端js、rn、flutter等跨平台框架。
最后,选择并完善android子领域,如应用开发、反向安全、音视频、车联网、物联网、手机开发、sdk开发、智能电视盒开发等。并从中选择一个继续深化。
四. q a
(q代表网友提问,a代表孔涛回答)
q: 您是从什么时候开始带团队的?刚开始从纯技术转向管理岗会遇到什么困难?如何克服?
a:我大概4年前开始带领团队,一个人独立贡献了很多人的团队发展。一个人的能力是有限的,驱使大家去解决问题。心态上有需要克服的变化。决策认知有变化。
q: 我一直在中小型公司做小团队管理者,后续发展突破口在哪里,是否可以进入大厂转技术路线?
a:你的突破在于技术的提升,这是一条不错的路线。在大厂做技术没问题。但是要想继续做管理,首先要提升一些大厂的经验,做技术,然后慢慢来
a:没有绝对答案。如果你之前在大公司带过小团队,积累过经验,那么在创业公司带大团队是没问题的。相反,如果你没有经验,对新事物缺乏一些了解,那么你去小工厂领导大团队的时候,可能会遇到一些瓶颈。所以我个人建议先去大厂锻炼。
创建微信小程序要钱吗?点餐微信小程序多少钱?
微信小程序大家都不陌生。现在零售电商,点餐,服务预订,信息阅读,商务社交等。都开始使用小程序。越来越多的商家想做小程序,但是很多人不清楚小程序的成本。接下来,我将详细告诉你创建微信小程序要钱吗要花多少钱。
在建立自己的小程序之前,你必须在微信公众平台注册一个小程序账户。注册小程序需要钱吗?这取决于你注册的是哪种类型。如果是人类账号,是免费的,但是人类小程序打不开支付功能。如果是企业类型的小程序,注册时需要支付300元的认证费。但是线下店铺的商家也可以使用“在线”快速注册,也是免费的。
有了小程序账号,就可以建立自己的小程序实体了。对于不了解这项技术的小白来说,它通常是通过第三方小程序开发平台构建的。该方法成本低,阈值为零。你可以通过选择一个模板,添加你需要的功能部分,快速生成一个小程序。那么这样申请微信小程序贵吗?不同类型的小程序成本也不同。下面我使用电子商务、展示、文章和订购类别下的不同小程序模板的价格:
(1)电商
开微信小程序需要钱吗?当然有必要。毕竟,电子商务小程序的功能非常复杂,比如商品展示、商品分类、订单管理、购物车、各种营销工具、配送系统、会员系统.基本电商小程序模板每年3000多,也是目前主流的制作方式。
(2)点餐
点餐微信小程序多钱?怎么样一般来说,带支付功能的小程序模板比较复杂,所以价格会比较高。订购类类似于基本的电商小程序模板,已经有3000多年的历史了。
(3)展示
显示小程序模板没有支付功能,主要目的是显示企业信息,提升企业形象。相比点餐和电商,功能会更简单,所以成本也低,1000块就可以搞定。
(4)文章阅读
文章信息小程序的功能比较简单,主要用来展示你的文章、信息、干货知识等。从而吸引更多的粉丝。小程序模板“online”永久免费,非常适合新手制作。
你现在明白小程序的开发成本了吗?相比开发app,进入b2b电商平台,小程序成本相对较低。如果想自己做小程序,可以用这个模板制作方法。
农村创业哪些项目有补助?创业补贴申报程序及发放时间
随着农村的不断发展,近年来有很多人回到家乡创业,但在农村可以开展的项目也很多。你知道哪些创业项目有补贴吗?具体补贴金额标准是什么?不然什么时候发?我们来看看。
一、农村创业哪些项目有补助?
1、畜禽良种补贴
国家补贴农场(社区和家庭),这些农场可以通过使用改良的精液进行人工授精来繁殖母猪、奶牛和肉牛。补贴标准为:猪每年每头母猪使用4粒精液,每粒补贴10元,计40元;
奶牛:70元按能繁殖的奶牛数量补贴。荷斯坦奶牛每年使用2剂冷冻精液,每剂冷冻精液补贴35元;肉牛:奶肉兼用西门塔尔牛每年使用冷冻精液2剂,每剂补贴10元;每头牛每年用2剂冷冻精液进行肉用育种,每剂补贴5元;羊:一次性补贴800元饲养公羊/羊。
2、蔬菜瓜果种植
蔬菜水果种植面积200亩以上,每亩补贴金额5000元,最好不超过300万元。蔬菜育苗,有3年以上育苗经验,每年能培育500万株蔬菜苗,近3年无假劣苗问题。中央补助资金500万元。
3、乡村大学生创业补助
围绕毕业5年内的大学生,在人力资源和社会保障部认定的大学生创业园或创业孵化基地等创新创业渠道,对创业团队或项目给予不低于1万元的创业补贴。
二、创业补贴申报程序及发放时间
1、个人申报。申请者携带相关材料到当地人力资源公共服务中心申请。
2、资料审核。人力资源公共服务中心将在5个工作日内审查申请人的创业情况和申请材料的真实性和完整性,重点核实申请人的身份、创业项目、是否首次创业。
3、信息公示及补贴发放。人力资源和社会保障局将在当地公共信息网上公布经审核的员工名单和一次性启动补贴补贴金额(公示期为5个工作日),公示无异议后,将补贴资金划转并支付给申请人。
文章来源于网络。如有侵权,请联系我们删除。
如何在微信上开网店(小程序开店详细步骤)
微信小程序怎么做店铺?将在下面详细介绍你:
首先,需要准备材料
1)微信微信官方账号邮箱号未注册,从未绑定;
2)自己的微信号(必须绑定银行卡);
3)你的身份证号码和手机号码;
4)你公司的《企业工商营业执照》或者个体工商的《个体工商户营业执照》(如果企业办理了三证合一,只需要三证合一的营业执照);
5) 《企业开户许可证》 ;
6)300元(暂时只支持微信支付)
二、如何通过微信小程序获取网店流程
第一步:注册微信小程序和微信支付商户号
访问https://mp.weixin.qq.com/扫码登录微信微信官方账号,点击左栏“小程序管理”,然后点击“快速注册认证小程序”进入下一步;按要求填写并完成注册。
步骤2:选择生产类型
市场上大多数微信小程序都是用模板开发的,适合中小企业使用。
第三步:使用第三方开发平台
登录第三方开发平台注册,一般平台会提供免费试用功能,可以尝试后台功能。
第四步:把货物放到货架上
商品上架前,先进行“商品分类”,完成商品分类的设置,开始“放货”。
编辑
第五步:店铺装修
装货前,开始店铺装修,将左侧的基本组件拖放到手机框中,设置右侧的组件,点击“提交”,在手机框中即可看到显示的效果图。所有组件构建完成后,单击“保存并发布”,将您构建的存储设置为主页,然后单击“发布”。
步骤6 :一键释放
一键发布的流程是:代码扫描授权-发布小程序-提交审批-审批-正式发布。
以上是如何用微信小程序做店铺的操作流程。想用微信小程序开店,可以参考以上步骤,尝试搭建一个小程序。
相关文章
怀孕周期
备孕分娩婴儿早教
猜你喜欢