Java基础

做java开发,java基础是最需要下功夫的一项。在校招时最注重的就是基础,拿不出像样的项目没关系,但是基础万万不可不牢固。

  1. 想要基础扎实,看书沉淀是必须的,有一些编程基础的同学推荐阅读《JAVA核心技术 卷1》,可以跳过图形程序设计、事件处理、Swing、applet以及部分日志章节,如果比较吃力也可以先跳过多线程章节。
  2. 看完一本书,一定要多加练习去理解和吸收。科班的同学可以用java写实验,写的同时一定要多多运用学到的特性。练习阶段各种设计模式套上去用,不要怕笨重,即使是滥用特性和设计模式也是一种有效的学习。
  3. 有了一定量的编程经验后,可以再回过头将《JAVA核心技术 卷1》速读一遍,查漏补缺。同时我们开始扩宽我们的知识领域,开始进行JavaWeb的学习。

JavaWeb基础

JavaWeb是一系列技术的综合,也是大多数Java学习者日后的技术方向。及早的了解JavaWeb也有利于更深层面理解,Java在完整的应用中,是如何与各个模块交互并发挥作用的。

基础篇包括Servlet和JSP的学习、tomcat的使用、理解MVC分层模式、mysql的基础用法及JDBC、了解http协议。

  1. 这部分的学习,我是通过《Head First Servlets and JSP》 。这本书轻松幽默读起来很愉快,但是实在是很厚,而且部分技术已经过时,有时间的同学可以选读。
  2. 可以看到这部分的内容是很杂且多的,此阶段注重广度的基础学习,日后慢慢深入。这里推荐个在线教程:

3. 重点要理解Servlet的原理以及生命周期。在完成这一部分的学习后,可以简单的做个小网站,包括注册登陆,增删改查等功能。如果想继续折腾,可以考虑将项目部署在阿里云或者腾讯云上,一个完整可供他人访问的项目,所获得的成就感是非凡的。

部署到Linux系列教材 (一)- 介绍 - 如何把J2EE应用部署到Linux - how2j.cn

Java进阶

Java始终是我们JavaWeb开发体系中最核心的一环,唯有不停地探索,才能把握住方向和机遇。

  1. 在做完一个简单完整的JavaWeb项目后,我们对代码的认知和理解会提高不少,这对接下来的深入学习打下基础。Java圣经:《JAVA编程思想》 值得仔细品读,作者的功力十分深厚,即使很多内容还无法理解,但每次读完一定会有所收获。同样建议跳过“图形化用户界面“章节,这是一本伴随我们技术成长的好书,买一本放在旁边,摸着就有底气。
  2. 读完编程思想,建议写一个有一定复杂度和代码量的后台项目。可以是一个http服务器,一个大型聊天室,也可以参考我的项目实现一个DBMS:wwwyanxin/wyxDBMS 这一部分要强化我们的Java基础,同时也为日后的招聘积累项目经验。
  3. 做完项目我们又该看书沉淀技术了,此时我推荐《Effective Java》,这本书并不厚但是干货十足,作者讲述Java的最佳实践和经验规则。它能帮助我们写出清晰、健壮、高效的代码,同时这本书涵盖了非常多的面试考点,一定要牢记于心!
  4. 最后还要深入学习Java多线程技术以及Java虚拟机原理,这两部分难度较大,理解起来比较抽象。也许日后工作中,我们很少遇到并发问题,不一定有机会进行JVM调优,但是这部分一定要认真对待,越理解底层写出的代码越高效,查bug时越准确,另外更重要的是面试常考!推荐两本书《Java并发编程的艺术》《深入理解Java虚拟机》,以及并发编程网:并发编程网 - ifeve.com 重点掌握java内存模型,各种锁的原理及应用,JVM GC垃圾回收原理。

JavaWeb进阶

围绕整个java体系学习,我们要筑起高高的城墙。

  1. Linux,现在的服务器基本都是Linux系统,也不存在图形化操作界面。作为开发工程师推荐阅读《The Linux Command Line》,有中文在线免费版本TLCL。那本《鸟哥的Linux私房菜》更适合运维工程师,就不推荐给大家了。学习的时候,可以去阿里云或腾讯云租一个学生服务器,每个月大概10元左右,直接ssh到云服务器上操作,能更好地模拟公司的开发及生产环境。
  2. 操作系统原理,主要学习进程控制调度、进程通信、存储和设备管理、文件管理以及系统安全。这一部分可以通过看教材或者自行找一些网课补充。
  3. 数据库,可以买一本《MySQL必知必会》小册子作为基础入门,没有什么理论的堆砌,是一本实践指南。学习数据库原理可以阅读《MySQL技术内幕》索引优化、事务、锁、范式都是重点。
  4. 网络协议,入门可以读《图解HTTP》《图解TCP/IP》如果要深入研究可以读《UNIX网络编程 卷1》和《TCP/IP详解 卷1》大多数开发者接触http和tcp、udp、ip协议比较多,但是对整体网络协议栈有个完整了解是必要的。
  5. 数据结构与算法,数据结构是算法的基础,一定要清晰明了。算法则是笔试面试中无法绕过的难关,推荐去LeetCode刷题,现在也有了中文官方网站:力扣 (LeetCode) 中国官网 - 全球极客挚爱的技术成长平台 从easy难度开始刷起,积累一定题量之后,做算法题会很快找到类型方法。
  6. SSM框架,Spring+SpringMVC+MyBatis可以说是开发必备了,但框架只是锦上添花,不要太依赖框架进行学习。当我们能不依赖任何框架开发完整项目时,才是真正掌握了它。最为重要的是理解Spring的两个特性:IOC 反转控制和DI 依赖注入。明白实现原理以及为什么要使用Spring,只有这样才能在层出不穷的框架中灵活应对,立于不败之地。

加分技能

  1. 前端,一些岗位要求全栈,即使不是全栈,懂得前端技术的后台能写出更加合理的接口,与前端工程师合作起来会更顺利,理解项目更通透,解决问题准确迅速。
  2. 学习一门动态语言,动态语言开发起来更灵活迅速。同时比较动态静态语言的特点,可以更好去提炼跳出语言束缚的代码思想。推荐学习JavaScript或者Python等。
  3. 大数据,大数据开发近几年也是热门方向之一,有兴趣的同学可以学习。
  4. 热门工具及框架,包括分布式Dubbo、缓存优化redis、nginx、虚拟化技术docker等。一般来说本科应届生不会要求很高,但是要对热门技术有一定的了解。

常用网站推荐

  1. GitHub: Build software better, together
  2. Java学习:How2J 的 Java教程
  3. Linux命令行:TLCL
  4. 算法: 力扣 (LeetCode) 中国官网 - 全球极客挚爱的技术成长平台
  5. 正则表达式测试:PHP, PCRE, Python, Golang and JavaScript

JavaWeb学习路线图(2020年最新版)的更多相关文章

  1. JavaWeb学习路线图

    基本把JavaWeb的学了有一半了,在网上找了个学习路线图,供参考.

  2. 2020最精细的Java学习路线图

    在吾爱破解发布的Java学习路线图自我感觉良好,之后看到动力节点Java学院的这份学习路线图感觉专业的东西还得专业的人来做,这份专业的学路线图把我上次的Java学习路线图秒成渣,虽然内容差不多,上份是 ...

  3. JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. R语言书籍的学习路线图

    现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就导致很多人不知道如何着手学习R语言. 对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑 ...

  5. 写给自己的Java程序员学习路线图

    恩,做开发的工作已经三年多了,说起来实在是惭愧,自己的知识树还像一棵小草一样,工作中使用到了许多的知识和技术,不过系统性不够.根基不牢.并且不够深入!当然,慢慢的我也更加的清楚,我需要学习一些什么样的 ...

  6. JAVA学习路线图(一文详解)

    此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为JAVA攻城狮. 阶段1 1:学习HTML 2:学习CSS 3:JavaScript 4:jQuery 5:xml解析 6: ...

  7. ​​ ​​Java后端学习路线图,你真的只需要这一张!

    ​​​​ 前言 学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把. 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点.所谓不求最好,但求最全,学习Java ...

  8. Java学习路线图(如何快速学Java)

    不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议.可能总结的不是很详细,但给出了一个大概的学习路线.希望对大家有帮助哈~ 如何快速学Java 这里我以Java E ...

  9. 写给自己的Java程序员学习路线图_转载

    如下是我做开发这三年经常使用一些技术和工具,当然这些技术也都是需要加强的(有些是我一直使用的,不过不深入,有些内部的原理等等不是很清楚) 前端部分: 1)HTML:网页的核心语言,构成网页的基础 2) ...

随机推荐

  1. WDA基础十八:Select option配置

    为了省代码...为了方便管理WDA的查询条件... 首先建配置表: 说明: 上面的KEY基本都是维护的维度,可以根据销售组织,根据用户组,根据组件,根据SELECT OPTION的不同...等等,可以 ...

  2. 尚硅谷MySQL高级学习笔记

    目录 数据库MySQL学习笔记高级篇 写在前面 1. mysql的架构介绍 mysql简介 mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  3. flask 简单示例

    flask import flask from flask import jsonify from flask import request # 要获取到请求参数的话,就要导入这个模块 ''' 创建接 ...

  4. ASP.NET----内置对象----Resuest

    Request对象可以获取包含用户的计算机.页面及浏览器的请求等相关信息. Request对象的属性: ①Form----------返回有关表单变量的集合 ②QueryString--------- ...

  5. centos7利用acme.sh获取Let's Encrypt的永久免费ssl证书并配置网站域名https访问

    acme.sh介绍:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E github:https://github.com/Neil ...

  6. php-fpm编译安装脚本

      PHP是开源.轻量级.高效的开发语言,特别适合web项目开发,在中小型互联网公司中常用于开发web后端.PHP常与Nginx及MySQL数据库结合,搭建LNMP环境.以下为centos7系统下ph ...

  7. 十一、yield生成器

    1.对比range 和 xrange 的区别 >>> print range() [, , , , , , , , , ] >>> print xrange() x ...

  8. 工作必备之正则匹配、grep、sed、awk

    常用正则:匹配空行:^\s*\n 匹配www开头:^www 添加行号:awk '$0=""NR". "$0' /etc/yum.conf 1.所有域名前加www ...

  9. 混合高斯模型(Gaussian mixture model, GMM)

    1. 前言 这就是为什么我要学习一下二维高斯分布的原因: 总感觉数学知识不够用呐,顺带把混合高斯模型也回顾一下. 2. 单高斯模型(Gaussian single model, GSM) 2.1 一维 ...

  10. 通过async与await实现高效并发

    withTimeoutOrNull: 在上一次https://www.cnblogs.com/webor2006/p/12010388.html中对于协程的超时机制进行了一个学习,上次用的是withT ...