大学同学做Java开发比我多5K,八年老Android只会crud该转Java吗?

最近在网上看到这样一个帖子:

做了八年Android开发,感觉这块做着也挺没意思,日常工作就是做一些架构优化,质量数据监控,改一改构建脚本,最主要的是业务负责人没有一个是做客户端的,都是后端的人。

最近有个做 java 开发的大学同学来我公司入职,工资比我高5k,职级比我大一个大等级,羡慕,所以我打算转java后端开发了。

有人吐槽我干了这么多年,现在还问这种问题,觉得我职业生涯很失败。嗯,我虚心接受,确实这个年限还在写代码,是有一些不思进取吧。三年前换了一座城市,先离职然后换城市买房再找工作,职业进阶路线稍微曲折了一下。目前在一个月活两千万 app 项目做一些架构方面的东西,确实之前都没有想过转行之类的事情,最近突然有了这些想法,准备自学一下 java,技术栈问题能解决的话,内部转岗问题不大。


以下是摘选的一些网友的回答:

网友1:其实我觉得题主如果自己有点厉害,就不用发出来问了,学完了直接干~就好了,对于转岗还犹犹豫豫的多半是怀疑自己没那个能力。

网友2:题主做了8年Android开发,还只会敲代码,只在界面处理层面上,做不了底层处理, 确实有点说不过去了。

网友3:Android和java虽说是同源但是两个只能说语法上相似,开发理念上是完全不同,工作中处理的问题也是南辕北辙。而且Java技术栈内容非常多,需要挺多时间来学习。有那个时间、精力来学习吗?

网友4:干了八年Android应该也有三十左右了,上有老,下有小,还有房贷车贷等等一系列的生活压力压在头上,真的要冒这个险转Java吗?

网友5:Android干了八年都没干好,转Java就能干好了吗?

我的建议是不要轻易转行

转行有两种我认为是正常的,一种是行业消失或者没落了,个人无法施展才华。另一种是兴趣不在本行,因此转一个自己感兴趣的。而现在大部分转行纯属是为了跟风,为了那点钱,而忽略了长期的发展。我们来看看下面的图。(不仅仅是指转前端,转后端亦然)

转行相当于倒退回到原点,重新出发,形象点来说,就是换了个不同的砖头接着搬砖而已(高技术含量的除外)。因此我们更应该去追求质变,而不是平行或者倒退,一次倒退可以承受,多次倒退就很难在35岁后进入上升期。

摆正心态

如果你打算做一辈子程序员,那就需要摆正心态,保持自己的竞争力。能提前进到大公司做管理、做专家当然是好事。即便进不去,有个提前预知,知道在年龄大了以后,被人挑肥拣瘦是常事,能承受委屈受气,或许也能安稳过到四五十岁。

职业现状就是这个现状,没办法变改职业,就只能想办法改变自己。自我审视,持续学习,做好规划,以10~20年的职业生涯为基础,未雨绸缪。不要等到40岁还在到处投简历面试,家里等着米下锅,那就太被动了。

不过,人总是要以发展的眼光看问题,社会在发展,时代在进步,说不定等20年后,程序员就不是青春饭了。这里把王小波的一段话送给朋友们:

那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。

如何提高竞争力

1.选择一个细分领域

Android现在细分的领域非常多,前面说到的有应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK开发和智能电视盒子开发等等,在这些领域中选择一个并不断深入。

2.做减法,尽量专精一门技术

现在的社会,技术分工越来越细,越细就意味着大部分企业(小作坊除外)需要专精的人才(最好是精通一门通多门)。

你会发现身边脱颖而出的技术人大多都是靠一门技术,却很少看到会一堆技术却都不精通的冒出来。好比在武侠的世界,高手对决都在同一个时间段拿出看家武学,如果看家武学都不精,分分钟被虐,省下的武学也无需拿出来献丑了。

联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各种虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。

所以并不是你会的技术越多越好,一定要做好减法,先专精一门,然后再去学别的技术。

3.说说最近Android火热的技术

Kotlin,是Google推荐的官方开发语言,与Java互通,可相互转换,简洁安全等,是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由JetBrains 设计开发并开源。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

Flutter,Flutter是Google在2018年2月27日,在2018世界移动大会上发布的用以帮助开发者在ios和Android两个平台开发高质量原生应用的全新移动UI框架。由于是是Google发布的,就前景来看,还是值得肯定的。

有需要的朋友可以参考我之前整理的资料:

《高级Kotlin强化实战(附Demo)》

《Flutter技术进阶》

总结

每个行业都有做得好的也有做得差的,只要不断学习不断进步,就能摘到别人摘不到的果实。说白了,有转Java的想法,也说明了他对于自己的技术水平不自信!只有在技术道路上不断的进阶,才不会再有类似的迷茫。

对于程序员来说,要学习的知识内容、技术有太多太多。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,可以关注我,每天更新各种技术干货。

我自己已经32岁了,跨过年3月份就是自己33岁的生日,再过2年,就是传说中的35岁“大限”。在程序员这行业已经摸爬滚打了将近10年的时间,3年java,7年Android至今,字节跳动架构师这个位置应该能让我撑到40岁吧!不过也已经在经营了一些副业,也算是给自己留个“后手”。

至此,做为一名Android开发者,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

架构师筑基必备技能

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO

架构师筑基必备技能

设计思想解读开源框架

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计

设计思想解读开源框架

360°全方位性能调优

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

360°全方位性能调优

Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

Android框架体系架构

NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

NDK模块开发

微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

微信小程序开发

Android相关源码解读

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

Android相关源码解读

Android相关源码解读部分内容

由于篇幅原因,以上完整学习笔记pdf如有需要,可以 点赞+评论 支持下这个快要崩殂的老伙计,然后点击这里免费自取

猜你喜欢

转载自blog.csdn.net/zhireshini233/article/details/113725571