Java 工作2年后需要达到怎么样的技术水平

2023-11-19

请具体一点说要会什么技术?以及这些技术要达到什么水平?

有人回答说这只能是大企业或者互联网企业的工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该是已经转管理后才有可能。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难。

还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,Android等等的,或者表达能力强,击中面试官痛点肯定加分是吧。如果你达到我说的水准,我们谈的起薪就是2w,有其他优秀的表现我们在这个基础上加点。但纯JAVA方面待遇是比较吻合的,毕竟这几个企业我都待过或面试过。SSH真的不是我要黑,2w水平的面试几乎很少问SSH的知识,要问也是问架构层次的还有设计模式的。例如mybatis是如何管理session和cache的。spring里面有哪些你熟悉的设计模式,你怎么理解和应用的。

其实互联网相关的知识去互联网公司后很容易接触,并不是什么难点。如果你是在一线业务部门,我说的几个点几乎时时伴随着你,你完全不用担心自己不会。我司很多刚来的大学生在半年内都能把一些中间件系统摸的很明白,并不是说有多难,只是接触少,对未知的东西感到害怕疑惑而已。我在这里可以给那些想学习这方面的同学提供几本书,这几本书对互联网的知识能很快入门和了解全景。不是广告。

  • 大型网站技术架构-核心原理与案例分析。@李智慧大牛的书

  • 大型分布式网站架构-设计与实践。作者:陈康贤

  • 大型网站系统与java中间件实践。作者: 曾宪杰(原淘宝技术,现在蘑菇街)

  • 然后再推荐一个网站并发编程网 - ifeve.com。这个网站的知识绝对够你面试一个阿里P7,京东T3-2,腾讯T3-1。

好吧,我也不知道为什么都是推荐淘宝系的东西。巧合哦?!
这也是我最后一次更新答案,希望给那些需要这些信息的人帮助。那些质疑我的人去面试一下就明白我说的对不对,不要随便就质疑。如果有机会可以再开一题,来谈谈互联网的JAVA面试题,我可以把90%的题目全部给你列出来。还有那个京东的工程师也说这个技能树不止2W,可我想说的是京东的水平真的很一般,现在一直处于模仿抄袭阶段。那个saf就封装了一层dubbo,后面加了一个序列化协议就变成jsf了,用了别人的就用了,有这么不好意思吗?架构师的水平真的太差了,很多都是机器堆的,当然你们有钱。有的业务一半的机器就可以很好的满足现有巅峰的场景,东哥是被11年的事故搞怕了吗?我其实不怀疑我说的这些技能树能拿到25K或者30K的可能,但现在互联网这么泡沫,给自己一条踏实的路就那么难么?



首先两万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。在阿里是p6~p7左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解。这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养。


其次掌握的技能树主要有三个方面:

第一个是基础。比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。比如一般面试都会问ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网的企业是绝对重要的。而且一般人这关都过不了,还发闹骚说这些没什么用,为什么要面试。

举一例子,在使用线程池时,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不清楚,你怎么去玩?

再举一例,由于对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全,你怪我哦?所以作为一个拿两万的JAVA程序员这点基础是必须的。

第二你需要有全面的互联网技术相关知识。从底层说起,你起码得深入了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知识。你要问需要了解到什么程度,我可以给你说个大慨。

  • 首先对于MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。

  • 高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis,mongodb都是需要了解原理,需要会调整参数的。

  • 而nginx和tomcat几乎都是JAVA互联网方面必配,其实很阿里的技术栈选择有点关系。

  • 至于rpc相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的rpc框架,在国内就是dubbo了,可以自行搜索。

  • 至于jms相关的起码得了解原理吧,一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是activeMQ和kafka。你能对我说的都研究的比较深入,阿里p6我觉得是没问题的,当然这个还需要看你的架构能力方面的面试表现了。

第三就是编程能力,编程思想,算法能力,架构能力的考量

  • 首先2W程序员对算法的要求我觉得还是比较低,再高级也最多红黑树吧,但是排序和查询的基本算法得会。

  • 编程思想是必须的,问你个AOP和IOC你起码的清清楚楚,设计模式不说每种都用过,但是也能深入理解个十四五种。编程能力这个我觉得不好去评价,但是拿一个2000W用户根据姓名年龄排序这种题目也能信手拈来。

  • 最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,防重请求的设计能快速搞定而没有坑吧。

    以上就是我觉得2w水平的JAVA程序员。不要说什么SSH,那最多值8K。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 工作2年后需要达到怎么样的技术水平 的相关文章

随机推荐

  • 递归方法相关题目

    目录 70 爬楼梯 70 爬楼梯 简介 这里是java的解法 描述 假设你正在爬楼梯 需要 n 阶你才能到达楼顶 每次你可以爬 1 或 2 个台阶 你有多少种不同的方法可以爬到楼顶呢 注意 给定 n 是一个正整数 示例 1 输入 2 输出
  • 使用 Java 操作 Git-验证相关

    背景 日常工作中 有时候需要用代码去操作gitlab 或者github实现自动化部署 持续集成 持续部署等功能 本文就 Java 操作 git 相关的权限验证进行实践总结 工具 使用的工具为eclipse的jgit pom为目前最新版本
  • Unity3d提升效率的高级技巧(二)

    11 在层次视图中选中某个游戏对象 按快捷键 Cmd Ctrl D 即可复制该对象 对于检视面板中的数组字段也可已同样的方式来复制元素 12 检视面板中所有的颜色字段都是支持复制和粘贴的 只需右键点击颜色字段既可选择操作 13 如果觉得在场
  • Java的基础(面向对象、字符串、数学相关的工具类)

    面向对象 面向过程 当需要实现一个功能的时候 每一具体的步骤都要亲力亲为 详细处理每一个细节 强调步骤 面向对象 当需要实现一个功能时 不关心具体步骤 而是找一个已经具有该功能的人 来帮我做事 强调对象 三大特征 封装性 继承性 多态 类
  • 题目 1048: [编程入门]自定义函数之字符串拷贝(三个方案)

    有一字符串 包含n个字符 写一函数 将此字符串中从第m个字符开始的全部字符复制成为另一个字符串 方案一 include
  • android插件化flutter,Android端Flutter插件开发

    一 简介 此文章主要记录本人的flutter插件开发过程以及遇到的问题等 如有错误请指正 二 开发准备 Windows 1 Android Studio 4 0以上 2 Flutter SDK 三 环境配置 1 安装flutter sdk
  • 扫地机器人朋友圈文案_扫地机器人的简单文案

    扫地机器人哪个牌子好 推荐两款性价比高的实用机型 现如今 很多消费者在购买扫地机器人时 越来越看重产品的性价比 基于用户的消费需求 本文精选了素有 性价比之王 之称的国际大品牌德国斐纳TOMEFON旗下的两款实用扫地机器人机型 供大家选择
  • 未来的智能制造,或许会往这些方向推进

    智能制造 源于人工智能的研究 一般认为智能是知识和智力的总和 前者是智能的基础 后者是指获取和运用知识求解的能力 很多人想要了解智能制造未来的推进方向 今天小编就带大家来了解一下 希望大家能对智能制造多一些认识 能给大家带来帮助 一 更高效
  • mingw qt5.14.2 编译 vtk9.1.0

    1 软件 qt版本 qt opensource windows x86 5 14 2 exe 安装mingw选项 cmake版本 cmake 3 21 2 windows x86 64 msi VTK源码版本 VTK 9 1 0 tar g
  • the type or namespace name ‘xxx‘ could not be found(vs for Mac)解决方法

    在visual studio for Mac中遇到 the type or namespace name xxx could not be found are you missing a using derective or an asse
  • Linux下 mysql8大小写敏感问题

    说明 已经在linux上安装过了mysql 通过以下步骤解决 1 先查看mysql的运行状态 service mysql status 如果为运行状态 则停止 service mysql stop 2 修改 etc my cnf文件 添加l
  • SpringBoot生成docker镜像,完成容器部署

    docker介绍 Docker 是一个开源的应用容器引擎 基于 Go语言 并遵从Apache2 0协议开源 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linux 机器上 也可以实现
  • Go 字符串处理

    一 字符串处理函数 我们从文件中将数据读取出来以后 很多情况下并不是直接将数据打印出来 而是要做相应的处理 例如 去掉空格等一些特殊的符号 对一些内容进行替换等 这里就涉及到对一些字符串的处理 在对字符串进行处理时 需要借助于包 strin
  • Spring boot thymeleaf 实现简单-页面国际化

    新建Spring boot项目 pom xml文件
  • python创建socket对象_python如何使用socket来传输对象

    2016 08 09 回答 现在记录https服务端的编写 import ssl socket time if name main context ssl sslcontext ssl protocol sslv23 context loa
  • ubuntu16.04 安装CUDA 8.0 和 cuDNN 5.1 /cudnn6.0,可适用于gpu版本的(tensorflow,caffe,mxnet)

    转载https zhuanlan zhihu com p 27890924文章 略有修改 感谢原作者 环境 ubuntu 16 04 GTX 960 安装步骤 安装Nvidia驱动 系统设置 gt 软件与更新 gt 附加驱动 如下图选择nv
  • Flutter-实现视频播放功能

    1 引入库 video player 0 10 0 2 import package flutter cupertino dart import package flutter material dart import package vi
  • html中如何写div中div的位置,position设置div的位置

    css怎么调整div的位置 可以使用css中的position来对div进行定位来改变div的位置 position可能的值如下 工具原料 编辑器 浏览器 通过设置一个div的position的值来调整div的位置 简单的代码示例如下 bo
  • C语言基础系列(四)——数组

    本期主题 c语言中的数组 C语言基础 数组 1 数组名 1 1 数组名的含义 2 空数组的用法 1 数组名 指针常量 特殊情框 2 指针数组 数组指针 3 空数组 1 数组名 1 1 数组名的含义 可以先看下面的这些声明 int a int
  • Java 工作2年后需要达到怎么样的技术水平

    请具体一点说要会什么技术 以及这些技术要达到什么水平 有人回答说这只能是大企业或者互联网企业的工程师才能拿到 也许是的 小公司或者非互联网企业拿两万的不太可能是码农了 应该是已经转管理后才有可能 还有区域问题 这个不在我的考虑范围内 因为除