每天清晨,上班的路上。都摆满了油条摊子。
小面团一捏,油锅里一烫,用筷子稍微那么挑几下,一根屎黄色的油条就这么出炉了。
就这么简单的事。
每当这时,我都会盯着炸油条的师傅沉思。
由于对生活保持着好奇心,我对一切事物形成的原因保持着最原始的探知需求,包括油条。在一个偶然的机会,家里剩下了一大锅油,我决定DIY一下炸油条的过程。
等真正上手去做的时候,才发现炸油条并不是那么简单。
我们姑且把材料和配方放在一边,仅仅是掌握火候,控制过程,都需要大费周折。最后,不是炸糊了,就是没炸熟,废了九牛二虎之力,最后还是炸了个寂寞。既浪费了材料,又浪费了时间。
古人曾说过:细微之处见斟酌。这体现了两个道理:
- 一些表面上看起来简单的事情,并不是那么简单
- 炸油条,像极了普通的CRUD
对于大多数程序员来说,炸一根黄澄澄的油条。哦不,写一些增删改查的代码,是家常便饭。我们就来分析一下,这个CRUD到底有前途么?到底赚钱么?
1. 打工者付出了什么?
在这之前,我们来看一下。一个上班的人,他到底付出了什么,才能获得资本家的薪水呢?
我们的劳动,其实分为三部分:
一、技术技能
毫无疑问,公司发工资,作为等价交换,就需要掌握某些技能。CRUD对于炸油条来说,曲线稍微那么陡了一些,但本质上并没有什么区别。
随着越来越多的人,参与到这个行业之中,CRUD的技能正在下沉。虽然不同的人CRUD的水平不太一样,但一般的人还真的无法区别。
所以说效率这个东西,大多数时候只是懂你的人还有你自己才能判定的,所以大多数人都盯着你的第二个劳动付出:时间成本。
二、时间成本
有些公司,签了合同,就和签了卖身契一样,让你永远无法睡个好觉。因为时间是世界上最值钱的东西,当劳动法无法触及的时候,企业就会疯了一样去试探底线,以便让利益最大化,以至于产生了996、007这样的变态做法。
非常让人欣慰的是,情绪成本会随着时间成本的投入持续上升,当一个人的时间成本和情绪成本达到无法忍受的地步,当钱也解决不了的时候,他就会和企业说byebye。当群体的时间成本和情绪成本失控,就会出现消极怠工,甚至大面积不作为的现象。
三、情绪成本
不是危言耸听,在不同的公司工作,甚至会影响你的寿命。
工作强度伤害的,往往是生理层面的,蹩脚公司氛围伤害的却是心理层面的,千万不要忘了这一份劳动付出。
有的公司,你即使什么也不做,也会感觉很累很累。看着群里发的信息,你会生气;和其他部门甚至自己部门的人打交道,憋了一肚子火;参加公司的各种会议,连摸鱼都觉得难受。
这个时候,你其实在劳动,你的成果,就是承受、或抵抗公司管理和流程做引起的情绪波动,尤其是这个情绪成为普遍性问题的时候。
所以,即使刨除第一点技术技能,哪怕你在公司干坐了一整天,你也付出了时间成本和情绪成本,你的报酬也是应得的,不必有什么愧疚感。
2. 哪种更好?
有愧疚感的应该是资本家。
对于个体来说,最好的成长方式,就是技术技能的不断提升;时间成本,碰到能遵循劳动法的那就更好;而情绪成本,可以说是对打工者伤害最大的了。
因为你的这部分情绪成本,没有经验积累,只有赤裸裸的付出。
对于公司来说,结果才重要。个体的这些劳动付出,不过是怎样可以达到最优的整体状态,节省成本,增加收益。
情绪成本大多数是由于管理失误所产生的,管理者要尽量降低打工者在工作中对于情绪成本的付出,让打工者专注到炸油条这件事情上去----这就是管理者所产生的价值。
如果一个管理者,能够创造轻松、自由的氛围,提高其他人的技术技能,让大多数人心甘情愿的付出时间成本,那他就是成功的。
如果一个管理者,营造了生硬的流程,人人自危的氛围,各人自扫门前雪的工作模式,产生了无效加班,甚至想要量化技术技能和时间成本,那他就是失败的。
我越来越觉得,技术技能、时间成本、情绪成本,就像是分布式领域里面的CAP。
在一个公司里,情绪成本的付出是相对固定的,就相当于分布式领域的P,不可避免。那么选择,就是集中在技术技能和时间成本的权衡上,也就是拼效率还是熬工时。
很遗憾的是,有很多公司选择了熬工时这种双输的方式。因为技能提升可以抵消情绪成本,而熬工时却是在加大情绪成本。
至于那些不熬工时也不拼技能的市场化公司,不好意思,早倒闭了。
3. CRUD的价值
所以,crud的价值就体现出来了。因为crud,并不仅仅是写代码这份简单的技能,它还有时间成本和情绪成本的付出。
- 今天的需求,明天就变动,这是crud的价值
- 产品没想明白怎么做,cruder替他想一部分,这是价值
- 替项目经理补充、撰写文档,这是价值
- 拥护公司的狼性文化,看破不说破,也是价值
- 承担多条线的繁杂琐事,这是价值
- 忍受多重领导的不同风格,争取把crud代码落实下去,这也是价值
- 削平自己的棱角,甘心做一枚螺丝钉,也是本分价值
- …
说实话,把自己摆在crud这个位置上,本身就是一件非常辛苦的事情。并不是说老板不能干crud的活,培训他一年半载,他也能做,但他能放下自己的野心么?
当你的老板说,写代码有那么难么,不就是CRUD么?他可能真的觉得不难,但是他不会干这样的活。因为即使他拥有了这份技能,时间成本和情绪成本,也不是他能负担得起的。
他可能干了一周就跑了,比你还怨天尤人。
这部分工作总得有人去做,所以只要企业有信息化需求,那cruder就永远有活干。
那如何让自己更加有分量呢?也有三种方式。
第一,提升水平。
尽量提高自己的专用技能,进入竞争者更少的领域。
第二,改变路线。
成为管理者,专注减少普通打工者的情绪成本。
第三,那就是死扛了。
送你一句话:不怕脏不怕累,别人会的你都会;不怕渴不怕饿,别人假寐你打坐;不怕骂不怕打,别人发怒你装傻。
永远不要太气馁,炸油条的都能活下去,何况是CRUD。
一直想整理出一份完美的面试宝典,但是时间上一直腾不开,这套一千多道面试题宝典,结合今年金三银四各种大厂面试题,以及 GitHub 上 star 数超 30K+ 的文档整理出来的,我上传以后,毫无意外的短短半个小时点赞量就达到了 13k,说实话还是有点不可思议的。
一千道互联网 Java 工程师面试题
内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈(485页)
初级—中级—高级三个级别的大厂面试真题
阿里云——Java 实习生/初级
List 和 Set 的区别 HashSet 是如何保证不重复的
HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?
HashMap 的扩容过程
HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?
对象的四种引用
Java 获取反射的三种方法
Java 反射机制
Arrays.sort 和 Collections.sort 实现原理 和区别
Cloneable 接口实现原理
异常分类以及处理机制
wait 和 sleep 的区别
数组在内存中如何分配
答案展示:
美团——Java 中级
BeanFactory 和 ApplicationContext 有什么区别
Spring Bean 的生命周期
Spring IOC 如何实现
说说 Spring AOP
Spring AOP 实现原理
动态代理(cglib 与 JDK)
Spring 事务实现方式
Spring 事务底层原理
如何自定义注解实现功能
Spring MVC 运行流程
Spring MVC 启动流程
Spring 的单例实现原理
Spring 框架中用到了哪些设计模式
为什么选择 Netty
说说业务中,Netty 的使用场景
原生的 NIO 在 JDK 1.7 版本存在 epoll bug
什么是 TCP 粘包/拆包
TCP 粘包/拆包的解决办法
Netty 线程模型
说说 Netty 的零拷贝
Netty 内部执行流程
答案展示:
蚂蚁金服——Java 高级
题 1:
jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)?
ConcurrentHashMap
并行跟并发有什么区别?
jdk1.7 到 jdk1.8 java 虚拟机发生了什么变化?
如果叫你自己设计一个中间件,你会如何设计?
什么是中间件?
ThreadLock 用过没有,说说它的作用?
Hashcode()和 equals()和==区别?
mysql 数据库中,什么情况下设置了索引但无法使用?
mysql 优化会不会,mycat 分库,垂直分库,水平分库?
分布式事务解决方案?
sql 语句优化会不会,说出你知道的?
mysql 的存储引擎了解过没有?
红黑树原理?
题 2:
说说三种分布式锁?
redis 的实现原理?
redis 数据结构,使⽤场景?
redis 集群有哪⼏种?
codis 原理?
是否熟悉⾦融业务?记账业务?蚂蚁⾦服对这部分有要求。
好啦~展示完毕,大概估摸一下自己是青铜还是王者呢?
前段时间,在和群友聊天时,把今年他们见到的一些不同类别的面试题整理了一番,于是有了以下面试题集,也一起分享给大家~
如果你觉得这些内容对你有帮助,可以加入csdn进阶交流群,领取资料
基础篇
JVM 篇
MySQL 篇
Redis 篇
由于篇幅限制,详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
如果你觉得这些内容对你有帮助,可以加入csdn进阶交流群,领取资料