如果有一天我醒来时,发现自己的几年Java开发经验被抹掉,重新回到了一个小白的状态。我想要重新自学Java,然后找到一份自己满意的Java工作,我想大概需要7个月的时间,如果顺利的话,5个月可能就够了。如果我再想重新回到我高级Java工程师的职位上,或许3年的时间就足够了,当然这是让我带着记忆重新学。

我说上面这段话的意思其实只想表达一个重要的观点,那就是我的工作经验被抹掉,但是我带着记忆重新学,我就不会走弯路,我知道哪里是坑,怎么提高自己的学习效率,让自己学的内容更有用,能更加快速的就业。每个人都知道自学Java是很困难的,大部分人在没有好的师傅带的情况下,一定会走非常多的弯路,所以就造成了大部分人自学几个月便放弃,他会觉得自己越学越迷茫,看不到任何能学成就业的希望,他自然就没有信心学的下去。所以自学Java多久能找到一份工作,取决于你是否走了太多弯路,如果弯路走的太多,可能你很快就会有放弃的想法,就更别提能不能找到工作了。

根据我几年的Java工作经验来看,零基础的人学好Java的基础尤为重要,无论是以后做安卓开发还是服务器端开发或者大数据,都是基于Java平台。想要成为技术大佬,了解底层原理,必须把IO、多线程、线程池等底层原理深入了解,如Spring底层原理其实都是JavaSE里面的基础内容,技术研究的越深入就会发现基础学好越重要。既然想要进入这行,就从开始给自己搭建一个Java知识体系框架,让你对于整体的技术栈有明确的全局观,了解自己目前处于哪个阶段,不过对于小白来说,这可能有一点难,所以我首先给大家准备了一套完整的Java技术体系图以及相关的Java视频课程,想要获取的同学,点击下面获取。

以下内容是为大家列出的应该学习的技术,这些内容全部掌握后,

在一线城市找工作的薪资不会低于15K,

二线城市不会低于10K,

我下面列的这些内容算是比较多的,对于初学者来说是一个比较大的考验,所以任重而道远。能不能坚持学的下去,就看每个人想要拿高薪的决心有多大了。

一阶段:JavaSE基础

第一步:夯实Java基础语法

1. Java语言的发展史

2. JDK的下载和安装

3. DOS命令的介绍和使用

4. Path环境变量的配置

5. 第一个代码HelloWorld案例

6. NotePad++软件的安装和使用

7. Java中的数据类型

8. 常量的使用

9. 变量的定义与使用

10. Java中代码的书写规范

11. 数据类型之间的转换

12. Java中的各种运算符操作

13. if分支语句的灵活使用

14. switch分支语句

15. for循环结构

16. while循环结构

17. do..while循环结构

18. 各种循环语句的区别和应用场景

19. 循环跳转控制语句

20. 嵌套循环的应用

21. 使用循环嵌套打印直角三角形

22. IDEA开发软件

23. 数组的动态初始化

24. 数组的访问格式

25. 数组的静态初始化

26. Java的内存划分和作用

27. 分析数组在内存中的存储

28. 方法的定义和调用

29. 方法的参数和返回值问题

30. 方法的重载(Overload)

31. 参数是基本类型和引用类型的区别

32. Debug断点调试的使用

第二步:接触面向对象基础

1. 类和对象的概述

2. 分析对象在内存中的存储

3. 成员变量和局部变量的区别

4. private关键字的应用

5. this关键字的应用

6. this关键字的内存原理

7. 面向对象特性之封装

8. 构造方法(Constructor)

9. 构造方法的注意事项

10. 标准类的定义规范

第三步:初识API基础

1. API的使用方式

2. String类的特点

3. String类的常用构造方法

4. 字符串的比较规则

5. 用户登录的案例

6. 遍历字符串的方式

7. 字符串的拼接

8. 字符串的反转操作

9. StringBuilder类的作用

10. StringBuilder类的构造方法

11. StringBuilder类的常用方法

12. 用StringBuilder完成字符串拼接和反转

第四步:初识集合基础

1. ArrayList集合的特点

2. ArrayList的构造方法

3. ArrayList的常用操作

4. 集合存储自定义类型并遍历

5. 学生管理系统的业务介绍

6. 学生管理系统的创建

第五步:掌握Git的使用

1. Git概述和特点

2. Git的下载安装

3. Git基本概念

4. Git操作入门

5. Git历史版本控制

6. Git分支版本控制

7. Git远程仓库的操作

8. Git远程托管平台应用(GitHub,码云)

9. Git解决冲突

10.IDEA中集成Git应用

11.Git常用操作命令

第六步:深入理解面向对象原理

1. 面向对象特性之继承

2. 继承的好处和弊端

3. super关键字的作用

4. 继承时子父类的访问特点

5. 方法的重写(Override)

6. package关键字的作用

7. import关键字的作用

8. final关键字的作用

9. static关键字的作用

10. static关键字内存分析

11. 面向对象特性之多态

12. 多态的好处和弊端

13. 多态中成员访问的特点

14. 多态中的数据类型转型

15. instanceof关键字的使用

16. 抽象类的特点

17. 抽象类的成员特点

18. 模板设计模式

19. 接口的概述

20. 接口的特点和注意事项

21. 类、抽象类、接口之间的关系

22. 内部类的概述

23. 成员内部类的使用

24. 局部内部类的使用

25. 匿名内部类的使用

26. 匿名内部类在开发中的应用

第七步:了解Web服务器

1.JavaEE规范概述

2.网络资源分析之静态资源和动态资源

3.系统结构分析之C/S和B/S

4.Tomcat概述

5.Tomcat下载与安装

6.Tomcat各版本所需支持

7.Tomcat启动及启动问题分析及解决

8.Tomcat目录结构详解|9.IDEA集成Tomcat

9.JavaEE工程概述

10.IDEA创建JavaEE工程

第八步:掌握异常

1. 异常的概述

2. JVM默认处理异常的方式

3. 异常处理方式之try..catch

4. 异常处理方式之throws

5. Throwable的常用方法

6. 异常的分类和区别

7. 异常的注意事项

8. 自定义异常的使用

第九步:掌握集合

1. 集合体系结构

2. 单列集合体系的详细讲解

3. 迭代器的使用

4. 增强for循环的使用

5. forEach方法遍历

6. 并发修改异常的产生原因和解决办法

7. 数据结构之栈和队列

8. 数据结构之数组和链表

9. ArrayList集合源码分析

10. LinkedList集合源码分析

11. 双列集合体系的详细讲解

12. Map集合的遍历方式

13. TreeSet的自然排序和比较器排序

14. 数据结构之树

15. 数据结构之二叉树

16. 数据结构之二叉平衡树

17. 数据结构之红黑树

18. TreeSet(TreeMap)底层源码分析

19. 数据结构之哈希表

第十步:掌握IO流

1. File类对文件的操作

2. IO流的概述和分类

3. 字节流写数据的方式

4. FileOutputStream和BufferedOutputStream源码分析

5. 字节流读数据的方式

6. FileInputStream和BufferedInputStream源码分析

7. 字节流完成视频文件的复制

8. 编码表

9. 字符流写数据的方法

10. 字符串读数据的方法

11. 字符缓冲流的使用

12. 字符缓冲流的特有方法

13. 标准输入输出流

14. 打印流的使用

15. 对象序列化流

16. serialVersionUID&transient

17. Properties的用法

18. 内存操作流的使用

19. RandomAccessFile使用

20. SequenceInputStream的使用

21. 压缩流/解压缩流

第十一步:深入理解多线程

1. 进程和线程的区别

2. Java实现多线程的三种方式

3. 线程API之线程名称

4. 线程API之线程休眠

5. 线程API之线程礼让

6. 线程API之线程优先级

7. 线程API之线程中断

8. 线程API之后天线程

9. 线程的安全问题

10. 同步代码块

11. 同步方法

12. Lock锁

13. 死锁概述以及现象演示

14. 死锁诊断(jstack工具的使用)

15. 线程通讯之生产者消费者问题

16. 线程通讯代码实现之同步代码块

17. 线程通讯代码实现之Condition实现通信|

18. 线程通讯代码实现之阻塞队列(BlockingQueue)实现

19. 线程的状态

20. 线程池概述

21. 自定义线程池

22. Executors创建线程池

23. ThreadPoolExecutor创建线程池

24. ThreadPoolExecutor原理介绍以及任务拒绝策略介绍

25. volatile关键字

26. JMM内存模型

27. 原子性概述

28. 原子类AtomicInteger类的使用

29. CAS算法

30. 并发容器ConcurrentHashMap原理讲解

31. 并发工具类(CountDownLatch,Semaphore,CyclicBarrier,Exchanger)的使用

第十二步:学习网络编程

1. 网络编程的概述

2. 网络编程的三要素之ip地址(ipv4,ipv6)

3. InetAddress类的操作

4. 网络编程的三要素之端口和协议的详细解释

5. 网络参考模型

6. UDP协议发送与接收数据

7. 聊天小程序案例

8. UDP协议中广播与组播

9. TCP协议发送与接收数据

10. 多线程下文件的上传

11. NIO概述

12. NIO之Buffer的使用

13. NIO之Channel的使用

14. NIO之Selector的使用

15. 自定义非阻塞式的HTTP静态服务器

第十三步:了解反射

1. 虚拟机类加载机制(概述,类加载过程,类的初始化时机)

2. 类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载)

3. 反射机制的概述

4. 获取Class类的对象

5. 反射获取构造方法并使用

6. 反射获取成员方法并使用

7. 反射获取成员变量并使用

8. 自定义非阻塞式的HTTP动态服务器

以上内容是Java语言基础部分,所有人必须要夯实掌握,以后能达到什么高度,完全取决于基础掌握到什么水平,很多自学的人不信邪,对于JavaSE基础不重视,相信我,你以后绝对走不远。学完这部分内容后,我建议大家做一个ATM取款器的项目作为阶段性检测。

观看以下视频可以进行学习

二阶段:数据库

第一步:熟练掌握MySQL基本操作

1. 数据库的概念

2. 常见的数据库软件

3. MySQL数据库的安装卸载

4. MySQL数据库的登录退出

5. MySQL的目录结构

6. SQL语句的分类

7. 数据库和数据表的操作

8. 数据的添加(insert)

9. 数据的删除(delete)

10. 数据的修改(update)

11. 数据的查询(select)

12. 数据的复杂查询

13. 约束的使用

14. 多表关系(一对一、一对多、多对多)

15. 数据库的还原和备份

16. 多表查询操作

17. 事务介绍

18. 事务的隔离

19. 数据库的用户管理和权限管理

20.视图的使用

21.存储过程的使用

22.触发器的使用

23.存储引擎原理

24.索引高效查询

25.锁机制

26.数据库集群

第二步:了解JDBC

1.JDBC基本概述

2.JDBC入门和步骤分析

3.DriverManager详解

4.Connection详解

5.Statement详解

6.ResultSet详解

7.Driver接口介绍

8.JDBC的CRUD操作

9.SQL注入分析

10.PreparedStatement详解

11.JDBC的使用案例

12.连接池基础

13.自定义连接池

14.装饰者模式和默认适配器

15.代理模式-动态代理技术

16.C3P0连接池的使用

17.druid连接池的使用

18.Jdbc操作模板的封装-自定义JdbcTemplate

19.数据库中的元信息

20.策略模式的运用-结果集的封装处理器

三阶段:JavaWeb

第一步:了解HTML&CSS

1.HTML基本使用

2.HTML常用标签

3.CSS选择器

4.常用样式

5.盒子模型与布局

6.HTML5新特性

7.CSS3新特性

8. Nginx服务器介绍

9. Nginx 下载和安装

10. Nginx 编译和启动、访问

11. Nginx中部署静态网站

第二步:深入理解Servlet底层原理

1.Servlet概述

2.Servlet编码步骤

3.Servlet执行过程分析

4.Servlet的实现方式分析

5.Servlet的类试图详解

6.Servlet的生命周期

7.Servlet的线程安全问题分析

8.Servlet的映射方式及优先级

9.Servlet的多路径映射

10.Servlet的启动时创建配置

11.默认Servlet

12.Servlet的配置对象ServletConfig

13.Servlet的上下文对象ServletContext

14.域对象概念

15.请求对象介绍

16.请求对象的生命周期

17.HttpServletRequest的常用方法

18.获取请求参数

19.BeanUtils详解

20.请求参数的乱码问题

21.请求转发的使用

22.响应对象介绍

23.HttpServletResponse的常用方法

24.响应的乱码问题

25.设置响应消息头的使用

26.重定向的概念和使用

27.请求转发和重定向的区别

第三步:了解Cookie&Session

1.会话管理概述

2.会话管理分类

3.Cookie概述和实现机制

4.Cookie的组成

5.Cookie的使用细节

6.Cookie的使用案例

7.HttpSession概述

8.会话域概念及使用场景分析

9.HttpSession的常用方法

10.HttpSession实现原理分析

11.客户端禁用Cookie的会话保持

12.HttpSession的钝化和活化

13.HttpSession的使用案例

第四步:了解JSP

1.JSP语法

2.JSP原理

3.JSP脚本片段&表达式

4.JSP声明&指令

5.JSP九大隐含对象

6.域对象使用

第五步:了解EL和JSTL

1.EL表达式简介

2.EL使用

3.EL取值原理

4.EL的11大隐含对象

5.EL执行运算

6.EL函数库

7.JSTL-核心标签库

8.JSTL-函数标签库

第六步:精通JavaScript

1.JavaScript嵌入方式

2. JavaScript基本语法

3. ECMA6新特性

4.JavaScript流程控制

5.数组、函数、对象的使用

6. JavaScript面向对象

7. 常用内置对象

8.JavaScript事件绑定/触发

9.JavaScript DOM操作及API

10.JavaScript BOM对象及API

第七步:了解JQuery

1.JQuery快速入门

2.JQuery语法详解

3.JQuery核心函数

4.JQuery对象/JavaScript对象

5.JQuery选择器

6.JQueryDOM操作

7.JQuery事件

8.JQuery动画效果

9.JQuery遍历

第八步:掌握Ajax

1.同步与异步应用场景

2.JS原生方式实现异步

3.JQuery方式实现异步

4.JSON数据格式介绍

5.JSON转换工具使用|

6. 异步实现分页案例

第九步:了解VUE

1.VUE概述

2.VUE入门案例

3.VUE模板语法

4.VUE的文本插值

5 .VUE的绑定属性

6 .VUE的条件渲染

7. VUE的列表渲染

8. VUE的事件绑定

9. VUE的表单绑定

10.VUE的组件

11.VUE的生命周期

12.VUE的axios异步

13.VUE与Element整合案例

第十步:熟悉Redis

1.NoSQL&Redis入门

2.Redis优势

3.Redis安装&启动

4.Redis五大数据类型和基本操作命令

5.Redis总体配置Redis.conf

6.Redis持久化(RDB和AOF)

7.Jedis

8. Redis数据删除策略

9. Redis数据淘汰策略

10.集群主从复制

11.集群哨兵模式

12.企业级解决方案

四阶段:框架进阶

第一步:掌握Spring

1.框架简介

2.Spring概述

3.耦合与解耦

4.工厂设计模式

5.IoC概述及作用

6.Spring基于XML的IoC配置入门

7.Spring基于XML的IoC配置详解

8.依赖注入的概念

9.Spring中的依赖注入

10.Spring中多配置文件配置及问题分析

11.Spring基于XML和Mybatis的整合

12.Spring基于注解的IoC配置

13.常用注解的使用

14.Spring整合Junit

15.Spring高级分析之-IoC容器说明

16.Spring高级分析之-组件扫描器TypeFilter

17.Spring高级分析之-Import注解和自定义导入器

18.Spring高级分析之-BeanFactoryPostProcessor

19.Spring高级分析之-BeanPostProcessor

20.Spring高级分析之-InitializingBean

21.Spring高级分析之-FactoryBean

22.AOP编程思想,作用,优势及实现原理分析

23.代理模式和动态代理实现AOP思想的案例

24.Spring中的AOP简介和常用术语

25.Spring基于XML的AOP配置

26.5种通知类型分析

27.切入点表达式详解

28.Spring基于注解的AOP配置

29.Spring中AOP的高级分析之-EnableAspectjAutoProxy注解的解析分析

30.Spring中AOP的运行期增强的执行过程分析

31.Spring中事务的API详解

32.Spring基于XML的事务配置

33.Spring基于注解的事务配置

34.Spring事务高级分析之-TransactionTemplate源码分析

35.Spring事务高级分析之-DataSourceUtils源码分析

36.Spring事务高级分析之-TransactionSynchronizationManager源码分析

37.Spring事务高级分析之-TransactionEventListener注解的加载过程分析

38.Spring中的模板对象介绍

39.JdbcTemplate和NamedParameterJdbcTemplate的使用

40.RedisTemplate的使用|41.Spring事务设计的设计模式分析

第二步:掌握SpringMVC

1.SpringMVC概述

2.SpringMVC基于XML的环境搭建

3.SpringMVC基于Servlet3.0规范的纯注解环境搭建

4.纯注解环境搭建的入门案例执行过程分析

5.SpringMVC常用组件介绍

6.SpringMVC的 @RequestMapping注解详解

7.SpringMVC中的请求参数封装

8.SpringMVC中的表单校验相关注解

9.SpringMVC中和ServletAPI相关的注解使用详解

10.SpringMVC中控制器方法的返回值详解

11.SpringMVC中的异步交互和相关注解介绍

12.Rest风格URL详解

13.@PathVariable注解详解

14.Postman工具

15.跨域访问详解和 @CrossOrigin注解的使用

16.SpringMVC中的请求参数封装源码分析和运用的设计模式介绍

17.SpringMVC中的父子容器

18.SpringMVC中的异常处理

19.SpringMVC中的拦截器使用

20.SpringMVC中的文件上传|21.Spring SpringMVC Mybatis的整合

第三步:掌握MyBatis

1.概述

2.4MyBatis的快速入门

3.源码剖析

4.全局配置文件详解

5.映射配置文件详解

6.的相关API

7.增删改查案例

8.参数深入

9.结果集封装

10.连接池与事务深入

11.动态sql语句

12.多表查询

13.延迟加载策略

14.的注解开发

15.新增@SelectProvider@UpdateProvide

16.新增@InsertProvider@DeleteProvide

17.新增分页插件

18.新增学生系统改造

19.两种方式实现CRUD

20.日志集成

第四步:掌握Maven基本操作

1.Maven环境搭建

2.Maven构建&自动化构建

3.本地仓库&中央仓库

4.Maven创建Java、Web工程

5.pom.xml、依赖管理

6.坐标、依赖、生命周期等

7. IDEA下的Maven使用

8. pom文件依赖传递介绍

9. 依赖冲突的解决

10. Maven项目继承的关系

11. Maven项目聚合的关系

12. 分模块搭建聚合项目

13. 私有服务器仓库介绍和搭建

14. 本地资源上传到私有服务器

15. 从私有服务器下载资源到本地

16. 安装第三方资源到本地仓库

17. 安装第三方资源到私有服务器仓库

18. Maven多环境开发

19. 单元测试

20. 自定义插件

第五步:了解Zookeeper

1、初识ZooKeeper

2、ZooKeeper数据模型

3、ZooKeeper安装与配置

4、日志可视化

5、ZooKeeper常用命令(服务器、客户端命令)

6、ACL常用命令

7、四字常用命令

8、ZooKeeper集群搭建

9、ZooKeeper12306售票实战

10、Observer使用

11、ZooKeeper机制讲解(ZooKeeper选举、ZooKeeper脑裂效应等)

第六步:了解Dubbo

1.软件架构的演进过程

2.Dubbo简介

3.Dubbo架构

4.Dubbo服务提供方开发

5.Dubbo服务消费方开发

6.Dubbo-admin使用

7.Dubbo相关配置说明

8、监控中心

9、升级版Dubbo-admin使用

10、12种Dubbo高级特性

11、架构原理

12、工作原理与服务治理

13、心跳与通信

14、支持的注册中心和协议

第七步:掌握Spring Boot

1. SpringBoot介绍

2. SpringBoot的核心功能

3. SpringBoot的优势

4. SpringBoot入门程序

5. 起步依赖原理分析

6. 自动配置原理解析

7. 自定义起步依赖并实现自动配置

8. SpringBoot配置文件类型

9. 配置文件与配置类的属性映射方式

10. SpringBoot整合Mybatis

11. SpringBoot整合Junit

12. SpringBoot整合Redis

13. 自定义Starter

14. 事件监听

15. 初始化流程

第八步:了解RocketMQ

1、RocketMQ概述

2、搭建RocketMQ

3、RocketMQ-Console管理控制台

4、RocketMQ模式

5、SpringBoot 整合 RocketMQ

6、集群安装部署

7、基于MQ的分布式事务解决方案说明

第九步:掌握Spring Cloud

1. SpringCloud介绍和Dubbo对比

2. 服务注册中心Eureka介绍

3. Eureka服务端开发

4. 微服务开发并注册到Eureka服务注册中心

5. Eureka保护模式介绍

6. 客户端负载和服务端负载的介绍

7. Ribbon实现客户端负载均衡

8. Feign的介绍和实现

9. Feign工作原理和注意事项

10. 雪崩效应与熔断器介绍

11. 熔断器Hystrix使用

12. 网关介绍

13. 基于Gateway构建网关服务

14. 通过Gateway网关访问微服务

15. Spring Cloud Config介绍

16. 使用Git存储的方式实现配置管理

17. 微服务改造从配置中心获取配置信息

18. 服务总线Spring Cloud Bus介绍和应用

19、Eureka集群|20、Eureka Web介绍

21、Consul服务治理与配置管理

22、Nacos动态服务发现与配置管理

23、Sleuth链路追踪

24、Zipkin展示

25、config本地读取

26、Stream消息驱动

27、微服务Docker部署

第十步:了解Docker

1. Docker简介

2. 容器与虚拟机比较

3. Docker的安装和启动

4. Docker镜像命令介绍和应用

5. Docker容器命令介绍和应用

6. Docker部署Mysql

7. Docker部署Tomcat

8. Docker部署Nginx

9. Docker部署Redis

10. 容器保存转为镜

11. 镜像备份

12. 镜像恢复和迁移

13. Dockerfile介绍和常用指令

14. Docker Compose 常用命令

15. Docker私有仓库使用

五阶段:数据结构与算法

第一步:了解数据结构

1. 顺序表

2. 链式表

3. 合并链表

4. 循环链表

5. 双向链表

6. 多项链表合并

7. 顺序栈

8. 栈的应用

9. 循环队列

10. 链式队列

11. 串的堆分配

12. 数组

13. 矩阵压缩

14. 矩阵压缩

15. 树

16. 图

17. 查找

18. 排序

第二步:刷算法题

以上技术栈的对应教程可以点击下面进行获取,相关进阶技术内容我会不断的进行更新


个人建议大家学习Java的几个小技巧:

1、注重Java基础的学习,Java技术水平以后可以达到什么高度,完全取决于Java基础的理解程度,所以我建议大家买《Java核心技术》这门书好好研究一下,这里面详细讲解了JavaSE所有内容的原理,如果你能把这本书研究透,以后会有很高的技术造诣。

2、利用好搜索引擎,百度和Goodle是伴随着我们职业生涯的两大利器,Java语言的生态圈非常完整,我们遇到的很多问题都可以通过百度或者Goodle查阅到,如果你能利用好搜索引擎,是可以不断锻炼自己独立解决问题的能力,这样你的学习效率就会越来越高。

3、养成浏览GitHub和CSDN的习惯,GitHub是最大的开发项目平台,里面有很多博主都非常不错,而CSDN则是国内最大的IT论坛,我们IT人必须要常去逛,可以获取到很多最新的行业信息以及学习编程的方法。

4、初学者要学会多查API文档,Java的类、方法有很多,任何一个人都不可能全部记住,由于初学者会觉得学着学着就忘,这都是很正常的事情,忘了某种方法就去查API文档,多查多写自然就记住了,每一个学习Java的人都是这样过来的,包括我也不例外。

5、学习编程重在于实践,只看视频或者只看书是不行的,一定要把视频或者书中的代码用键盘敲出来,然后自己默写一遍,跟着视频或者书中的思路去完成,这样来锻炼自己初级的编码能力和编程思维。

6、多跟已经做过很多年开发的人交流,这些经历他曾经都经历过,哪里是坑哪里是弯路他都知道,如果有技术大佬指点一下,你会少走很多弯路,你研究一天的时间或许不及别人指导你10分钟,所以懂得“借势”是人生的智慧。

Java程序员三个发展方向:

1. 技术

资深技术工程师,对于技术比较痴迷,有这方面的钻劲。以后可以去做技术顾问,可能一周只去公司两天,但是拿的工资是非常高的。

初级程序员(薪资6k-15k)

刚刚进入IT行业,做一些简单的项目,写一些简单的代码。写代码的时候还是会依靠复制粘贴的方式完成代码的编写,他们不考虑程序的质量,代码也写的很乱,也没有注释,他们只要求程序能够运行就好。

中级程序员(薪资16K~30K)

到了这个阶段,已经掌握了较好的技术,可以靠自己去做一些项目了,不在需要靠复制粘贴别人的代码了,开始关注代码的质量,代码的规范,把该注释的地方,注释好,开始做很多实用的项目。并且在团队中担任重要的技术人员职位。

高级程序员(薪资30K~50K)

到了这个阶段,技术已经非常厉害了,很技术人员开始走设计路线,比如系统设计等等。公司会有很多的技术难题需要靠你去解决,这个时候是属于大神级别了。在公司会有非常重要的位置,受到领导的重视。

系统架构师(薪资50K~100K)

系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。

2. 管理(年薪20万-100万)

有长时间的工作经验,在公司可以带别人去成长,目前常见的三个管理职业,项目经理、产品经理,技术总监。做管理需要高情商,维护人事关系,有自己的大局观,承受压力的能力要强,就是心比较累,承受的东西比较多。

3. 创业(收入无上限,但风险很大)

走创业这条路,风险大,付出的精力非常多,要有启动资金,平时需要积累人脉资源。性格需要是那种不认输的性格,为人比较乐观开朗。有良好的团队运作能力。

创业必须有很好的点子,抓住时代的机会,比如现在的碎片化时间,很多人在玩一个消消乐的游戏,这就是抓住了现代人生活方式的一个点子。


学完Java后如何找到工作?

  • 自投简历

大部分人会选择自己投简历找,推荐招聘网站boss直聘、拉勾网、实习僧、智联招聘等。找工作时简历尤为重要,一份好的简历可以获得很多面试的机会,相关的简历编写指导可以百度自行搜索。

  • 内推工作

最好是有人内推,内推要更加方便,只要满足技术的要求基本都可以入职,所以平时自己多结实一些HR以及行业内大厂的大佬们,以后在这个行业找工作基本都是靠关系内推,有关系好办事自古以来都是这样的。