写给入坑Java的新手程序员

  • Java拥有丰富且完整的生态,各类框架及工具应有尽有,系统完善的学习需花费较大精力;
  • Java在国内互联网行业应有最为广泛,没有之一,岗位多,但是竞争也最为激烈;
  • Java现在不缺CRUD程序员,缺精通Java的高级工程师,入坑需谨慎;
  • Java可让你轻松在一线城市实现中国梦,也能让你难以温饱;
  • Java开源各自框架,但是源码读起来会让你枯燥乏味。

Java生态链

  • Spring
    1.基本Java程序都必须使用的框架,包含众多部分:Spring Framework;Spring Boot;Spring Cloud等;基本都是必知必会的知识。

  • ORM框架
    1.进行系统开发必须要连接数据库,ORM框架就是专门提供给程序员连接数据库所开发,包含Mybatis(ibatis)、Hibernate、Jpa等。

  • MQ(消息队列)
    1.为满足互联网行业高并发场景需求,应运而生的中间件框架,具体是怎么使用,不是本文重点,不在此赘述;常见的MQ包含:RocketMQ;RabbitMQ;ActiveMQ;Kafka;ZeroMQ;QMQ等;
    2.MQ分为点对点模式和发布/订阅模式,具体如下:

  • RPC(远程调用框架)
    1.远程调用框架,我这边和MQ区分开来,因具体在互联网行业使用场景是不一样的,通过二者都会使用,目前国内RPC框架是三驾马车:Dubbo(阿里);Tars(腾讯);gRPC(百度);Java也有自带的,此处忽略;下图是Dubbo的框架设计:

  • Nosql数据库
    1.传统的关系型数据库:Sql Server和Mysql,就不用提啦,肯定会涉及;此处主要是非关系型数据库:MongoDb、redis、HBase、Memcache;Nosql数据库也是Java生态必不可少的,解决如Redis锁,缓存,接口幂等(Redis)等一系列实际问题。

  • Nginx与Docker
    1.Nginx:负责浏览器请求分发,即负载均衡;
    2.Docker:部署容器,远程部署必不可少;

  • Paas与Saas
    1.Paas:部署平台,服务器集群部署平台;

  • JVM与JDK
    1.JVM:Java虚拟机:Java跨平台靠的就是JVM,JVM调优可让Java运行更优;
    2.JDK:Java开发包;

  • Tomcat
    1.Java使用的开源Web服务器,Web开发必不可少;

  • Servlet、Jsp和JSON、AJAX
    1.这些属于Java开发也需要用到的技术,当然如前端框架,就不提了,本文只针对Java后端开发;

  • ES与ZK
    1.ES:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口;
    2.ZK:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务;

  • Git与Maven
    1.Git:代码管理;
    2.Maven:Jar包管理工具;

Java学习路线思维导图

1.借鉴了尚硅谷的思维导图,还不错,就懒得自己画啦,推荐大家使用Xmind;
2.Java基础知识思维导图

学习指南

  • 入门
    公司里为了提高开发的效率,会使用一些Java Web框架,因此还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。上述是最基础的入门,可以看书或者视频,很容易上手;

  • 提升
    会使用SSM框架实现简单的CRUD项目后,需要会使用设计模式及数据结构,来提高系统稳定性及可用性,此时也必定需要加入新的技术框架,如消息中间件MQ、Redis等Nosql,以及常常提到的多线程编等;除此外maven以及git也是要会使用的啦,现在企业是团队开发,避免重新造轮子;

  • 精进
    此时就是需要补充理论知识,提高深度的时候啦,推荐书籍:《Java编程思想》、《深入理解Java虚拟机》、《Java并发编程实战》、《Effective Java》、《算法》等。

  • -横向发展
    因为前面肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,能精通任何一项,都将是你未来面试时巨大的优势。一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去满足自己已经熟悉的技术,需要离开舒适区,你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。

  • 开源项目
    最后你应该是多年资深Java工程师啦,肯定不能满足于业务开发,需要考虑往框架开发转变,去github参与开源框架或者自己造个轮子,来证明自己的深度及广度,共勉。

学习网站

作为开发者来说 , 必备的除了对编码的热情还要有自己的一套技巧 , 另外不可缺少的就是平时学习的网站。

  • Stack overflow
    Stack overflow.com 可能是编程界中最流行的网站了 , 是一个与程序相关的 IT 技术问答网站,用户可以在网站免费提交问题,浏览问题,索引相关内容,。

  • DZone
    这是一个非常有趣的网站 , 有相当多的开发者在这个网站上分享他们博客文章。就像一场冒险一样 , 在这里 , 你永远不知道下一秒会看到什么内容。

  • LeetCode
    LeetCode 包含一系列算法问题 , 它能为有关信息技术的面试提供一个社会性的平台。这个网站最好的地方就是 , 它可以通过大小不同的数据在线检查你的代码是否正确。

  • Java SE 技术文档
    技术文档永远是学习该技术的第一资料,一定得经常翻阅,切记。

  • Github
    你也许知道可以免费的将你的项目托管在哪 , 但你不一定知道它还是一个学习当今流行的 Java库和框架的优秀资源。比如 , 你想学 Spring MVC Framework, 你可以搜索并且找到一些开源的项目。遵循“照葫芦画瓢”的原则 , 你能够通过实例快速的学习框架 , 尤其是你已经具有使用类似框架的经验。

  • B站
    可以在上面看大厂程序讲讲他们的理解,听他们吹吹牛,里面有很多确实讲得不错的,比如阳哥,你们自己搜索吧,不附链接啦。

总结

1.重视基础,多看书,多写博客,不积跬步无以至千里;
2.算法与数据结构基础中基础,推荐LeetCode,积累算法思路;
3.不要满足会用,一定得知其然,研究源码原理,才能走的长远;
4.Java学习没有尽头,必须保持学习动力,方能立于不败之地。

Java新手学习指南(2020最新推荐版)相关推荐

  1. 取消预约的c语言代码大全,c语言学习宝典2020最新手机版

    <c语言宝典2020最新手机版>是一款专注于计算机二级.C语言编译器的教学软件,无论您是在校大学生,还是职业学员,或者其他开发人员,本软件都旨在全面提高您的C语言编程思想和开发实力,使您能 ...

  2. 《Java和Android开发学习指南(第2版)》—— 1.5 本章小结

    本节书摘来异步社区<Java和Android开发学习指南(第2版)>一书中的第1章,第1.5节,作者:[加]Budi Kurniawan,更多章节内容可以访问云栖社区"异步社区& ...

  3. 《Java和Android开发学习指南(第2版)》——第2章,第2.10节本章小结

    本节书摘来自异步社区<Java和Android开发学习指南(第2版)>一书中的第2章,第2.10节本章小结,作者 [加]Budi Kurniawan,更多章节内容可以访问云栖社区" ...

  4. Java工程师学习指南(2019最新版)

    写过一个Java工程师学习指南,我把它分为了四个部分,第一步是打好Java基础,掌握Java核心技术,第二步是掌握Java Web技术栈,能够做一些项目,第三步是掌握Java方面的进阶技术,包括网络编 ...

  5. Java工程师学习指南 入门篇

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  6. 超硬核Java工程师学习指南,真正的从入门到精通,众多粉丝亲测已拿offer!

    最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思 ...

  7. Java工程师学习指南 中级篇

    Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...

  8. Java新手学习路线

    ------Java新手学习路线------ 第一阶段:J2SE(java基础部分) java开发前奏; . ①计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量 ...

  9. Java工程师学习指南(初级篇)

    Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

最新文章

  1. load generator 与ip Spoofer的区别
  2. android核心机制之Zygote启动流程
  3. 桥牌笔记:3NT做庄路线
  4. 观察者模式(Observer) 简介
  5. 使用VC编写VB使用DLL
  6. 笔记-项目沟通管理-高效的会议方案
  7. 它有许多功能的局域网
  8. 深度学习基础(综述及名词解释)
  9. 使用setuptools和cython打包python程序的时候遇到:Microsoft visual c++ 14.0 is required问题解决办法
  10. 【mpeg4】xvid参数分析
  11. 开发悬浮球SDK之自定义view 下篇 — 裁剪圆形(以及其他形状)背景图片并设置文字
  12. 风暴英雄 服务器在哪个文件夹,《风暴英雄》国服官方答疑 玩家最关心的问题都在这里...
  13. 网友眼中的杭州IT公司排名
  14. VBS教程--摘自百度百科
  15. MFC 中 如何屏蔽Esc和Ente
  16. 不撞南墙不回头----深度优先搜索
  17. WIN8 与WIN7的64位及32位 分别对Legacy BIOS+MBR和UEFI+GPT两种启动方式和分区架构下的安装可行性分析
  18. Centos6.9 下的 CM(Cloudera Manager)CDH 大数据环境部署
  19. java 7 安装_Java7详细安装使用技巧教程
  20. Flink 系例 之 Connectors 连接 Redis

热门文章

  1. 什么是NAT模式、路由模式
  2. Win10 可以联网,但是右下角图标显示无法连接互联网
  3. DBA与项目的那堆事 ——目录
  4. Java面向对象设计(面向对象)
  5. 主板常见故障维修24例
  6. 详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)
  7. CreateFont(MFC)字体设计
  8. 以太网、局域网、广域网、因特网、互联网与万维网
  9. IDEA设置todo快捷键
  10. ucenter 简单分析与同步机制