2019已到,我给java程序员的唯一一条建议!

做了几年Java开发,或许你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者。到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破?其实大家往往忽略了这一点——提升自己的架构认知(工作5年左右的Java程序员必须重视架构认知的提升,这会很大程度上推动你今后的成长)。架构的本质在于面对业务场景给出优雅的解决方案,使得业务能够快速迭代和持续交付,从而达到降本增效的目标。提升架构认知高度,就像达克效应所描述的一样,要敢于从愚昧之巅跳到绝望之谷,通过爬升开悟之坡,从而达到架构认知的巅峰时刻。到达巅峰时刻也就掌握了架构背后设计的哲学,面对具体业务场景在架构层面你便能够轻松应对,以无招胜有招。

提升架构认知,要紧抓3个关键点:业务洞察力、技术视野、原创力(执行力)。
1.业务洞察力是技术战略层面的问题,在当下能够做出合理的判断,清楚公司做什么事情收益最大;
2. 技术视野即技术选型能力,是技术战术层面的问题,在清楚做什么事情后,需要进一步解决怎么做的问题,也就是能够给出合理的技术选型方案:是完全基于开源的方案,还是基于开源二次开发的方案,还是完全自研的方案;
3. 原创力(执行力)是技术落地执行层面的问题,一旦技术设计方案确定后,需要能够快速Rush完成。这3点层层递进,最重要的是先把技术战略问题思考清楚,然后再进一步解决技术战术问题,最后是快速落地执行的问题。工作5年左右的程序员,在原创力(执行力)层面比较有竞争力,往往欠缺技术视野以及业务洞察力。后面2点更加重要,这2点解决的是架构设计哲学问题,是架构师能够持续拥有竞争力和影响力的立身之道。举个场景的例子来详细说明:一提到分布式锁问题,大多数人想到的方案是基于Redis的Master-Slave模式来实现。这个实现方案行不行?分布式锁本质是一个CP需求,基于Redis的实现是一个AP需求,乍一看基于Redis的实现是无法满足的。脱离业务场景来谈架构都是耍流氓。从技术战略的需求层面来看,如果分布式锁在极端情况下获取锁的不一致,社交业务场景能够接受,那么基于Redis的实现是完全可行的。如果业务是交易场景,分布式锁在极端情况下获取锁的不一致性无法接受,那么基于Redis的实现方案是不可行的。在锁强一致性的场景下,需要采取基于CP模型的etcd等方案来实现。 “于一微尘中,悉见诸世界”,一切事物的本质是相通、相同的。 学习架构也是如此,掌握了架构设计背后的哲学,那么一切工程问题也就迎刃而解了。提升架构认知不是一蹴而就的,它离不开刻意学习和思考。
我说的这些不知道你是否也认同呢?

原文地址:https://blog.51cto.com/14207480/2353078

时间: 2024-10-11 07:06:04

2019已到,我给java程序员的唯一一条建议!的相关文章

Java程序员注意了:奠定你发展的黄金五年,你准备如何把握好?

在Java业界流行着一种说法--黄金5年,就是从程序员入职时算起,前五年的工作选择直接影响整个职业生涯的职业发展和薪资走向.如何把握这五年,从一个刚入行的菜鸟蜕变成一个处事不惊的大佬,这是一个涉及到自身的专业知识储备和选择的难题,那么,一个Java程序员如何做才能完成从入行到大佬的晋升之路呢? 参加工作1-2年之间 在这段时间里,想必对Java已经有了一个深入的了解.首先,你要非常熟悉设计模式,看一些关于代码编写优化的书,提高你的代码能力,能够写出一手优雅的代码:其次,你在工作过程中肯定接触过并

Java程序员从京东、阿里、携程面试回来,已成功拿到京东offer

阿里巴巴(一面) 阿里找了一个前辈内推的,准确来说应该是直推,是他帮我直接录的简历,他本科进的阿里蚂蚁金服,厉害吧?是真的佩服.第一次在官网上填资料,想想马云有多出名,想想蚂蚁金服这样的顶级技术,有些兴奋,有些期待. 录完简历后等待简历评估,原来,找内推不一定能得到面试机会,能不能得到面试机会要经过简历评估(我这才知道,原来内推免笔试可不是那么容易的),毕竟内推能免去在线笔试直接面试,互联网第一梯队像百度.阿里,腾讯的笔试真的很有难度,做过前几年这些公司的笔试题,真的太难了.在阿里的校招群里看到

阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?

最近去阿里的菜鸟国际做了一次面试交流,发现大公 阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?司对于面试者的知识结构考核非常严谨,可以作为我们日常工作学习的指导.虽然很多人说面试问到的东西在实际工作中很少用到,甚至有「面试造火箭,工作拧螺丝」的说法.但从面试中,其实可以看得出来现在的公司对于面试者的知识体系要求.如果我们能在工作中就按着这样的要求去不断提升,那么在面试的时候必然也能游刃有余. 具有一到五年开发经验的程序员 需要学习的内容? 技术学到这个阶段,很容易遇到瓶颈,

Java已五年1—二本物理到前端实习生到Java程序员「回忆贴」

关键词:郑州 二本 物理专业 先前端实习生 后Java程序员 更多文章收录在码云仓库:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 没有正式复工,就一直在老家待着,已经很长时间没有在三月份时候待在老家了,好久好久,从08年去县城上高中开始,在外多,在家少,一直没有机会好好停下来看看家乡. 坐的时间越长,回忆越多,想的越多,就想要整理一下这些年的经历,尤其是从事Java至今,算是一种回忆,也算是一种复盘. 分享给朋友们一张杨花. 大学

Java程序员精选高频面试笔试题全家桶,通往BAT必备法宝!《附赠PDF》

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动? 最近这波互联网裁员浪潮下,许多朋友被裁之后几周内陆陆续续找到工作,但也有部分现在还在求职中,其中重要区别就是在于平时是否坚持积累和成长. 面对工作,与其选择满不情愿,最后收获痛苦煎熬和差强人意的结果,不如思考如何提升工作效率和自身能力,在工作中关注自身能力成长,并去刻意练习,想办

Java程序员的Golang入门指南(上)

Java程序员的Golang入门指南 1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如果有人说X语言比Y语言好,两方的支持者经常会激烈地争吵.如果你是某种语言老手,你就是那门语言的"传道者",下意识地会保护它.无论承认与否,你都已被困在一个隧道里,你看到的完全是局限的.<肖申克的救赎>对此有很好的注脚: [Red] These walls are funny.

[转] Java程序员学C#基本语法两个小时搞定(对比学习)

Java程序员学C#基本语法两个小时搞定(对比学习) 对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import2.构造函数和java语法相同3.析构函数  变量和类的对象都有生命周期,生命周期结束,这些变量和对象就要被撤销.  类的对象被撤销时,将自动调用析构函数.一些善后工作可放在析构函数中完成.  析构函数的名字为~类名,无返回类型,也无参数.Per

Java程序员面试题集(1-50)

下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja

Java程序员面试题集(71-85)

Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言).面向对象的设计原则(六原则一法则).GoF设计模式.企业级设计模式.JDBC(Java数据库连接).XML(可扩展标记语言)等知识. 71.UML是什么?UML中有哪些图? 答:UML是统一建模语言(Unified Modeling Language)的缩写,它发表于1997年,综合了当时已经存在的面向对象的建模语言.方法和过程,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化