前言
有工作在合肥的小伙伴吗?作为一名Java后端开发,3年工作经验的你在合肥的薪资是多少呀?3年工作经验我们应该具备哪些技能呢?你们对自己的职业生涯有规划吗?从事 java开发工作,现在也三年多了,都说程序员3年是一个阶段,5年一个阶段,10年一个阶段,嗯,我觉得说的很有道理。
程序员的几个阶段
- 三年
这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段;
- 五年
有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西,这些人永远就是个Coder,年纪大一些势必被更年轻的人给顶替;有些人在三年里,除了写代码之外,还热衷于研究各种技术实现细节、看了N多好书、写一些博客、在Github上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物;
- 十年
十年又是另一个门槛了,转行或是继续做一名程序员就在这个节点上。如果在前几年就抱定不转行的思路并且为之努力的话,那么在十年的这个节点上,有些人必然成长为一名对行业有着深入认识、对技术有着深入认识、能从零开始对一个产品进行分析的程序员,这样的人在公司基本担任的都是CTO、技术专家、首席架构师等最关键的职位,这对于自己绝对是一件荣耀的事,当然老板在经济上也绝不会亏待你。
需要具备的技能
3年工作经验的Java后端应该具备的技能,这里要说明一下,以下列举的内容只是我自己的一些见解~
基础知识
这部分不用说,肯定要不断的巩固了,有点东西需要我们细细推敲,基础知识打牢了,学习其他的框架什么的就容易多了,重点是集合、多线程、io等这些知识。
B站上有很多很好的视频可以去看,例如 尚硅谷 系列的文章
对于Java开发刚入门的同学,可以看看下面的这本书,还是很不错的。
提取码:ishy
设计模式
经典设计模式总共有23种(现在远不止23种了,还有一些变种),全部掌握难度太大了,我们只需要掌握一些常用的就好了,必须要掌握的我用小红旗已经标出来了。
设计模式在工作中还是非常重要、非常有用的,项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。这里我推荐小傅哥《重学 Java 设计模式》,我看完了,写的非常通俗易懂,pdf和源码我都下载了,可以从我的百度云盘下载:
链接:
https://pan.baidu.com/s/1bMri7SgHPkwnyy1AzYSjMw
提取码:
bdbu
JVM
我觉得还是有必要了解JVM的知识的,网上也有好多视频的讲解,分享几个链接吧
尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)
框架
最常见的spring
、springboot
、springcloud
、mybatis
、netty
、dubbo
等框架,还有好多,不一一列举了,我们不仅要会用,还要知道其原理。
关于基础框架这部分,大神们的学习方法是:使用框架 -> 懂框架 -> 造轮子。
相关资料
《Spring技术内幕》和《Spring实战》下载地址:
提取码:zc3z
数据库
MYSQL
是必须要会的,还有缓存数据库啊,像Redis
,也很重要,一般面试java后端的时候都会问。
下面这个是我自己收藏的关于MYSQL的一个视频,我感觉还是挺不错的,感兴趣的可以看看。
提取码:e8vg
Linux知识
目前大多数的互联网项目,都是部署在Linux上,所以Linux的基本的一些命令,一些软件在Linux的怎么安装部署你都要会。面试的时候一般面试官都会问Linux的相关知识,回答的越好越详细,越加分。
【狂神说Java】Linux最通俗易懂的教程阿里云真实环境学习
数据结构和算法
这部分我们也要不断的去学习,我们不能只当一个小小的码农,什么是码农啊?讲通俗点就是写代码的时候,业务逻辑+框架,就可以搞定我们工作中的一些需求了。但是如果你是一个有追求的程序员,还是要学习算法和数据结构,数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。学习算法我们可以去力扣上学习,官网:https://leetcode-cn.com/
相关资料
【算法图解】该书语言风趣,有比较多的插图,入门很合适。电子书籍网盘链接如下:
提取码:g5vz
学习资源网站列表汇总
(1)视频网站
- B站(推荐):www.bilibili.com/
- 网易云课堂:study.163.com/
- 极客学院:www.jikexueyuan.com/
- 慕课网:www.imooc.com/
(2)专栏
- 极客时间(推荐):time.geekbang.org/
- Gitchat gitbook.cn/
(3)Github
- Java 知识地图(推荐):github.com/smileArchit…
(4)技术博客:
- CSDN 博客:blog.csdn.net/
- 博客园:www.cnblogs.com/
- 掘金社区(推荐):juejin.cn/
- InfoQ:xie.infoq.cn/
- 思否:segmentfault.com/
- 开源中国:www.oschina.net/blog
(5)搜索引擎:
(6)知识问答:
- 知乎(推荐):www.zhihu.com/
- stackoverflow(推荐):stackoverflow.com/
(7)刷题:
- 力扣(推荐):leetcode-cn.com/
- 牛客:www.nowcoder.com/
(8)云笔记:
- 石墨:shimo.im/
- 语雀:www.yuque.com/
- 有道云笔记:note.youdao.com/
- 印象笔记:www.yinxiang.com/ 看个人习惯去选择,不推荐了。
(9)在线画图:
- processOn:www.processon.com/
- drawio:app.diagrams.net/ 各有特色,都推荐。
计算机网络
计算机网络知识对于我们java后端开发来说是尤为重要的,推荐几个好的学习计算机网络的视频给大家:
计算机网络微课堂(有字幕无背景音乐版)(陆续更新中......)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
2019 王道考研 计算机网络_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
计算机网络(谢希仁第七版)-方老师_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
总结
作为一名程序员,其他任何行业都是一样,都是要不断的学习,接受新的知识,才能不被社会淘汰,作为一名程序员,我想,随着我们工作年限的增长以及对生活对生命认识的深入,应当不断思考三个问题:
- 我到底适不适合当一名程序员?
- 我到底应不应该一辈子以程序员为职业?
- 我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?
最终,明确自己的职业规划,对自己的规划负责并为之努力。一起加油~