共计 2675 个字符,预计需要花费 7 分钟才能阅读完成。
怠惰才是扭转你命运的惟一捷径。
前言
有工作在合肥的小伙伴吗?
作为一名在 Java 后端开发,3 年工作教训的你在合肥的薪资是多少呀?
3 年工作教训咱们应该具备哪些技能呢?你们对本人的职业生涯有布局吗?
我大学在合肥读的,从事 java 开发工作,当初也三年了,都说程序员 3 年是一个阶段,5 年一个阶段,10 年一个阶段,嗯,我感觉说的很有情理。
程序员的几个阶段
三年
- 这个阶段将会淘汰掉一批不适宜写代码的人。这一阶段,咱们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。咱们晓得如何团队合作、如何应用项目管理工具、我的项目版本如何管制、咱们写的代码如何测试如何在线上运行等等,积攒了肯定的开发教训,也对代码有了肯定深刻的意识,是一个比拟纯正的 Coder 的阶段;
五年
- 有些人在三年里,除了实现工作,在空余工夫根本不会钻研别的货色,这些人永远就是个 Coder,年纪大一些势必被更年老的人给顶替;有些人在三年里,除了写代码之外,还热衷于钻研各种技术实现细节、看了 N 多好书、写一些博客、在 Github 上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且分明本人将来的倒退方向,从一个 Coder 逐渐走向零碎分析师或是架构师,成为项目组中不可或缺的人物;
十年
- 十年又是另一个门槛了,转行或是持续做一名程序员就在这个节点上。如果在前几年就抱定不转行的思路并且为之致力的话,那么在十年的这个节点上,有些人必然成长为一名对行业有着深刻意识、对技术有着深刻意识、能从零开始对一个产品进行剖析的程序员,这样的人在公司根本负责的都是 CTO、技术专家、首席架构师等最要害的职位,这对于本人相对是一件光荣的事,当然老板在经济上也绝不会亏待你。
须要具备的技能
3 年工作教训的 Java 程序员应该具备的技能,我这里要阐明一下,以下列举的内容只是我本人的一些见解~
1、基础知识
这部分不用说,必定要一直的坚固了,有点货色须要咱们细细斟酌,基础知识打牢了,学习其余的框架什么的就容易多了,重点是汇合、多线程、io 等这些常识。
有一个大神视频能够举荐给你们,哔哩哔哩名字叫遇见狂神说,好多视频解说的很透彻,很适宜初学者和一些工作教训不是很多的小伙伴学习。
2、设计模式
设计模式在工作中还是十分重要、十分有用的,我的项目中正当地使用设计模式能够完满地解决很多问题,每种模式在事实中都有相应的原理来与之对应,每种模式都形容了一个在咱们四周一直反复产生的问题,以及该问题的外围解决方案,这也是设计模式能被广泛应用的起因。这里我举荐小傅哥《重学 Java 设计模式》,我看完了,写的十分通俗易懂,pdf 和源码我都下载了,能够从我的百度云盘下载:
链接:
https://pan.baidu.com/s/1bMri7SgHPkwnyy1AzYSjMw
提取码:
bdbu
3、JVM
我感觉还是有必要理解 JVM 的常识的,网上也有好多视频的解说,分享几个链接吧
尚硅谷 JVM 全套教程,百万播放,全网巅峰(宋红康详解 java 虚拟机)
【狂神说 Java】JVM 疾速入门篇
4、框架
最常见的 spring
、springboot
、springcloud
、mybatis
、netty
、dubbo
等框架,还有好多,不一一列举了,咱们不仅要会用,还要晓得其原理。
举荐几个我喜爱看的一些大佬的博客吧:
纯净的微笑
酷 壳 – CoolShell
方志朋的专栏
bugstack 虫洞栈
kuangStudy
5、数据库
MYSQL
是必须要会的,还有缓存数据库啊,像Redis
,也很重要,个别面试 java 后端的时候都会问。
6、Linux 常识
目前大多数的互联网我的项目,都是部署在 Linux 上,所以 Linux 的根本的一些命令,一些软件在 Linux 的怎么装置部署你都要会。面试的时候个别面试官都会问 Linux 的相干常识,答复的越好越具体,越加分。
7、数据结构和算法
这部分咱们也要一直的去学习,咱们不能只当一个小小的码农,什么是码农啊?讲艰深点就是写代码的时候,业务逻辑 + 框架,就能够搞定咱们工作中的一些需要了。然而如果你是一个有谋求的程序员,还是要学习算法和数据结构,数组、链表是根底,栈和队列深刻一些但也不难,树挺重要的,比拟重要的树 AVL 树、红黑树,能够不理解它们的具体实现,然而要晓得什么是二叉查找树、什么是均衡树,AVL 树和红黑树的区别。学习算法咱们能够去力扣上学习,官网:https://leetcode-cn.com/
8、Docker
现在 Docker 的应用曾经十分广泛,特地在一线互联网公司。应用 Docker 技术能够帮忙企业疾速程度扩大服务,从而达到弹性部署业务的能力。在云服务概念衰亡之后,Docker 的应用场景和范畴进一步倒退,现在在微服务架构越来越风行的状况下,微服务 +Docker 的完满组合,更加不便微服务架构运维部署落地。
能够去我的 Docker 专栏去看看:https://juejin.cn/column/6962446823185186823
对于 Java
java 这门语言易学难精,上手真的很简略,当是真正说要精通真的很难。
1、易学
- 很多培训公司包含大四的学生找工作都会学习 Java,绝大多数是因为易学。Java 从 C /C++ 倒退而来,它打消了 C /C++ 中最简单和让人困惑的语法、它打消了平台的差异性、它不须要用户手动开释内存空间、它防止了 Java 程序员和本地语言的交互,让程序员只须要专一于语法层面和利用层面;
- Java 作为一门面向对象的语言,在企业级开发中体现出了它无可比拟的个性,整个开发流程比拟固定化、模块化,需要剖析起来也绝对容易。
2、难精
Java 语言的设计者帮忙 Java 程序员做了这么多事件,这无利也有弊。无利的局部后面曾经说过了,让 Java 易学,不过有弊的局部同样显著。如果在利用运行过程中遇到了语法层面和利用层面之外的谬误,该当如何解决?比方线上环境呈现内存溢出怎么办?GC 工夫过长怎么办?IO 长时间没反馈怎么办?办法抛出莫名其妙的异样怎么办?
解决这些问题,这须要大量的经验、大量的实际、大量对 Java 底层实现细节的钻研,而这往往是最难、最考验 Java 程序员的局部,一些人基本就不想往深去钻研,另外一些人钻研了一点点就钻研不上来了。Java 为什么难精?就是这个起因。
总结
我认为,随着你工作年限的增长、对生存对生命意识的深刻,该当一直思考三个问题:
- 我到底适不适宜当一名程序员?
- 我到底应不应该一辈子以程序员为职业?
- 我对编程到底持有的是一种什么样的态度,是够用就好呢还是一直钻研?
最终,明确本人的职业规划,对本人的布局负责并为之致力。一起加油~