美文网首页互联网科技
工作三年你还在日复一日的CRUD,你想过是为什么吗?

工作三年你还在日复一日的CRUD,你想过是为什么吗?

作者: 风平浪静如码 | 来源:发表于2020-08-18 15:13 被阅读0次

    什么是务实

    务实程序员他们总是在面临问题时,透过问题看到本质,从具体的场景出发,从大局着想,了解整个问题的来龙去脉,他们会对自己的行为负责,在项目面临问题时,他们不会撒手不管或者任由风险一步步扩大直至无法维护。

    大多数人都不是务实的程序员,因为成为务实的程序员并不满足 短期的利益,需要长期的打磨和持续不断的学习、思考反思。大多数人不是务实的程序员的原因只有一个:惰性使然

    程序员是有戾气的,许多人向我抱怨

    • 工作很久了,年龄也比较大了,感觉工作这些年以来在技术方向上没什么提升

    对这些人我有话说:没有及时反思,可能也是由于工作一直很忙,没有停下来静心思考。因为我相信任何有时间思考的程序员,都不会有这种想法。善于反思自己你会及时调整最近的状态,系统化的学习,提高自己的核心竞争力,让自己成为公司不可轻易替代的人才。

    • 整天 CRUD,项目技术栈用的比较老旧,想要接触新项目,想要去互联网

    对这些人我有话说:整天 CRUD 不是你找理由的根本!CRUD 的业余时间完全有时间提升自己!我也是 CRUD,但我不是一个 CRUD 程序员!千万不要给自己扣各种 CRUD 的帽子。项目技术栈用的比较老旧,我想说,计算机世界发展了 60 多年到现在,仍然只能识别 0 和 1 ,要专注于不变的根本。如果你学完操作系统,你就知道软件最终离不开操作系统,你就知道管程是怎么回事,操作系统实现不同调度算法的抉择时什么。我曾经说我喜欢技术,想要接触新的技术栈,当我被问及你知道哪些hibernate 思想到现在仍然流行,mybatis 哪些思想仍然很老旧的时候,你就会发现,技术的新潮只是一时的,没有永远不过时的技术!我听很多前辈讲起,在零几年的时候谁说自己进了互联网那完全是等着被人嘲笑的!为什么互联网现在流行?因为它符合我们大众的诉求!无现金支付,工作之余的放松,饿了就不想自己去买饭,实体购物又麻烦而且还要化解和各种店员的尴尬!!!但是互联网是无法落地的,在发展到一定规模和平台后,互联网也是最重要被淘汰的!而硬件、芯片、通信这些才是永远新潮的技术,只不过无法获取眼前的 feedback,很多高素质人才也不想从事罢了!

    • 我应该学哪些技术

    对这些人我有话说:这个问题本身就没有意义!没有人能够指导你学哪些技术!问这句话的目的就是想走捷径,但是学习是没有捷径的!学你想学的,学和你工作相关的,学能够让你提升核心竞争力的!如果非要让我说出要学什么话,我建议学基础,学基础,学基础,基础就是计算机组成原理、操作系统、网络、编译原理

    针对上面这些人,我认为他们只是难以接受改变,我认为这类人是 煮熟的青蛙。这个故事你一定听说过,它说的就是把青蛙放在慢慢加热的锅炉里面,刚开始青蛙感觉温度很舒适,随着慢慢加热,青蛙已经无力跳出锅炉了!

    而另外一种人是 把青蛙仍在滚烫的锅炉里 的人,它肯定想尽办法跳出来,这类人会想尽一切办法克服困难。

    不要给自己的人生设限

    李小龙曾经说过:我活着不是为了满足你的期望,正如你也不是因为我的期望。

    说的丧一点就是 诸君看我多装逼,我料诸君应如是

    软件开发行业绝对是最吃香的行业,因为我们收入颇丰,因为我们可以选择我们想要的工作,我们可以选择办公地点,我们可以实现财务自由,但这些前提是你要有能力。

    为什么有人喜欢抱怨呢?因为他们不曾想着改变,Martin Fowler 说过 你可以去改变组织,或者让自己换一个组织,总的来说,你是自由的,你可以做你想做的。

    不知道你听过 墨菲定律 没有?最简单的表达形式是越怕出事,越会出事,拿我们老祖宗的话就是 怕什么,来什么,但是在软件开发中,出现问题是再正常不过的事情了,就算你有完善的需求、设计文档,完备的自动化测试流程,多轮测试迭代,还是会出现问题,推迟交付,未曾预料的问题的出现。

    所以,不要惧怕问题,因为问题任何时刻都会出现,当问题出现时,我们应该依靠我们的专业性去解决问题,我们犯了错误要勇于承认,我们必须坦诚。

    勇于承担责任,不要把问题归咎于别人或者其他事情上,也不要寻找藉口,不要把问题归功于环境、编程语言、时间或者同事,这些因素可能影响你,但不是让你找的借口

    设想一下,比如银行职员、超市售货员、汽车修理工搪塞或者敷衍你的时候,你是什么反应?是不是恨不得想他了他们的门店?你会如何看待他们的公司?那如果是你呢?你的上司或者甲方会怎么看你?

    • 破窗效应

    破窗效应说的是,如何把一座富丽堂皇的别墅变成一片废墟?也许你只需要一扇破窗,这就是破窗效应的威力。

    那么为什么破窗效应的威力这么强大呢?一扇破窗,如果一段时间不去修理和修复,别墅中的主人就会潜移默化产生一种这座别墅很老旧的想法,久而久之更多的窗户也慢慢积满灰尘,不去打理,直到整个别墅成为废墟。

    拿到软件开发中就是,如果一扇破窗(糟糕的设计、错误的决定、没有注释的代码,混乱的逻辑)不去修理,慢慢的就会有更多人作出破窗决定,导致整个项目混乱不堪,无法维护。俗称一块臭肉坏了满锅的汤。

    • 编制合理的谎言

    有三个在战场中的战士已经很久没有吃饭了,他们看完前面有个村庄,但是村庄里面没有人,但是士兵没有气馁,他们烧了一锅水,小心翼翼地在锅里放了三块石头,诡异的村民们都出来围观,然后战士就说:这叫石头汤,你们就在汤里放这个?嗯,是的,士兵回答道,但是有点胡萝卜味道会更好,一个村民就跑回家把自己家里的胡萝卜拿来了,随后士兵又说,如果有牛肉那就更好了,又一个村民跑回家把牛肉拿过来了,最后,他们煮了一大锅汤,士兵把石头扔掉,最后和村民们一起吃了一顿美餐。

    这在软件开发中同样适用。你可以通过一个小改动入手,渐渐的拓展全局,但是一定要注意方式和方法,一定要假装你不在意,这时候应该坐下来,等他们开始向你问你要不要加些你原本想要的功能。加入一个推进中的成功项目更容易一些。

    • 让用户参与评审和设计

    你是否经历过这种,你做的东西拿给用户看后发现这并不是他么想要的,每次都需要打回重做。但是没办法,那是你的用户,你们的共同职责就是做出一个双方都满意的软件。为了达到这种目的,沟通就扮演了至关重要的作用。或者说,你还不够了解你的用户,要多和他聊聊,这或许是程序员的短板。多让你的用户参与评审,多问他们这样怎么怎么样。

    如何学习知识

    • 知识理财

    本杰明富兰克林说过:投资知识,收益最高 。知识和经验确实是你最需要的资产。投资知识在某种程度上和 理财 是一样的。什么?这两种毫不相关的概念怎么会扯到一起去的?别着急,且听我慢慢给你分析。

    • 首先,理性投资者具有周期性投资的习惯,周期性投资就是定投
    • 理性投资者会衡量或者说平衡高风险高收益和稳定收益的组合
    • 采取多样化是打持久战成功的关键因素
    • 投资者最核心的准则就是低买高卖获得最大的回报
    • 定期审查、反思自己的理财组合

    为什么说学习知识和理财一样呢?

    定期投资

    就像金融定投一样,你必须定期为你的技术栈找到合适的学习组合,即使数量有限。

    风险管理

    不要把所有的鸡蛋都放在一个篮子里,你要学新潮的框架同时也要专注于永恒不变的基础知识。这样会让你不止于思考框架,同时也会让你跟进时代的进步适应这个社会。

    多样化

    你知道的越多,你的作用、你的价值也就越大。如果你是一个只专注于某个业务的程序员,一定要从整体把握,不要局限在自己的一亩三分地中。如果你不喜欢业务,那你就要从整体考虑用到什么技术,计算机技术变化迅猛,今天的热点技术可能明天就会被废弃。你要多熟悉技术,成为 T 型人才。T 这个字的写法一定是先横着写再竖着写的,知道广度后,才有可能选择一个切入点深入进去。

    低买高卖

    你在 Java 流行之前绝对不会想着去学习 Java,但是当 Java 流行之后,那些早起的用户已经积累了相当丰厚的回报。

    重新评估

    重新评估你的技术栈,推陈出新,查漏补缺。

    • 知识组合

    这里有一些对你学习知识的几种组合方式,也是一些建议:

    • 每年学习一门新的编程语言:培养自己从不同的角度思考语言这回事,权衡语言的利弊,解决了什么样的问题
    • 每月读一本技术书:这个可能有些费劲,因为一本黑皮书你不可能一个月就读完了,除非你什么都不做,天天只看书,但是有的实战类的书还是可以看完的。这里只是告诉你一个大致的读书周期
    • 读技术书:你的人生不仅仅只有计算机,还有生活,计算机也是通过人类制造出来的,你要站在人的角度思考问题。
    • 上课:去本地大学上课是一件很不错的事情
    • 参加城市技术圈子交流:不要只当听众,要参与进去,了解其他人都在做什么
    • 与时俱进:还是那句话,关心一下你的技术栈,阅读相关的新闻和技术帖子,这是一种很好的方式。

    持续投资非常重要,计算机不是一件速成的事儿。

    • 碎片学习的机会

    你要如饥似渴的学习,如果你无法找到问题的答案,去寻觅有能力找到答案的人,而不是要让问题 沉寂下去。和其他人交谈有助于构建你的人际网络,而且你会很惊讶的发现,在你寻找答案的这个过程中,你会不断扩大你的知识面。

    所有的阅读和研究都需要时间,而时间是永远不够的。所以你需要时刻准备好,确保在无聊的时候有东西可以读。在医院排队也不要忘了放弃阅读的好机会 --- 一定要带上自己的 kindle 或者电子阅读器

    • 批判性思维

    最后一个要点是要具有批判性思维,批判性地思考读到和听到的东西。

    网络不是那么干净的。永远不要低估商业的力量。他会把黑的说成白的。

    网络搜索引擎会把热门的东西放在前列,而不仅仅是正确的东西,也并不是对你有用的东西。书店会把一本书放在显眼的位置,但并不能说明这是一本好书,有可能包装好,有可能封面好,有可能只是标题吸引人,有可能这本书很流行或者很畅销。

    批判性思维有五个你需要思考的方向

    • 重复性的问 为什么
    • 谁能从中受益,了解资金流的转向
    • 什么背景下发生的这件事情
    • 开始后会发生什么,结束后会发生什么
    • 为什么这是个问题

    写在最后

    还在CRUD的Java程序员怎么提升自己?笔者根据自己多年的开发经验总结出来了一份《Java程序员进阶路线图》,希望能够帮助到你

    PS:由于平台图片大小问题,下面技术点有些可能看不清或者未展开,有需要的可以 点击这里,就是这里 免费获取高清X-mind图

    Java性能调优

    JVM

    • JVM类加载机制详解
    • JVM内存模型
    • 垃圾收集机制详解
    • 垃圾收集算法详解
    • JVM调优工具详解
    • GC日志详细分析
    • JVM调优实战

    MySQL

    • Mysql索引数据结构深度讲解
    • Mysql 执行计划与索引讲解
    • Mysql锁机制与事务隔离级别详解
    • 慢查询Sql调优实战

    Tomcat

    • 整体认知Tomcat项目架构
    • 生吃环境配置
    • 掌握Tomcat 线程模型背后原理

    Nginx

    • Nginx快速掌握
    • 熟练掌握Nginx核心配置
    • 掌握Nginx负载算法配置

    并发编程

    • 操作系统内核原理
    • JVM内存模型
    • 并发同步处理
    • 并发包之tools限制
    • 并发包之atomic原子操作
    • 阻塞队列BlockingQueue详解
    • 并发Map、List与Set详解
    • Executor线程池详解及核心源码剖析
    • ForJoin

    框架源码

    应用框架spring

    spring IOC源码解析
    spring Aop源码解析
    spring MVC源码解析
    spring注解试开发
    spring 5新特性
    spring securit原理与源码剖析
    spring webflux

    ORM框架MyBatis

    • MyBatis 快速掌握
    • MyBatis 源码分析
    • MyBatis 徒手实现

    设计模式

    • 设计原则
    • 创建型模式
    • 结构型模式
    • 行为型模式
    • 设计模式对比及应用场景

    分布式框架

    分布式消息中间件

    • Rabbitmq
    • RocketMq
    • Kafka

    分布式储存中间件

    • Redis
    • MongoDB
    • FastDFS
    • Elasticsearch

    分布式框架

    • Zookeeper
    • Dubbo
    • ShardingSphere
    • Netty

    微服务系列

    • 微服务架构变迁史
    • spring boot源码剖析
    • spring cloud Netflix源码剖析
    • spring cloud Alibaba源码剖析

    互联网工具

    • Git
    • Maven
    • Jenkins
    • Linux
    • 虚拟容器

    下图是笔者根据《Java程序员进阶路线图》总结出来的一些一线互联网面试真题大纲图

    资料领取方式:点赞关注一下,点击【 石墨文档 】免费获取高清思维导图及Java相关学习面试资料!

    相关文章

      网友评论

        本文标题:工作三年你还在日复一日的CRUD,你想过是为什么吗?

        本文链接:https://www.haomeiwen.com/subject/wcahjktx.html