做Android开发,你后悔过吗?
有同学跟我说,编程太难了,总是有学不完的技术、框架,新技术也层出不穷,马上三十了,还有各种学不完的东西,后悔做程序员了
编程对我来讲,还难吗
我主业是做Android的。
我刚学编程的时候,觉得难点在于众多语法/API的学习,以及抓耳挠腮、苦思冥想捉bug的无奈。
但无论语法多么复杂难用,终究会有学会的一天。以往找不到的bug,也终会随着源码阅读能力的提升,而逐渐得到改善。
都给我学
工作了三五年之后,以为自己学的已经够多了,也已经到了专家的水平,自以为可以靠吃老本休息休息了。
出现了跨平台技术,ReactNative(简称RN)
有些公司上马了,我们也要试试。做为技术专家,首当其冲,参与技术预研、框架搭建、模块开发当中。
RN刚学的差不多了。
阿里推出了仿RN的Weex。
因为阿里自己的儿子产品,当时在阿里的我们,当然要必然地要转到Weex上来。
就这样,又上马了Weex
前年,Google出了自已的跨平台语言,Flutter
RN\Weex顿时被抛弃了,现在各个公司又都在上马Flutter
自以为很聪明的我,想先看看行情,再决定是不是要学Flutter
因为工作中用不到,只能业余抽时间研究,去年入坑,刚研究到源码层面
今年手机上又推出了鸿蒙系统,据说未来将与Android平分天下
做为移动应用开发者,不学能行吗?
绝对不会有问题
看到的一个段子,挺有意思,摘抄过来。
昨晚在酒吧玩,忽然:有个人走进酒吧,要了一杯啤酒;
有个人走进酒吧,要了一杯咖啡;
有个人走进酒吧,要了0.7杯啤酒;
有个人走进酒吧,要了-1杯啤酒;
有个人走进酒吧,要了2^32杯啤酒;
有个人走进酒吧,要了一杯洗脚水;
有个人走进酒吧,要了一杯蜥蜴;
有个人走进酒吧,要了一份asdfQwer@24dg!&*(@;
有个人走进酒吧,什么也没要;
有个人走进酒吧,又走出去又从窗户进来又从后门出去从下水道钻进来;
有个人走进酒吧,又走出去又进来又出去又进来又出去,最后在外面把老板打了一顿;
有个人走进酒吧,要了一杯烫烫烫的锟斤拷;
有个人走进酒吧,要了NaN杯Null;
有个人冲进酒吧,要了500T啤酒咖啡洗脚水野猫狼牙棒奶茶;
有个人把酒吧拆了;
有个人化装成老板走进酒吧,要了500杯啤酒并且不付钱;
有个人走进酒吧,要了一杯啤酒';
DROP TABLE 酒吧;
他们满意地离开了酒吧。
我看的肚子都饿了,就喊了句:给我来一份蛋炒饭!
结果,酒吧炸了!
你以为你的代码已经足够健壮了,绝对不会出任何问题。
一上线,崩了
编程难吗?
说实话,挺难的。
而正是因为它很难,所以门槛才高,工资才高,上限才高。
扫大街,不难,但一个月却只有800块钱。
我很庆幸,我能从事程序员这个行业。
在这个行业,我们可以完全不靠父母、不靠关系,自己达到年薪百万,也并不是什么难事。
不必像其他人一样,要买房,需要砸上几代人的积蓄,甚至还有爷爷奶奶的棺材本。
从小,我家里一直很穷。
但正是程序员这个职业,让我自己买了房,买了车,定居了杭州,靠自己过上了舒坦的生活。
如果我换个职业呢?
很难吧。
所以,即便我要不停的学习,不停的接触新事物,不停地保持自己的竞争力,那又怎样。
这些都不重要,重要的是单靠我自己就能实现以往几代人的努力成果。
很多人会讲,程序员青春饭。
但任何行业都有三六九等,都是分梯度的。
就像我跟朋友聊天,他家里没人带孩子,正在想办法。我问他怎么办,他说,总会有出路的,有钱的请保姆,没钱的自己带,最不济就是放老家,成了留守儿童呗。
我们不也一样?技术行的做架构、做管理,技术不行的转行产品、测试、运营也是一条路,实在不行,放下脸面降薪投投简历,也还是能找得到工作。
只不过能力强的会越过越好、机会越来越多,能力弱的,只会越走越窄罢了。
做为一名Android开发者,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
《高级UI》
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
《Framework精编内核解析》
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
《360°全方面性能调优》
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
《Android第三方框架》
本篇内容要点(1042页)
- 热修复设计
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
《NDK模块开发》
主要内容包含:
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
《Jetpack架构组件从入门到精通》
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
- ......
《高级JetPack强化实战》
- 初识ConstraintLayout之实现登录页面
- Navigation实践之实现APP主框架以及Navigation的相关介绍
- 使用 Coroutines, Retrofit, Moshi实现网络数据请求
- 使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
- 歌单页面MVVM架构改造及其ViewModel和LiveData的使用介绍
- Paging实现加载更多和下拉刷新,错误后重新请求
- vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter
- Room数据库实现增删改查和事务处理
- Room数据库Migration
- ExoPlayer进行视频播放的实现
- ......
《Flutter技术进阶》
- 为什么Flutter是跨平台开发的终极之选
- 在Windows上搭建Flutter开发环境
- 编写您的第一个 Flutter App
- Flutter开发环境搭建和调试
- Dart语法篇之基础语法(一)
- Dart语法篇之集合的使用与源码解析(二)
- Dart语法篇之集合操作符函数与源码分析(三)
- Dart语法篇之函数的使用(四)
- Dart语法篇之面向对象基础(五)
- Dart语法篇之面向对象继承和Mixins(六)
- Dart语法篇之类型系统与泛型(七)
- Flutter中的widget、
- ......
由于篇幅限制,展示了部分内容截图,需要这些文档资料的,可以点赞支持一下我,然后【点击这里】免费阅读下载哦
无论在哪个行业,都是优胜劣汰的过程。
古之立大事者,不惟有超世之才,亦必有坚韧不拔之志。
做Android开发,你后悔过吗?的更多相关文章
- 强烈鄙视那些:自己完全不用android手机,却在做android开发的人
前言: 最近参加android技术交流会,看到几个同时用mac和iphone的人,以为他们是全栈工程师(android和ios都会) , 谁知道交流下来,居然只是做android开发的,ios根本不会 ...
- 从大公司做.NET 开发跳槽后来到小公司的做.NET移动端微信开发的个人感慨
从14年11月的实习到正式的工作的工作我在上一家公司工作一年多了.然而到16年5月20跳槽后自己已经好久都没有在写博客了,在加上回学校毕业答辩3天以及拿档案中途耽搁了几天的时间,跳槽后虽然每天都在不停 ...
- 那些 22 岁毕业做Android开发的人,他们 50 岁左右时的人生轨迹是怎样的?
本人今年35了,已经干了14年程序员,是14年不是13年,因为我是专科毕业. 一直就是普普通通的程序员,特别纯的码农,从没做过管理岗位,并且很可能以后也是如此. 现在已经上有老下有小. 曾经在某著名互 ...
- 在做Android开发的,如何去掉滚动view在尽头时的阴影效果
不经意的在开发中,发现qq的侧滑几乎没有阴影效果,就是拉到边界没有时出现的效果:于是在网上找了下,发现很简单的设置 只要在xml布局文件的滚动或者侧滑控件中加入如下样式: android:overSc ...
- Context都没弄明白,还怎么做Android开发?
Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言 ...
- Context都没弄明白,还怎么做Android开发
转载:https://www.jianshu.com/p/94e0f9ab3f1d Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过 ...
- 做Android开发怎么才能不被淘汰?
1.Jetpack架构组件从入门到精通 Android Jetpack - Navigation Android Jetpack - Data Binding Android Jetpack - Vi ...
- 用Eclipse做Android开发时出现java.lang.NoClassDefFoundError问题
之前有遇到过这个问题,后来解决了,今天又遇到了,但是忘了当时是怎么解决的,费了好长时间,终于又找回解决的方法,现在记录下来,以防以后又遇到. 这个错误出现在我的某一个Activity,但是我反复确认了 ...
- 【推荐】腾讯android镜像(做Android开发的得好好利用下这个网站,国内的大公司还是可以滴……)
原文地址:http://android-mirror.bugly.qq.com:8080/include/usage.html ☀ Windows I. Open Android SDK Manage ...
随机推荐
- C语言中的.h和.c文件
1.h为头文件,.c为源文件,其实两者都是代码,没有实质性的区别,只是后缀不一样,是一种编程规范,主要是为了解决定义与调用之间的混乱. 2.h文件一般写一些函数声明.宏定义.结构体等内容:c文件是程序 ...
- 备战-Java 基础
备战-Java 基础 仰天大笑出门去,我辈岂是蓬蒿人. 简介:备战-Java 基础. 一.基本数据类型 1.Java基本数据类型 基本数据类型有8种:byte.short.int.long.float ...
- windows下flutter2.2.3环境搭建
先上几个必上的网站: 官网: https://flutter.cn/docs/get-started/install/windows 中文资源网(毕竟中文母语,看着轻松): https://flutt ...
- 机器学习Sklearn系列:(四)朴素贝叶斯
3--朴素贝叶斯 原理 朴素贝叶斯本质上就是通过贝叶斯公式来对得到类别概率,但区别于通常的贝叶斯公式,朴素贝叶斯有一个默认条件,就是特征之间条件独立. 条件概率公式: \[P(B|A) = \frac ...
- 前端-HTML标签
1.<p></p>段落标签 <p>别在最该拼搏的年纪选择稳定,世界上最大的不变是改变,只有每天进步,才能拥抱生命的无限可能!</p> 2.</b& ...
- CTF-wtc_rsa_bbq-writeup
wtc_rsa_bbq 题目信息: 附件: cry200 解题思路: 1.观察cry200文件,发现该文件是一个二进制文件,用二进制模式查看,发现开头为50 4B 03 04,判断该文件是一个zip文 ...
- 数据库:随机显示n条记录
1.sqlite3数据库select * from QG order by random() limit 6 以下显示前10条记录 2.SQL Server数据库select top 10 * f ...
- YARN调度器(Scheduler)详解
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...
- MapReduce学习总结之Combiner、Partitioner、Jobhistory
一.Combiner 在MapReduce编程模型中,在Mapper和Reducer之间有一个非常重要的组件,主要用于解决MR性能瓶颈问题 combiner其实属于优化方案,由于带宽限制,应该尽量ma ...
- HDFS学习总结之架构
一.hdfs介绍 官网说明 Hadoop Distributed File System (HDFS): A distributed file system that provides high-th ...