02.27 Java学习的话有什么推荐的?

薄荷糖糖123


我觉得大家不要说的那么高大上了,说点具体的。

题主是新手的话,学习Java就要打好基础,就现在的开发流程来看,后端一般用的是spring,spring boot,mybatis这三个框架,另外的mysql数据库这个也要学习,懂这四个就可以写个网站出来了,当然我说的网站不包括前端界面。

推荐一下尚硅谷这个网站,里面都是制作好的教程,从基础到高级都有,我当初就是在这个网站下载视频学习的。

另外光学的话你不知道学的什么样,可以去牛客这个网站做题,里面基础题目面试题目都有的。

之后如果可以的话,去逛一下github这个网站,这是全球程序员发表项目的网站,在里面搜索Java基础项目克隆下来,看看别人怎么写的


庄馆长


1. 目标:参与简单的项目开发:\r\r经典的《Java 核心技术:卷1 基础知识》《Java 编程思想》必看。为了保证代码的质量,《Effective Java》《Clean Code》和《重构》也需要至少通读一遍。

2. 目标:独立负责某个服务端项目:\r\r掌握 web 开发最佳实践,推荐阅读《Spring揭秘》掌握项目分层、子模块划分。推荐阅读《J2EE 核心模式》。\r\r掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式 Java 应用:基础与实践》。

3. 目标:分布式系统和中间件开发:构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。\r\r原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。\r\r4.网站架构:《大型网站技术架构:核心原理与案例分析+李智慧》《亿级流量网站架构核心技术》\r\r5.软件底层:《深入剖析 Tomcat》5.数据库 :《高性能 MySQL》《Redis 实战》《Redis 设计与实现》《MySQL 技术内幕-InnoDB 存储引擎》\r\r6.其他 :《黑客与画家》这本书是硅谷创业之父,Y Combinator 创始人 Paul Graham 的文集。之所以叫这个名字,是因为作者认为黑客(并非负面意思)与画家有着极大的相似性,他们都是在创造,而不是完成某个任务。


闲人九五二七


Java 学习路线之四个阶段

写这篇总结,给那些想要学习Java,又不知道从哪里下手,以及现在有哪些主流的 Java 技术。想必大家学习一门技术,前期都很想看到一些结果或成就,这样就比较容易激励自己学习下去,最好的办法就是实践,实践,实践!

Java第一阶段

刚接触 Java 的时候,想必大家都是从环境配置开始的,这个里面的坑想必大家都踩过。在这里特说明下,在大学期间一定要把一些基础的课程学好,比如:计算机系统、算法、编译原理等,这个对后期的学习会有很大的影响,最简单的就是你在添加环境变量的时候,为什么要把路径添加到 Path 下面,而不是添加到其它下面,计算机是如何去识别访问这些东西。

学习 Java 基础知识的时候,应该多动手,多思考,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么一回事,不信你就试试。在学习视频的时候,有两种学习方法建议:方法一先把视频过一篇,在看视频的时候,记下知识点,看完视频之后,自己对着知识点,自己敲代码实现,实在想不出来的,回过头来在看视频。方法二边看视频边跟着敲代码,这样会比第一种方法相对容易一些,但是如果是这种方法学习的话,要记得回头多复习,不然很容易忘记。这个时候,可以不用着急进入下个阶段,给自己一两天的时间,对学习过的知识进行下总结。

在学习的过程中,你应该注重知识点的梳理。

Java 第二阶段

Java 基础学习完之后,接着开始学习 Javaweb,在一开始的几天可能比较迷茫,因为感觉自己写的东西没有用处,比如写个计算器什么的,生活中没有什么用,可能是太过于看结果导致的。这个时候应该去做一些有趣的事情,学习新的知识,开发新的大陆,这就是我们的 Web 开发了,主要包括前端页面(HTML/CSS/JS),Servlet/JSP,以及 Mysql 相关的知识。

关于页面,这些内容对于 Java 后端来说,不是特别重要,但是你应该尽自己的最大能力让它漂亮,最起码可以入眼,这样的话,页面就不是什么问题了。接下来,就是学习的重头戏了,学习 Servlet/JSP 部分,这也是 Java 后端开发必须非常精通的部分,在学习 Web 这三部分的时候,这个部分是最花时间的。这个阶段学习的时候,要学会使用开发工具,比如 Eclipse 或者 IDEA 来学习。最后一部分,你就要学会使用数据库,Mysql 数据库是不错的入门选择,而且 Java 领域主流的关系型数据就是 Mysql,这部分其实你在学习 JDBC 的时候,就会接触到,因为 JDBC 也是属于数据库的一部分。不仅要学会使用 JDBC 操纵数据库,而且还要学会使用数据库客户端工具,比如 sqlyog,navicat 等。

Java 第三阶段

这个阶段是在你掌握第二阶段之后开始,如果学习了第二个阶段之后想找工作的话,还需要在学习一些主流的框架知识。目前比较主流的框架是 SSM 框架,既 Spring,SpringMVC,Mybatis。要学会这些框架的搭建,以及用它们作出一个简单的 WEB 项目,包括增删改查的功能。在这里一开始,你可以不用太去关心那些配置文件,以及为什么会这样配置,这个可以留到后面慢慢了解,开始的时候先让自己有个体验,激励自己学习的动力。

搭建这三个框架的时候,一定要记录自己搭建的过程,这个在你工作之后肯定会用到的。在搭建的过程,我们通过网上查找资料或是跟着视频学习,都会接触到 Maven 这个工具,这个工具在你工作之后,也一定会用到的,可以顺带着了解,你不一定要去完全掌握,只要学会使用,知道基本原理就可以。学会使用之后,自己要跟着老师或者从网上去理解更多的东西,比如那些配置文件等。

Java 第四阶段

这个时候相信你已经能够完成独立开发,并且也工作了,对付工作上面的时候,你的技术一定是可以的。但是这个时候不要对自己进行松懈,你要继续学习,而不是工作只是为了应对工作,你应该提升自己的价值。这个时候可以去看一些比较底层的书籍,比如《深入理解Java虚拟机》,这本书就是全面帮助你了解 Java 虚拟机,这个时候想必你一定知道 Java 是运行在 JVM 上的,你没有任何理由不去了解 JVM。另外,关于并发这方面,推荐《Java并发编程实战》,这本书啃完之后,对并发的理解应该有一定的体会了。

这个阶段要做的远不止这些,我们要去思考我们之前使用的那些框架是怎么回事,以及阅读 Java 经典的一些源码,看懂源码的前提,就是你已经有了一定的基础,当然有基础也不一定一下子就能看懂,看不懂就要去思考,在看源码的过程中,你可能有各种各样的疑问,有疑问就是对的,问自己最多的应该是这里问什么会这样写,而不是那样写吧。这个阶段需要自己对自己有很强的自律去学习,不要看了一半就放弃了。学会看源码之后,自己可以尝试着模仿别人写的比较好的开源项目,造属于自己的轮子,虽说不一定有用,但是对提升自己有一定的好处。

如果你想成为优秀的人,你就要「能别人不能」,也就是说你要找到属于自己的一个领域研究下去,以期在将来,你能够成为这个领域的专家,建立起你的差异性。

最后,请记住,从你入行那一刻起,你就要比别人努力,就要不停的学习。希望你能在这个领域成为比别人更优秀的存在!


啰嗦的老邬


1、自学能力和自制力比较强的话,可以选择自学

自学的话推荐几个网站,可以很好的利用上面的资源进行学习,

详情请看我的头条文章链接,里面有几十个学习编程的资源网站介绍https://m.toutiaocdn.com/item/6797007787986518536/?app=news_article×tamp=1582814422&req_id=202002272240210100140261010E3433A2&group_id=6797007787986518536

2、如果自学能力和自制力不是很强的话,资金比较充裕,可以选择去报培训班,但是班培训班也得考察,找一个适合自己的培训机构,一般的话培训机构会提供免费试听课的,可以多尝试几家,看哪家适合自己,再去选择


三年起步


建议:

尽量用 google 查找技术资料。

有问题在 stackoverflow 找找,大部分都已经有人回答。

多看官方的技术文档。

ibm developerworkers 的文章质量整体上有保障。

平时花一些时间在 github 上阅读优秀项目源码。

入门(1-2 个月)

目标:参与简单的项目开发。

技能:掌握 Java。

经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。

习惯查阅 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。

熟悉 Linux 开发环境和 bash shell。Linux 是我们的开发和部署环境,你最好尽快熟练它。Linux 的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发 bash shell 脚本可以参考《Linux Shell脚本攻略》。

掌握开发工具熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以,推荐使用前者。至少熟悉常用的快捷键,会 debug(包括远程 debug)项目。

熟悉一种编辑器。比如 Vim/Emacs/Sublime Text,至少学会搜索/替换/代码补全。

掌握 JDK 以外的常用类库和工具包。JDK 原生 API 在很多场景下使用并不方便。你需要掌握社区贡献的优秀类库和工具包,比如 apache commons、google guava 等,具体可以翻阅 服务端技术选型 的Utility 篇。

掌握 Web 开发框架。我们使用 Spring(或Rose) + Ibatis(或Jade) 开发 web 服务,你需要熟练掌握它们。

学习代码规范。我们大致上遵循 oracle 的 Java 语言编码规范,你可以先阅读并熟悉它。Code Formatting 文件在 git@xxx/coding-standard.git,在编写代码之前,请把它导入到 IDE 中。另外,确认 IDE 已经安装 Findbugs 和 CheckStyle 插件。

熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->集成测试->发布。确保你熟悉其中的每个环节。

其他。需要熟练使用版本控制工具 Git(阅读:《Git 权威指南》),以及项目构建工具 Maven(阅读:《Maven 实战》)。另外,在这个阶段可以尝试 TDD 开发。

进阶(2-6 个月)

目标:独立负责某个服务端项目。

技能:掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。

推荐阅读《Spring揭秘》。掌握项目分层、子模块划分。推荐阅读:《J2EE 核心模式》。

掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式 Java 应用:基础与实践》。

掌握关系型数据库。包括设计 MySQL 表结构,根据业务特点分表分库,基于执行计划的 SQL 分析优化,以及数据库容量规划。推荐阅读:《MySQL 必知必会》、《高性能 MySQL》。

了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分项目使用 Redis、Storm。你需要学会这些工具最基本的使用。

学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。

掌握 Http (推荐阅读:《图解Http》、《http权威指南》)、Thrift 等协议。

掌握服务容量规划,性能调优,可靠性保证,以及故障处理。学习容量规划和性能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机》。

其他。设计模式:从项目中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 编程与多线程知识,可以看看《Java 并发编程实战》,并翻翻并发编程网的文章。

深入(6 个月-)

目标:分布式系统和中间件开发。

构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。

原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。

学习开源项目:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析项目中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。

其他。根据参与的项目加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。有两本书,无论做什么项目,都推荐读:《Unix 编程艺术》、《UNIX 环境高级编程(第3版)》。


我是BSQ


Java学习的话

1.可以看些大牛写的博客,例如csdn,博客园,开源中国等。里面有很多技术文章,经验总结,可以学习更多的技术文章提高自己的水平。

2.看些别人分享的技术视频,例如头条也有很多创作者分享的技术视频。

3.还可以购买些书籍。


代码接盘侠


1. 完成java基础的学习,周期不要超过一个月

2. 学习多线程,泛型,反射,IO,网络编程

3. 开始学习spring全家桶,并且写博客

4. 选几个开源项目,二次开发,踊跃提出PR

5.三个月见明显效果


喜欢杯子


1,建议报一个培训班学习,学习吸收知识快。

2,买些Java入门与提高的书籍。

3,买本《Java编程思想》,号称编程中的圣经。


向日葵AT


第一阶段:基础

全面学习JavaSE部分。包括并不限于开发环境的搭建,基本语法,面向对象,异常,数据结构,IO流等内容。能够不依靠IDE即可手写JAVA代码。不断coding。

第二阶段:选型

主要是看自己将从事哪方面的工作。如果是JavaEE,就需要学习数据库,JSP/Servlet,以及基本的网页知识,如HTML,CSS,JS,DOM等。基本框架的学习,以及基本的服务器和操作系统知识。当然还有大数据,以及人工智能都是好的选型。

继续努力,保持一个不断学习的思想。


分享到:


相關文章: