为啥经常听到程序员朋友说自己太辛苦了、太累了,其实原因很简单:干活苦、竞争大、技术致富难。

干活苦:

有新闻说晚上十点某领导在微信群要求下属在十分钟内回复,一员工因休息早而没及时回复被裁了。

对于程序员来说,晚上十点仍有许多人在公司赶进度,等发布。即使在深夜熟睡之际,一旦电话铃声响起,程序员在十分钟内就得起来查看处理,毕竟如果是系统宕机的话,晚一分钟处理损失就多几个零。

选择程序员这职业也就是选择7*24*365的待机模式,出门可以不带钱包但随身得带个vpn,搞不好程序员在结婚当天还得停下来打开电脑解bug。

竞争大:

IT这个行业涌入太多的急功近利的求职者,培训学校批量生产的码农,一批一批又一批。普通人从培训学校培训半年便能就业,月薪轻松过万;大四学生不喜欢本专业,自己拿本书学习也能找到不错的公司以实习生的身份入门。

技术致富难:

工资不涨房价嗖嗖涨,与公司的一起成长的情怀比不过现实的残忍:领导画的饼迟迟不兑现,还没到30岁两鬓开始发白,腰背也熬病了,薪资还是那么点。同一起跑线的同学跳槽早就实现了薪资翻翻,人又何必在一棵树吊死呢?

让我们来看看知乎上的一条高赞评论:

代码水平不高的时候,天天加班也干不完,还说其实是喜欢。

随着代码水平的提高,注释写的越来越少,话也越来越少了。

话说得少了,觉得办公室气氛变得有点压抑,于是离职换了一家公司。

在新的公司还是那么忙,于是经常幻想老了就可以轻松点,却发现脑门子越来越大,眼睛看不清楚了,胳膊腿儿越来越细,肚子越来越大,原来已经提前老了,但是还要加加班。

终于有一天升职,来了几个帮手,可是他们水平不高,天天加班也干不完,还说其实是喜欢。

这些新来的下属们加班总是帮倒忙,引入的bug比解决的bug多多了。

于是每天劳心劳力的去帮助他们,要求他们代码写好,那样可以少写注释。

终于发现他们的水平逐步提高了,注释写的越来越少,但是话也越来越少。

话说的少了,似乎办公室气氛变得有点压抑,终于下属告诉我已经辞职下月离职,这陌生的感觉仿佛换了一家公司。

于是更加忙了,总是幻想老了就可以轻松点,却发现脑门子越来越大,眼睛看不清楚了胳膊腿儿越来越细,肚子越来越大,原来已经提前老了,但是还要加加班。

如此循环往复..............

感觉生活都没有了乐趣

看到这哥们儿的工作经历,再加上工作几年对这个行业的了解,我对以下几点有了深刻的感悟:

第一:每个行业都有各自的辛苦,只是你不知道,总觉得别人的就是最好的。

第二:我们需要控制欲望,做正确的事情,就不累。

第三:好的程序员并不累,他们乐此不疲,因为他们能从中获取成就感。

第四:如果你觉得很累,那就要回到原点问问自己为什么要做程序员,工作的方法是不是有什么问题,常用的基础知识点有没有掌握,是不是还不具备一个核心竞争力。

第五:程序员也需要不断提升自己的技术水平,有一个特别精通的东西,别等到有一天被劝退,那时候就措手不及了。

如何提升学习?

提升学习很大程度上就是为了跳槽涨薪,当然运气不好的情况可能是被劝退重新找工作,无论是哪种情况,自主学习的能力是要有的,而且得有一个方向,得有重点。

对于Android移动开发来说,热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架是进入大厂必须掌握的,也是面试中常常问到的,我这里整理了一份资料以及路径,长达1042页!相信看完这份文档,你将会对这些Android第三方框架有着更深入、更系统的理解。

由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,1042详细完整版的【Android设计思想解读开源框架】可以到我的【Github】阅读下载。

第一章:热修复

1、AOT/JIT & dexopt 与dex2oat
2、热修复常见问题之CLASS_ISPREVERIFIED 问题
3、热修复原理
4、Tinker 的集成与使用(自动补丁包生成)

第二章:插件化

1、Class 文件与Dex 文件的结构解读
2、Android 资源加载机制详解
3、四大组件调用原理
4、so 文件加载机制
5、Android 系统服务实现原理

三:组件化框架设计

1、阿里巴巴开源路由框——ARouter 原理分析
2、APT 编译时期自动生成代码&动态类加载
3、Java SPI 机制
4、AOP&IOC
5、手写组件化架构

四、图片加载框架

1、图片加载框架选型
2、Glide 原理分析
3、手写图片加载框架实战

五、网络请求框架

1、网络通信必备基础
2、OkHttp 源码解读

六、RXJava 响应式编程框架设计

1、链式调用
2、扩展的观察者模式
3、事件变换设计
4、Scheduler线程控制

七、IOC 架构设计

1、依赖注入与控制反转
2、ButterKnife 原理
3、Dagger架构设计核心解密

八、Android架构组件Jetpack

1、LiveData 工作原理
2、Navigation 如何解决tabLayout 问题
3、ViewModel如何感知view生命周期及内核原理
4、Room架构方式方法
5、DataBinding为什么支持MVVM?
6、WorkManager内核解密
7、Lifecycles生命周期

以上资料免费分享,如有需要,可以到我的【Github】阅读下载。

年薪60W的Android程序员究竟多累、多苦?一条高赞评论扎了无数人的心的更多相关文章

  1. (转载) 据说年薪30万的Android程序员必须知道的

    据说年薪30万的Android程序员必须知道的帖子 标签: android 2015-03-12 16:52 28705人阅读 评论(14) 收藏 举报 Android中国开发精英 目前包括: And ...

  2. Android程序员必知必会的网络通信传输层协议——UDP和TCP

    1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...

  3. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  4. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  5. 给Android程序员的六个建议

    给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...

  6. Android高薪之路-Android程序员面试宝典

    Android高薪之路-Android程序员面试宝典

  7. Android 程序员必须掌握的三种自动化测试方法

    在日常的开发中,尤其是app开发,因为不像web端那样 出错以后可以热更新,所以app开发 一般对软件质量有更高的要求(你可以想一下 一个发出去的版本如果有重大缺陷 需要强制更新新客户端是多么蛋疼的事 ...

  8. 悲惨的Android程序员

    Android程序员太悲惨了,连Android官网都访问不了,整个Android程序员的水平都被拉低了一个等级.受不了了.说说悲惨的遭遇吧. 起源:高射炮打苍蝇,驴受伤了 Android一个纯技术网站 ...

  9. Java程序员入门:程序员究竟可以干多少年?

    很多人都说程序员是青春饭,只能干到30岁. 然而事实真的如此么? 今天我们来探讨一下这个老话题,看看为了技术与编程执着究竟能走多远? 01年龄分布图 先来看一下程序员的年龄分布图: 我们可以看到程序员 ...

随机推荐

  1. 温故知新,.Net Core利用UserAgent+rDNS双解析方案,正确识别并反爬虫/反垃圾邮件

    背景 一般有价值的并保有数据的网站或接口很容易被爬虫,爬虫会占用大量的流量资源,接下来我们参考历史经验,探索如何在.Net Core中利用UserAgent+rDNS双解析方案来正确识别并且反爬虫. ...

  2. 7.7、深入解析openstak工作流程

    1.openstack的使用: (1)使用openstack创建的用户默认是default域,角色是user; (2)域-->角色-->用户-->项目 (3)配额在管理员登录后再项目 ...

  3. echarts 根据geojson 数据绘制区域图(精确到镇)

    步骤:1)先获取区域(县.镇)json数据 :2)使用echarts 绘制地图: 先上一波效果图(昆明市东川区) 一.获取区域json数据 1.下载工具"水经微图", 2.下载东川 ...

  4. JDK8安装包的下载安装方式以及环境变量的配置

    前面我们介绍了 <Java是什么?>.<OracleJDK是什么?OracleJDK的版本怎么选择?>.<OpenJDK是什么?>以及<OracleJDK 与 ...

  5. 『学了就忘』Linux基础 — 1、UNIX系统介绍

    目录 (一)UNIX系统介绍 1.UNIX系统发展历史 2.UNIX 主要发行版本 (二)GNU计划 1.GNU计划介绍 2.为何Stallman会发起这个GNU计划呢? 3.GNU的通用公共许可证: ...

  6. 面试题二:JVM

    JVM垃圾回收的时候如何确定垃圾? 有2种方式: 引用计数 每个对象都有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收: 缺点:无法解决对象循环引用的问题: 可达性分 ...

  7. mysql 索引介绍与运用

    索引 (1)什么是索引? 是一种提升查询速度的 特殊的存储结构. 它包含了对数据表里的记录的指针,类似于字典的目录. 当我们添加索引时会单独创建一张表来去存储和管理索引,索引比原数据大,会占用更多的资 ...

  8. CentOS 7 文件权限之访问控制列表(ACL)

    Linux的ACL是文件权限访问的一种手段.当拥有者所属组其他人(own,group,other)不能满足给一个单独的用户设置单独的权限时,ACL的出现就很好的解决了该问题. 比如其他用户own,不属 ...

  9. SELECT SQL

    替换换行符: update qgnews set article_url=REPLACE(article_url,char(10),'') 替换回车符: update qgnews set artic ...

  10. python3安装pp过程

    并行计算的目的是将所有的核心都运行起来以提高代码的执行速度,在python中由于存在全局解释器锁(GIL)如果使用默认的python多线程进行并行计算可能会发现代码的执行速度并不会加快,甚至会比使用但 ...