自学Java难度大吗?

你大爷


1)如果您已经具有一些编程的背景知识,尤其是有关面向对象开发的理解,那么您自己学习Java肯定是可以的。

比如通过学习甲骨文公司官方的java开发说明(https://docs.oracle.com/javase/tutorial/)。

2)但是,如果您完全不了解编程,并且以前从未听说过面向对象编程,那么自学Java无疑将是一个更大的挑战。

在这种情况下,我建议您去学习许多在线课程,并首先对学习一些关于通用编程和算法的知识。

很多优秀的课程时候免费的,比如 Codeacademy Codecademy-免费交互学习编程或MITOPENCOURSEWARE 入门编程课。

这个过程可能要稍微困难一些,但是在资料和视频的辅导下,是非常有可能成功的。

3) 总之,在任何情况下,无论您目前的技能水平如何,都可以自学Java编程。


查理博士关天下


自学Java看这一篇就够啦!Java学习路线图分享给你,跟着学习吧!

一、Java基础

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:

  • 基础语法,可帮助你建立基本的编程逻辑思维;

  • 面向对象,以对象方式去编写优美的Java程序;

  • 集合,后期开发中存储数据必备技术;

  • IO,对磁盘文件进行读取和写入基础操作;

  • 多线程与并发,提高程序效率;

  • 异常,编写代码逻辑更加健全;

  • 网络编程,应用服务器学习基础,完成数据的远程传输。

  • 学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

  • 二、数据库

    数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。

    该板块包括关系型数据库和非关系型数据库。

    例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。

    技术树

    三、前端技术

    Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。

    首先,我们先看一下前端板块。该板块主要包括如下几个模块:

  • HTML5,网页制作标记语言;

  • CSS,对HTML制作网页进行美化;

  • JavaScript,嵌入在页面中的脚本语言,具备逻辑性;

  • Vue,前端框架,简化了与服务器端交互的操作,用户良好的交互体验是必不可少的。

  • 学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。

    技术树

    四、动态网页技术

    动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。

    该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。

    技术树

    五、编程强化

    编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。

    编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。

    学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。

    技术树

    六、软件项目管理

    JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

    在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。

    学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

    技术树

    七、热门技术框架

    使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。

    热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。

    该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。

    技术树

    八、分布式架构方案

    随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。

    主要包括如下模块:Dubbo,高性能的 RPC 服务发布和调用框架;SpringBoot,简化Spring应用的初始搭建以及开发过程;Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。

    该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础

    技术树

    九、服务器中间件

    中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。

    学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。

    技术树

    十、服务器技术

    不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:Vmware,虚拟机软件;Linux,专门用于服务器的系统;Nginx,集群部署时反向代理服务器;Tomcat,项目发布时主要使用的服务器。

    该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!

    技术树

    十一、容器技术

    容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。

    技术树

    十二、业务解决方案

    虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。

    技术树


糖的甜


有天赋的人再加上毅力,短期内对基础掌握不是问题。但是javaEE涉及知识点非常之多,不说别的,我就举几个技术你就得必须掌握 : java基础,至少要达到独立随便写代码。MySql数据库,至少要会写简单的查询语句。JPA或者MYBATIS,这两种持久层的东西至少要会一种。接着就是后端框架了,spring,strus,hb,这三个至少要会一个,这才是重点。再接着前端,div+css应该很快入门,但是要达到精通那得下很大的努力。再接着就是javascript了,这才是重点,没有这个知识你的前端就是白做。最后就是前端框架了,angular,react,vue,这三种至少要会一种,而且原生的js必须过硬,还要会使用它的封装jq。以上我说的这些知识点必须要会,而还得精通,不然去其他公司最多也就是多呆几个月而已,根本没法做出东西来。当然后端的技术远远不止这些,要学习的东西实在是太多太多。经常看到有人在贴吧里面说javaee如何如何简单,一下子就自己搞出个博客来,其实这些人无非都是去看着人家的视频来做,或者说直接拿着别人写好的代码来装逼,真正直接叫他独立开发些东西来我估计他搞个三五年都未必做出来。真正的高手也不会满天装逼说自己有多厉害,还是那句话,当你觉得自己有多厉害的时候,你再看看你一个月的收入是1W以内,还是超过1W了?还是达到2W了?还是3W了?你觉得自己厉害,为什么人家做开发的一个月拿3W,他还说自己的水平一般?所以在学习这些知识的时候正确的看清自己很重要。


茫然四顾a


单从问题本身来看,这个问题是比较难回答的。因为每个人对于编程语言的理解和基础都是不同的,由于过于空洞的回答不能起到帮助各位有相同疑问的朋友,下面我就将针对于JAVA这一门语言进行一个系统的阐述。

一、什么是JAVA?

JAVA是由詹姆斯·高斯林发明的一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems(现已被甲骨文公司收购)公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。

二、JAVA发展的优势是什么?

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

三、JAVA语言是一种什么样的编程语言?

Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。

四、学习JAVA语言难度大吗?

1、对于JAVA语言学习的这个问题,我想主要从两个方面进行阐述。首先,在学习任何一门编程语言之前要对自己有一个系统的认知。因为无论是哪种编程语言都需要一定的理解分析能力和理论思维能力。通俗的来讲,只要明白了运用JAVA语言进行编程的整体逻辑和框架的使用,在后期实际工作中也就能够运用自如。这也是在学习JAVA这门语言的时候应该重点去掌握和理解的地方。其次,JAVA语言学习的过程中,对每一个板块的理解要到位,对于JAVA编程实现的基本原理要清晰,当然有些人会认为这里的基本原理就要去探索计算机最原始的用0和1来表示的状态,实则不然。了解最基本的原理应该从面相对象开始,因为JAVA的基本编程原理就是面向对象。掌握了JAVA语言的基本原理和框架结构及实现逻辑后,学习这门语言也就显得很容易并且也能通过自己写的代码运行实现某一功能而带来快乐。

2、上面讲了JAVA语言学习的基本要求和大体的一个学习逻辑,虽然是粗略的带过,但也足够作为基础入门对JAVA有一定的认识。那么作为一个没有编程语言基础的人来讲,是不是学习起来就会很难呢?事实上并不是这样的,由于现在的大学把计算机都纳入必修可能,就算是对编程语言的了解不是很深,至少来讲也明白了是什么。这类人只要有较强的逻辑思维能力、理解能力和分析能力,学习起来还是相对容易的。有些人或许对自己没有信任,在决定之前也可以去一些专业做IT类培训的机构进行了解,当然也需要注意这类机构为了招生的不择手段,谨防上当受骗。当然对于已经入门的人来讲,去进行深造学习而选择JAVA语言的话,也并没有什么可担心的,毕竟有实际的工作经验,也有编程基础。

3、对于从未接触过编程语言的人来讲,可能学习起来就比较困难,甚至于很多社会人士已经工作很久了,也有这样的想法去学习一门编程语言。但JAVA对于零基础的人来讲,总体上学习都是偏困难的,也不排除极少数有天赋的人也能够学习得很好,但毕竟是极少数。对于零基础的人来讲,我觉得可以先从网上找一些最基础的JAVA理论基础视频观看一下,感受一下。再结合自身的理解和判断以及自身的一个综合情况进行决定,避免走错方向。

五、总结

基于学习JAVA编程语言难度是否大这一问题,上面做了基本的介绍和不同情况的一个分析。简而言之大致分为三类人:有语言基础的人群(大学毕业生可视为有语言基础类)、有实际工作经验想要深造的人群、零基础人群。对于上述三类人群,客观的讲,前两者学习起来相对较容易和轻松,最后一类零基础人群难度较大。不管是属于哪一类人群,在选择编程语言及培训机构进行学习的时候都应该慎重考虑和选择,决定前可搜索基础内容讲解视频,看自己是否能够理解,多根据自身能力来综合判别适合哪一类的编程语言,毕竟编程语言也不是只有JAVA语言。以上是我基于问题的所有回答内容,希望我的回答能够给你带来一定的帮助,谢谢。








分享到:


相關文章: