Java程序员该如何进阶?资深阿里P8通过十年经验送你一些经验和建议!

news2024/11/18 5:37:45

献给迷茫中的你

我相信很多人都有过自己迷茫期,在开始学习之前会迷茫,会不知道自己要学什么,学这些有什么用;学习之后,学的不扎实,得不到认可,觉得自己白学了;真正找到一份还凑合的工作后,面对重复性的工作,又会不知道自己该如何提升。下面我会根据大多数人的情况,梳理一下程序员的几个段位,以及我们该如何一步步打怪升级,走向人生巅峰。

第一阶段 小白

这个阶段大多是一些计算机相关专业的学生,或者对编程极其感兴趣的人,又或者是培训入坑,被高薪好就业吸引过来的。大家刚刚开始接触编程,有的人会觉得这个东西非常有意思,可以去解放我们人类的劳动,让计算机去帮助我们做一些事情,当屏幕出现“ Hello world!”的时候好像打开了一扇门,进入了一个新的世界;有的人会觉得这个东西很头疼,枯燥乏味,几行代码也只能实现一个“ Hello world!”。在编程的世界里“ Hello world!”的地位极其重要,它得出现意味着我们打开了一项新技术的大门,兴趣是最好的老师,它可以帮我们快速去入门,快速去学习新知识,在第一阶段也是兴趣逐步拉开我们的差距,有的人可能学完之后,依然不知道自己学了什么,有的人学完之后已经初步摸到了初级程序员的门槛,走入了程序员的职业生涯!

第二阶段 初级

薪资:0-15k (以一线城市工资标准参考 1-3年工作经验)
门槛:熟练掌握编程语言(Java、C#、C++、GO...),熟练使用开发框架(SSM、SpringBoot、前端技术、了解微服务架构、多线程、设计模式、数据结构、网络、服务器技术、NIO...)

第三阶段 中级 (编码)

薪资:15k-25k (以一线城市工资标准参考 3年左右工作经验)
门槛:掌握精通各种开发框架、微服务、rpc、熟练使用各种中间件技术、熟悉互联网业务、虚拟化技术、深入了解数据结构和算法、精通,熟练运用设计模式(让项目代码更规范健壮)...

第四阶段 高级 (设计、管理)

薪资:20k-35k (以一线城市工资标准参考 3-5年工作经验 管理)
门槛:产品后端架构设计,带团队、开发落地、新功能开发、参与需求分析,业务规划,详细设计、核心代码、帮团队成员解决技术问题、技术方向、技术选型、招聘(选拔人才)、技术分享、了解大数据、JVM内存管理、调优、精通分布式

第五阶段 架构

薪资:30-60k (以一线城市工资标准参考 5-10年工作经验 管理)
门槛:微服务架构和设计、发现和解决复杂问题、技术难点攻关、人手不足参与编码,优化、重构、高并发、大数据处理经验...
要求:主导过大型高可用,高并发,分布式、自动化(K8s)大型项目经验

第六阶段 CTO

专家级的技术,对产品有深入了解,熟悉行业,熟悉企业管理,能够为公司产品的发展选择方向,管理多条产品线

第七阶段 技术合伙人

让自己不断提高,让自己变得有价值,在机遇到来就可以抓住,最稳妥的一种创业

第八阶段 创业

无薪资,无门槛,无上限
有风险,需谨慎

建议:
在平常的开发中一定不能只注重功能实现,要有技术亮点,不能站在工人的角度去思考,要站在设计师的角度去考虑,要考虑程序的扩展性、可用性、... 要具备工匠精神,踏实做好每一件事,认真面对每一行代码,遵守开发规范,多思考如何优化代码,为什么别人一行代码搞定,而我们自己却搞了一堆代码,多去了解计算机基础知识,原理很重要,数据结构和算法,设计模式都很重要,还有就是编程思想。我们需要一步步提升自己的技术,让自己走向更高的平台,这样我们才能学习到更多知识,多去主动学习,一定避免在初级程序员(CRUD)停留过长时间,用技术水平去规避中年危机!

作为一个开发了十多年的老司机,做开发时间越久,越觉得程序员是一个需要终生学习的行业! 今天,我就用文字加图片的形式带领大家来看看,我们Java程序员,想要进阶架构师,刚刚开始需要掌握哪些技术?还有完整java学习路线、技术栈大纲

路线建议

1.并发编程进阶

虽然搞了这么久Java,可许多朋友一提到“并发”就头疼:

为什么我已经学习了很多相关技术,可还是搞不定并发编程?小公司根本遇不到并发问题,高并发经验该怎么积累?平时该怎么学习?昨天面试又卡在并发问题上了,并发编程难道已经成为大厂必备的敲门砖了吗?

有这些困惑很正常,因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,而这些知识点看上去非常的零散、独立,可实则关联性又比较强,更为考验一个程序员的内功。

并发编程学习资料:

2.JVM性能深度调优

对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。

JVM学习资料:

Netty

Netty 的一个特点就是入门相对比较容易,但是真正掌握并精通是非常困难的,原因有如下几个:

  1. 涉及的知识面比较广:Netty 作为一个高性能的 NIO 通信框架,涉及到的知识点包括网络通信、多线程编程、序列化和反序列化、异步和同步编程模型、SSL/TLS 安全、内存池、HTTP、MQTT 等各种协议栈,这些知识点在 Java 语言中本身就是难点和重点,如果对这些基础知识掌握不扎实,是很难真正掌握好 Netty 的。
  2. 调试比较困难:因为大量使用异步编程接口,以及消息处理过程中的各种线程切换,相比于传统同步代码,调试难度比较大。
  3. 类继承层次比较深,有些代码很晦涩(例如内存池、Reactor 线程模型等),对于初学者而言,通过阅读代码来掌握 Netty 难度还是比较大的。
  4. 代码规模庞大:目前,Netty 的代码规模已经非常庞大,特别是协议栈部分,提供了对 HTTP/2、MQTT、WebSocket、SMTP 等多种协议的支持,相关代码非常多。如果学习方式不当,抓不住重点,全量阅读 Netty 源码,既耗时又很难吃透,很容易半途而废。
  5. 资料比较零散,缺乏实践相关的案例:网上各种 Netty 的资料非常多,但是以理论讲解为主,Netty 在各行业中的应用、问题定位技巧以及案例实践方面的资料很少,缺乏系统性的实践总结,也是 Netty 学习的一大痛点。

Netty学习资料:

内容包含基础功能、高级应用、系统架构、源码分析和行业应用,深入阐述了Java I/O 的Netty NIO开发、Netty 编解码开发、Netty多协议开发等各方面的技术要点,包含了对源码的深刻解读,并且对Netty的应用现状和未来趋势进行分析,旨在帮助从业人员提升自我,更快更明确地发展职业道路。本书适合架构师、设计师、软件开发工程师、测试人员和其他对Java NIO框架、Java 通信感兴趣的相关人土阅读,相信通过学习本书,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。

深入Tomcat底层

Tomcat作为一款免费的开源应用服务器,凭借技术先进、性能稳定、体积小巧、扩展性好,深受开发人员和软件开发商的认可

想要深入Tomcat底层肯定不是几句话就能讲完的!

Tomcat底层资料分享:

本书试图为读者完整地、系统化地讲解Tomcat,甚至会在开篇简要讲解Tomcat的历史及现状。所有这一一切,都是基于希望读者“知其然,更要知其所以然”的目的出发的。当然,作为读者,你完全可以选择自己感兴趣的部分进行阅读。

Mysql深度优化

数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷

Mysql深度优化学习资料:

本书涵盖了许多复杂的主题。在这里,我们将解释一下是如何将这些主题有序地组织在一起的,以便于阅读和学习。了如何让操作系统和硬件工作得更好。另外也深入讨论了固态硬盘,为高可扩展性应用发挥更好的性能提供了硬件配置的建议。

上面两章都--定程度地涉及了MySQL的内部知识。这将会是-一个反复出现的主题,附录中也会有相关内容可以学习到MySQL的内部是如何实现的,理解了这些知识将帮助读者更好地理解某些现象背后的原理。

架构基础必备Linux

Java程序员也是半个运维了,在日常开发中经常会接触到Linux环境操作。小公司的开发人员甚至是兼了全运维的工作,这种情况下,想要进阶架构师,不掌握Linux你觉得合适吗?

Linux学习资料

这本书包含了其他任何Linux文档资料中都没有涉及到的主题,本书包括你应该理解的一切,还有怎样安装,怎样使用Linux操作系统。本书包含完整的安装指导教程,系统维护的完整信息、文档开发和编程工具、网络管理的指导原则。

如果说个人能够改变自己命运的话,对于程序员来说,唯有通过不断的学习和实践,努力提升自己的技能,才有可能找到更好的机会,充分发挥和体现自己的价值。我希望我收集到的资料,能为你的成功助一臂之力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)27. 移除元素(C++)

双指针 删除 valvalval 等价于将不等于 valvalval 的数按原来的顺序插入数组。 判断当前数和 valvalval 是否相等 。相等则跳过,向右遍历。不相等,则遇到非 valvalval 的数,插入待插入位置,待插入位置向右一位。 jjj 指向待插入…

【OpenDDS开发指南V3.20】第六章:内置主题

介绍 在 OpenDDS 中,默认情况下会创建和发布内置主题,以交换有关在部署中运行的 DDS 参与者的信息。 当使用 DCPSInfoRepo 服务在集中式发现方法中使用 OpenDDS 时,内置主题由该服务发布。 对于 DDSI-RTPS 发现,在进程中实例化的内部 OpenDDS 实现填充内置主题数据读取器…

es5下载安装x-pack修改密码

1.下载和es相同版本的x-pack 如果不是相同的版本会报错,页面会显示main问题 下载地址如下 Download X-Pack: Extend Elasticsearch and Kibana | Elastic 2.将下载下来的安装包传入到需要配置密码的服务器中 3.在es中安装xpack插件 记住x-pack插件无需解压 cd /…

计算机专业毕业论文设计与实现(论文+源码)_kaic

jspSSM201大学生第二课堂学分成绩活动报名vue.mp4jspSSM205旅游信息景点酒店购物车vue.mp4jspSSM206 篮球NBA周边商城vue.mp4jspSSM207办公OA考勤请假健康设备系统.mp4jspSSM208停车位短租系统vue.mp4jspSSM209大学生兼职跟踪系统vue.mp4jspSSM210的KTV点歌系统.mp4jspSSM211的…

高项 整体管理论文

六个过程: 1、制定项目章程:编写一份正式文件的过程,这份文件就是项目章程。通过发布项目章程,正式地批准项目并授权项目经理在项目活动中使用组织资源。 2,制定项目管理计划:定义、准备和协调所有子计划…

用busybox构建最小根文件系统详解

1、busybox源码获取 (1)busybox官网下载地址:https://busybox.net/; (2)建议下载busybox的版本:尽量和你使用的编译环境(比如:Ubuntu)的版本相近,版本差太多可能需要解决一些编译时候的兼容问题; 2、busybo…

从零开始做一款Unity3D游戏<二>——移动,相机控制与碰撞

移动玩家 玩家对象的创建 理解向量 获取玩家输入 相机跟随 使用Unity的物理系统 刚体运动 碰撞体和碰撞 使用碰撞体触发器 总结 本文主要来自<<C#实践入门>>哈里森.费隆 著&#xff0c;仅用为做笔记。 当玩家开始玩一款新的游戏时&#xff0c;要做的第一…

第3章 数据结构中树的概念

文章目录文档配套视频讲解链接地址第03章 树3.1 二叉树创建1. 实例20 二叉树创建3.2 二叉树遍历1. 二叉树的遍历2. 三种遍历算法3. 实例21 二叉树的遍历文档配套视频讲解链接地址 腾讯课堂视频链接地址 : 24_树与二叉树_树的理解腾讯课堂视频链接地址 : 25_树与二叉树_二叉树遍…

论文精读:End-to-End Semi-Supervised Object Detection with Soft Teacher

https://arxiv.org/pdf/2106.09018.pdf 半监督学习重在流程&#xff0c;而不在网络细节 Abstract 本文提出了一种端到端半监督目标检测方法&#xff0c;不同于以往更复杂的多阶段方法。端到端训练逐渐提高了训练过程的伪标签质量&#xff0c;越来越准确的伪标签进而有利于目…

法大大携手企企科技,助力企业实现全生命周期合同管理

伴随着企业信息化高速发展&#xff0c;打破信息孤岛实现全业务信息化的需求日益凸显&#xff0c;企企科技携手法大大&#xff0c;完善了客户从签署到项目管理全场景的信息化解决方案&#xff0c;全面助力客户实现项目管控信息化。“数字化技术对项目管理具有多角度、全方位的影…

6-JS的Fetch 跨域问题

跨域访问 只要协议、主机、端口之一不同&#xff0c;就不同源&#xff0c;例如 http://localhost:7070/a 和 https://localhost:7070/b 就不同源 同源检查是浏览器的行为&#xff0c;而且只针对 fetch、xhr 请求 如果是其它客户端&#xff0c;例如 java http client&#xff…

oracle开启归档日志并修改归档日志路径

一、归档日志概念 归档日志&#xff1a;非活动的重做日志&#xff0c;用来保存所有的重做历史记录。 什么时候写归档日志&#xff1a;当数据库处于archivelog模式并重做日志切换的时候&#xff0c;后台进程ARCH会启动将重做日志的内容完整的保存到归档日志中。 日志操作模式…

ZPM介绍(2)

发布您自己的软件 首先&#xff1a;要发布您的软件&#xff0c;您要支持这个”命名规范。其中和zmp最相关的是包名和l类名的设计&#xff0c;你要定义成这样&#xff1a; company.project.subpackage.TheClass.cls 如果您的Package Name定义是&#xff1a; Company.Project, 有…

元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(3)

Saas/内部解决方案 2.10、Netflix Metacat Metacat 是一种元数据服务&#xff0c;使数据易于发现、处理和管理。在 Netflix&#xff0c;数据仓库由存储在 Amazon S3&#xff08;通过 Hive&#xff09;、Druid、Elasticsearch、Redshift、Snowflake 和 MySql 中的大量数据集组…

【Linux入门指北】文件服务器

文件服务器 文章目录文件服务器一、FTP Server1.简介2.FTP Server 默认配置3.FTP Clinet4.vsftpd的主动和被动模式二、NFS Server1.简要介绍2.环境配置3.关闭防火墙4.nfs(存储端)5.web1 web2 web3 客户端5.1 安装NFS客户端5.2 开启httpd服务5.3 查看存储端共享5.4 手动挂载5.5 …

电容笔哪个牌子好?2022年电容笔十大品牌排行榜

当电容笔搭配上了ipad&#xff0c;可以大大提升我们的工作效率&#xff0c;不会变得乏味。对于那些对绘画要求很高的人来说&#xff0c;电容笔在绘画中的作用更是不容忽视的。其实我个人对电容笔这块了解还不少的&#xff0c;有着许多平替电容笔都支持在ipad上使用的&#xff0…

社会工程攻击依然是企业面临的最大威胁

企业进入数字化时代&#xff0c;网络攻击行为无处不在&#xff0c;利用社会工程攻击已成黑客的惯用手段。研究表明&#xff0c;91%的网络攻击是通过社会工程手段完成的。 常见的社会工程攻击手段有哪些&#xff1f; 网络钓鱼&#xff1a; 这是经典手段&#xff0c;大多数的钓…

HTML5期末大作业:基于html企业官网项目的设计与实现【艺术官网】

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Alien Skin Exposure2023调色滤镜插件RAW后期处理软件

Exposure既可以作为ps、lr的插件使用&#xff0c;也可以单独作为一款专业的图像编辑器使用&#xff0c;它可以处理RAW格式的照片&#xff0c;拥有500多种预设滤镜&#xff0c;还有照片管理和添加文字水印等功能。可以说&#xff0c;无论是新手还是设计师和摄影师&#xff0c;都…

【POJ No. 2431】 丛林探险 Expedition

【POJ No. 2431】 丛林探险 Expedition 北大OJ 题目地址 【题意】 一群人开着一辆卡车冒险进入丛林深处&#xff0c;卡车油箱坏了&#xff0c;每走1米就会漏1升油&#xff0c;他们需要到最近的城镇&#xff08;距离不超过106米&#xff09;修理卡车。卡车当前位置和城镇之间有…