网站架构师的工作内容(1-3年的Java程序员,你需要有全面的互联网主流技术)
优采云 发布时间: 2022-02-11 21:08网站架构师的工作内容(1-3年的Java程序员,你需要有全面的互联网主流技术)
前言
最近和朋友聚会的时候,问了一个问题,说Java程序员1-3年的薪资范围大概在15-25K左右。可以提前达到30K吗?有人说,这只有大企业或者互联网公司的工程师才能拿到。或许是的,拿到30K的小公司或者非互联网公司不太可能是初级开发者或者码农,应该已经转给管理层了。还有地域问题,不在我考虑范围内,因为除了北京、上海、广州、深圳、杭州,其他地方都很难到达。
首先:30K对应的等级是多少?
30K的月薪在BAT这样的一线大厂太常见了。一般来说,高级工程师和高级工程师的职位在阿里巴巴p6~p7左右,百度t5左右,腾讯t2-3左右,京东t3-左右。1.美团在p6左右,其他的我不知道。
二:掌握的技能树主要有哪些方面:
首先是基础。例如,如果你对集合类、并发包、IO/NIO、JVM、内存模型、泛型、异常、反射等有深入的了解,最好阅读源码了解底层设计。比如一般面试会问到ConcurrentHashMap、CopyOnWrite、线程池、CAS、AQS、虚拟机优化等知识点,因为这些对于互联网企业来说是绝对重要的。而且大部分人都过不了这个关,大惊小怪的说这些都没用,为什么还要面试。比如在使用线程池的时候,因为使用了无界队列,所以当远程服务异常时,内层会飙升。如何解决?连线程池都不知道怎么玩?再举一个例子,由于对 ThreadLocal 的误解,将其用于线程安全控制,导致无法实现真正的线程安全。所以,作为一个3万元的JAVA程序员,有这个基础是很有必要的。
其次,您需要对主流互联网技术有全面的了解。从最底层开始,你至少要对mysql、redis、mongodb、nginx、tomcat、rpc、jms等有深入的了解,你要问你需要知道多少,我可以给你一个大大的一。首先,对于MySQL来说,你需要知道常用的参数设置,如何选择存储引擎,还需要知道常用的索引引擎,知道如何选择。了解如何设计表,如何优化 SQL,以及如何根据执行计划进行调优。
进阶的需要做分库分表的设计和优化。一般互联网公司的数据库是读写分离的,也是纵横分离的,所以这里面也有经验的成分。然后redis和mongodb都需要了解原理和调整参数,JAVA上网几乎都需要nginx和tomcat。至于rpc相关的东西,有很多网络协议、序列化技术、SOA等等,你一定要深入了解。现在国内广泛使用的rpc框架是dubbo,大家可以自行搜索。至于JMS相关的至少你需要了解原理。通常来说,一般来说,那些不擅长开发中间件系统和支持系统的人不需要了解太多细节。国内企业常用的主要有activeMQ和kafka。你能对我说的话已经被更深入地研究过了。阿里p7问题不大。当然,这也取决于你在架构能力方面的面试表现。
三是编程能力、编程思维、算法能力、架构能力。首先,我觉得30K程序员对算法的要求还是比较低的,最高级的是红黑树,不过排序和查询的基本算法都不错。编程思维是必须的。如果你问你关于 AOP 和 IOC,你至少应该清楚。设计模式并不是说每一个都用过,但你可以理解一些。我觉得评价编程能力不是一件容易的事,但是很容易得到一个按姓名和年龄排序的 2000W 用户。最后是架构能力。这并不意味着你需要设计一个高并发的系统,但至少让你做一个秒杀系统。反请求的设计可以快速完成,没有任何陷阱。
因此,这里我也为想要达到这种技术水平,甚至想作为架构师进行开发的Java程序员,提供一份详细的进阶路线图,主要是针对有1-5年工作经验的Java开发者,从广度到深度架构图比较全面。其中的技术包括Java高并发、微服务、源码分析、源码分析、高性能、分布式、高可用。这些也是目前互联网公司常用的技术。看一看。(图片可以保存)
JavaEE 高级框架
马文
分布式存储
高级开发
高并发系统架构
搜索引擎+数据分析
分布式缓存
消息队列
微服务
安全加密
分布式集群
源码分析+虚拟化容器+项目管控
系统的系统图可以理清思路,清楚地知道自己想学什么,对你的规划也有帮助。
我还采集了一些建筑资料与大家分享,包括:建筑书籍汇编、采访文件和建筑视频。
获取以下学习资料:转发+关注并私信我【架构资料】
建筑视频
面试文件
建筑书籍
学习资料获取方式:转发+关注,私信我【架构资料】