先说下观点,对程序员来说,技术和业务逻辑,一定是技术重要,因为程序员跳槽换工作时,一定是结合业务说技术和亮点,而不是反过来。不过如果再说下去的话,面试过程中,一定是需要结合业务说技术,尤其是值钱的亮点技术,这样才能证明自己真正的用过,而不是只看过理论。
如果单纯熟悉业务,确实能让程序员在当前公司里过得很舒服,但这种舒服是有代价的,比如过了几年,当程序员想跳槽时,真就会有人发现,自己除了懂业务外,其他方面还真只熟悉增删改查方面的技能。
Android路漫漫,共勉!
<<腾讯T10+最新Android资料,让你告别繁琐>>
先说下程序员如何高效熟悉业务:
1.通过各种方式搭建好运行环境,与其去通过文档和代码去熟悉业务,还不如通过跑代码,用实际发起请求和输入参数和观察效果的方式熟悉业务。
2.做开发任务是最好的熟悉业务的方法,这个过程中,多去通过debug观察流程,先从面上知道这个业务流程会有哪些步骤,再细化,从点上去看每个子业务流程的参数和含义。
3.必要时可以客串一下测试,这绝对是一个提升业务知识点的方法,在做开发时,大概率是只关心本任务相关的业务,但如果是测试,一定会全面了解流程和每个细节。
当然遇到问题,得及时参与并解决,这其实也能扩展性地了解业务逻辑。
但在不少公司里,尤其是小公司里,长时间无法通过跳槽提升薪资的那些人,估计还真是那些熟悉业务的人。
1 毕竟和提升技术相比,积累业务技能比较简单,而且比较容易出彩,那些熟悉业务的人往往还可能带领几个人一起开发,边开发边讲述或纠正业务逻辑。
2 大多数项目,尤其是小公司的项目,技术层面可能比较简单,估计也就增删改查,那么熟悉业务的程序员往往能更高效地解决问题,这样也更容易陷入舒适区。
3 但是大家也可以想象下,长此以往,一方面接触不到高级技能,另一方面在组里还能收到评价不低的假象,到跳槽时,真会在面试中大谈特谈解决业务问题的技巧,但不同公司的业务不大可能相同,这些技巧对别的公司来说还真可能一文不值。
这倒不是本人危言耸听,本人在做Android面试官的时候,真见过不少求职者,项目经验也比较丰富,来面试也信心满满,相信在原来的项目组里真有可能是顶梁柱,但在问及项目中解决过哪些问题时,还真只是限于业务层面,同时在技术层面也只能展示基本的增删改查技能。
这样的程序员,估计也只能算是初级开发吧,顶多凭开发年限长,算一个高级开发,但在高级开发里应当只能算比较低级的水准,按上海2022年Android开发的薪资水平,要得到一个2w以上的薪资,应该不容易吧。
然后再说下,如何在项目里积累技术,这里所谓是积累业务容易,积累技术点难。比如在项目里,脱离业务单独去看技术,哪怕看再多,顶多就只能积累理论经验,又如过多去看一些看似高大上的技术,比如重构或源码,但不结合项目,依然无法在面试过程中证明自己的能力。
比如是Android,熟悉Android系统工作原理,具备较强的开发、调试、性能优化能力。对Android系统源码有一定了解,Flutter等
这样一来的话,一定能结合项目业务,知道各种资深技能的项目实践技巧,事实上面试过程中,大多数面试官还真是这样问的?比如在长沙。在某公司想要拿到20K左右。需要掌握那些,我们一起来看看。
- Android App的开发和维护,完成高质量的编码。
- 参与小程序的开发。
- 编写代码的单元测试。
- 设计产品的代码结构,不断迭代、重构、优化。
- 分析并解决开发中和线上的问题,维护并改善程序质量和性能。
要求:
- 精通Android基础知识和框架,包括自定义组件、动画、多线程、跨进程通信、常> 用基础类框架等。
- 5年以上的Android开发经验。
- 掌握基本的性能分析优化、内存泄露分析、内存调优、启动优化等技术。
- 有学习新知识的能力,有跨平台开发能力和经验优先,有底层framework开发经验优先。
- 有较好的沟通能力、抗压能力和英文文档阅读能力。有写博客习惯、github上有源码贡献的优先。
- 学习过HTML、JS、CSS。有跨平台开发经验(H5或者uni-app)的优先。
- 熟悉常见通信协议,掌握网络编程。
从中大家其实可以看到,程序员如果单纯知道技术,没法结合项目说,那一定会被面试官认为只具备理论技能,所以不能脱离业务学技术。反过来更不行,只会业务,估计简历上真没什么好写,估计连参加一些高级开发资深开发和架构师等面试的机会都没。
做个总结吧,如果要较真问业务和技术哪个重要,那只能说都重要,相信大家看了上文,就不会认为这是一句正确的废话了,因为本人一方面讲了积累业务的方法,另一方面还讲了通过业务提升技术的实践要点,这还不算,还讲了如何通过整合两者准备面试的技巧。
关于之前提到的APP的开发,framework,性能优化这些技能点相比大多数都都略知一二,但是还有什么需要去系统的学的?刚好之前把所有想到的整理了一番,从面试简历模板到大厂面经汇总,从大厂内部技术资料到互联网高薪必读书单,以及Android知识点(近1000页)和Android面试题合集2022年最新版(354页)等等,这些资料整理给大家,希望踩过的坑不要再踩,遭遇的技术瓶颈一次性消灭。
全面技能掌握
1.Android工程师必备基础技能(**涉及:**注解、泛型、Retrofit、架构动态编程技术原理、Butterknife、JavaSSit丶虚拟机丶并发内存丶Synchronize丶并发原理之线程池丶数据序列化)
2.T10工程师核心优化能力(涉及:启动优化、内存优化、启动优化速度、卡顿优化、布局优化、崩溃优化、应用启动全流程(源码深度解析)等内容)
3.Framework与Android内核系统信息(涉及:Framework通信、Framework底层服务、Framework事件机制等内容)
4.Android前沿技术(**涉及:**自动化构建APP、Compose等内容)
5.Android音视频开发(初-中-高)(涉及:Android初级音视频开发【1-7】、Android中级音视频开发【8-19】、Android高级音视频开发【20-51】等内容)
6.Android资深架构师(**涉及:**架构师通用技能、网络访问、图片加载、数据库管理框架、进程通信框架、Rx响应式编程、注入解耦、组件化、插件化、等内容)
7.Android车载工程师(涉及:Android Auto、汽车媒体应用、构建Android Auto即时通信、导航与地图应用、Android Automotive OS视频应用、Android车载应用、Android汽车应用等内容)
8.Flutter高级工程师(涉及:Flutter动画、Flutter组件、Dart、弹框、网络请求、实站丶Flutter3.0等)
9.鸿蒙相关(涉及Ability组件、分布式任务、事件总线、鸿蒙线程、UI自定义控件等内容)
10.Kotlin相关(涉及:对象丶类丶继承丶变量丶常量丶拓展函数**等内容)
Android路漫漫,共勉!
<<腾讯T10+最新Android资料,让你告别繁琐>>