java入门到精通要多久

java入门到精通要多久,第1张

0基础到学会WEB和安卓开发,最快六个月能搞定,如果有其它语言基础可以更快。精通就不好说了,那是思想上的东西。

1看到过好多个这样的提问,其实我一般真的不那么容易分享自己的这点心得的,这是第一次回答这样的“推荐书籍”方面的问题。

我买编程方面的书籍,有一个非常清晰、坚决的原则——电子工业出版社的!

对于JAVA,建议你看如下的书:

首先,《21天学通JAVA》;

然后,《30天学通JAVA项目案例开发》(这本书的内容都是实例的,非常棒的实例!适合初学者的同时,又有实际应用性!)

以上的书籍,是基于你只想学J2SE的。

我还建议你主要攻J2EE方面的知识(在中国,J2SE要高手才能找到工作,而J2SE,只是菜鸟都很可能找到工作),至于J2EE方面的书籍:

首先,《21天学通JAVAWEB开发》

然后,《30天学通JAVAWEB项目开发》

以上都是本人确切的经验来的,绝对没有介绍错

2我联合互联网上的一群大牛,组建了一个编程的免费学习群,你只需要来我们这个群里听就行,开头的的第一部分是:四二六,位于中间的第二部分是:396,处于最后一部分的是:284。 这里有免费的学习资源,每天直播课程,不需要你付出什么,只需要有一颗学习的心就可以了。 不是想要学习的就不要加了。

3、动手去写去练

当然只看是很难学会的。我们需要搭建IDE环境来多练习才能完全掌握这些语法。编程学习没有捷径可走,只有入门快慢之分。要学会编程只有coding、coding最后还是coding。

送给那些懦弱的人们

A : 我是护士,我的专业就是护理。我做不了excel、做不了ppt、我学不会ps,好难,我不会写文章。

我: 我学习那么好,写字那么漂亮,编程也不错,ps也挺好、我还能打篮球、我会兵乓求、我会羽毛球、我会足球、我会设计、我会英文。(有的都是高二退学之后自己加强学习的,读书只给了我 算数、识字这些基本的的能力),我特么是神吗

A : 人人都跟你一样不是谁都能用很短的时间学很多的东西。

我 :我大概是神吧!你能少看一点 《爸爸去哪儿》、《额滴歌神啊》、《奔跑吧兄弟》吗,今天出了《爸爸去哪》,明天来个《女儿去哪》、《爷爷去哪儿》,你看得完你能不能看点有用的东西例如有点启发、让人学到东西的影片或者书

A:委屈的瘪瘪嘴,那好,我要学习,给我买一本书吧,推荐一下。

我:书到了,学习 吧,一个月后我要看你的成绩。我来考考你

A:好难啊,我好困,我要看一会儿电视(然而没然后了)

其实,这位A同学,极度的懦弱,并不是她不上进,只是那么的懦弱,那么的沉迷于垃圾节目、垃圾书籍,喜欢看不伦不类,不三不四的东西。不明白自己应该要什么,自己怎么做才能得到,认为自己的能力那么的差,做不到

B:大神,我要学node了,推荐一下node的书籍呗

我:恩,入门看一下《node于express开发》吧,然后看看node官网。还有一些博客什么的。当然了,你完全按照那本书,也能做出一些的东西了。最重要的是,要自己动手,去做东西,然后发现问题,解决问题。提升自己。

B:大神,除了那本书,还有别的书吗

我:书很多,但书不在于多,而是,你能否理解了,并且能运用了你看完了吗

B:我感觉很难做,node好难。

我:做做项目,搜搜Google、看看github。

而今,我不知道这位同学水平到底到了什么水平,我想,应该不会太好,最终原因,我想是因为没有深入的去折腾,没有去写代码,没去发现自己的问题

其实,我们的潜力很大,我们能学的更好。我们能掌握的更多,但是许多人都做不到坚持、做不到深入。不肯思考,不肯的动手,是阻碍我们进步的最大原因。

后记:

人,应该要明确自己的目标,拥有理想。

人,重要的不是你站在哪里,而是你往哪个方向前进。

无论何时,不管你已经得到了多少,拥有了多少。都不是堕落的理由。

对于不肯上进,没意志力的人来说,等于是,你想死,任何人都救不了你!

感谢自己,感谢自己没有继续读大学。感谢自己在读书时代已经养成了独立思考,喜欢折腾的习惯。

这是一门技术活,如果你想学习一般两个方法,一是自学,二是去培训机构系统的学习

一、关于自学需要掌握的知识有:

一、JavaSE基础

11、J2SE

JAVA 开发基础知识 | Eclipse 开发环境 | J2SE 50 API | J2SE 80新特性 | 多线程技术 | Socket 网络技术
|

Regular Expression | Java反射技术 | Properties技术 | 各种实战设计模式| Java Debug技术 |
面向对象设

计原则详解 | 实例解决面向对象设计 | 面试题内部详解 | 面试答题技巧详解 | AWT/SWING技术

12、实战数据结构

数据结构实战训练 | 数组、链表等常用数据结构实战

13、正则表达式

正则表达式基本语法。预搜索、断言、分组。 JAVA *** 作正则表达式Matcher/Pattern

14、反射机制

JAVA的动态性、Reflection技术、JVM类加载器、Class对象、Method等。

15、CHAT项目

Chat项目通过完成一个模拟的在线聊天系统,主要锻炼大家对于TCP/IP、Socket编程、C/S模式的编程、线程的运用等方面的能力。

16、坦克大战单机版/版/网络版

这三个项目通过大家喜闻乐见的小游戏的形式来锻炼大家对于JavaSE综合运用的能力,并且能够初步运用面向对象的编程理念,锻炼初步的设计能力,并基本掌握多线程的编程。

二、Java Web开发

21、数据库技术

Oracle 基础管理;SQL 语言PL/SQL
语言;触发器、存储过程;MySQL,SQLServer简介;业界常见问题设计;数据库表的设计范式;数据备份与移植;多表连接难题详解;嵌入式数据库应用;

22、JDBC技术

JDBC基础; 连接池技术;使用设计模式开发连接池;详细扩展与测试池效率;

23、HTML4 & CSS & JavaScript

HTML 语言;CSS 语言; JavaScript 语言;JS常用模版;后台管理模版; DOM; JS *** 作CSS; JS *** 作DOM;
ECMAScript; JS *** 作DIV;protoype;js基于对象编程; ;Firefox和firebug调试技术;

24、Bootstrap

前端css框架,让我们的学生不会美工也能做出漂亮的页面;

25、Jquery

Jquery基本技术;Jquery使用插件;

26、>

使用>

27、JSTL标签库

JSTL核心标签库,JSTL函数标签库、JSTL格式化标签库,JSTL之XML解析标签库、自定义标签技术;

28、JSP & Servlet

Servlet 技术;JSP 技术; JSTL Tag Library 技术; Filter&Listener技术; 报表系统;
FileUploading; Tomcat 服务器技术;servlet 过滤器和AOP编程;servlet监听器;

29、SCM技术

CVS初步;SVN简介;

210、Java Web实战演练

综合运用所学知识; HTML + CSS + JS; JSP + Servlet + JavaBean; FileUploading; 分页技术;
数据校验; MVC初步; Filter; Listener;

211、XML 技术

XML + XSL + DTD/Schema;XML数据解析; XML应用详解;XQUERY技术;CAST技术(XML数据和对象互转);

212、AJAX技术

AJAX技术基础; AJAX技术框架; AJAX技术调试技巧;

213、项目实战

《基于servlet/JSP技术的电子商务网站》、《基于AJax和Jquery的BBS论坛系统》、《基于Apache Commons
FileUpload的网络硬盘系统》

三、主流框架技术及项目实战

31、流行Web 框架简介

Struts2/spring4x/hibernate4x/spring mvc / WebWork /mybatis等简介

32、MVC 模式

Model View Controller 模式深入

33、SpringMVC

springmvc概述; springmvc的开发流程;springmvc基本配置; springmvc的注解开发; 常用注解;
service,control,reposity,reques+mapping,responseboby等

34、Struts2x

Struts2的基本开发流程;action类的三种实现方法; XML配置的几种方法; Struts2国际化支持; Struts2异常处理;
Struts2的验证框架; Struts2的多模块配置;拦截器;

35、Hibernate4x

Hibernate基本开发流程; ORM简介; 模拟SQL语句的自动生成; hibernate的检索; 性能优化 一级缓存 二级缓存 查询缓存 事务与并发
悲观锁、乐观锁

36、Spring4x

简单工厂模式 ;抽象工厂; 工厂方法模式; Spring3简介; Spring的基本开发流程; IOC、DI; Bean的配置;
SSH框架的整合;Spring的注解开发; Spring AOP开发 代理模式 静态代理、动态代理、CGLIB;

37、Mybatis

Mybatis简介; Mybatis的开发流程; 配置文件 ;映射文件; 面向接口的Mybatis开发;

38、手工编写实战开发 struts2x框架

亲自动手开发struts2x框架,融入设计模式,让大家的对struts的核心机制烂熟于胸!

39、手工编写实战开发 Hibernate4x框架

芯学苑名师亲自带领你开发hibernate框架,让你真正将ORM框架理解透彻!

310、手工编写实战开发mybatis框架

完成另一个ORM框架mybatis的开发工作!

311、手工编写实战开发 Spring 4x框架

Spring是最著名的框架之一!也是业界应用范围非常广泛的框架!是否对其核心机制有透彻了解,往往是高薪的关键!因此,芯学苑名师带领你完成spring框架核心机制的开发。当别人还在探讨如何使用spring时,你已经更上层楼!

312、项目实战

《基于struts2+spring+mybatis的电子政务系统》、《基于spring MVC+hibernate的在线考试系统》

二、去培训机构要注意的有:

现在IT行业的培训机构越来越多,鱼龙混杂,那么,应该如何擦亮眼睛,选择一家货真价值的机构来学习呢

如果你是刚毕业的大学生,或者已经在社会上工作过的有志之士,想在软件行业道路上发展,最重要的是你要有技术。

现在,企业需求的是有IT技术的人才最吃香,如果你没有技术,是不是应该与时俱进努力学习新时代所需求的知识呢那你就需要提升一下自身的综合实力和竞争力,就是学习技术,技术是在社会竞争中最核心的实力,其次就是自身的综合能力。学技术就要选择靠谱的机构,不能说看到那种广告的宣传,我们要看真正受到实惠的学生,也就是口碑,这是最实在,也是最真实的。

西安芯学苑教你几招如何练出火眼金睛:

1需要实地考察,选择适合你的学习方式;

2教学方式:技术必须面对面的传授,有问题及时的解决,拒绝视频教学;

3试听,这个也是考量教学师资的部分;

4口碑:一个培训机构的好坏和学员的口碑宣传也有一定的关系的;

5就业:是不是真的能保障学员就业,而不是直接给学生随意的推送一家就不管事了(谨慎小心选择);

6环境:环境可以带给大家愉悦的学习环境(好的氛围才能带动更好的学习)

第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合框架; (基础)
第二阶段:java界面编程,包括AWT,事件机制,SWING,(不常用)这个部分也可以跳过,用的时候再看都能来及;
第三阶段:java API:输入输出,多线程,网络编程,反射注解等,java的精华部分(重点);
第四阶段:数据库SQL基础,包括增删改查 *** 作以及多表查询; Oracle Mysql
第五阶段:JDBC编程:包括JDBC原理,JDBC连接库,JDBC API,虽然现在Hibernate比JDBC要方便许多,但是JDBC技术仍然在使用,JDBC思想尤为重要;
第六阶段:JDBC深入理解高级特性:包括数据库连接池,存储过程,触发器,CRM思想(高级)这个比较不好懂,有时间的可以学习;
第七阶段:HTML语言学习,包括HTML标签,表单标签以及CSS,这是Web应用开发的基础;
第八阶段:JavaScript脚本语言,包括javaScript语法和对象,Ajax基础 ;就这两个方面的内容;
第九阶段:Servlet开发,从此开始踏入javaWeb开发的重要一步,包括XML,Tomcat服务器的安装使用 *** 作,>推荐书籍<<新起点JAVA基础设计与上机指导>>这本书是我们学校用的
还不错内容挺好的
楼主要向这方面发展要学的知识有:
1 JAVA 是基础
2 html ,css 是静态页面基础
3 jsp 是动态页面基础(与数据库交互)
4 javascript页面特效
5 数据库 *** 作(SQL Server,mysql and so on)
后面高深知识:(可选)
6 struts 框架
7 hibernate框架
8 Spring 框架
9 DWR 框架 (Ajax 无动态刷新页面)
学习注意事项:
1把书翻三遍
2每个小项目做一遍
3以上内容学完后找两个中型小项目做做
4如果遇到什么问题的话自己独立解决即使是到网上找答案也要自己找如果不行的话到百度知道或是CSDN去问一下网友我想会有好心的朋友帮助你解决问题的如果实在是解决不了的话就去问老师
5我想上面的都做完的你的J2ee就差不多达到初级程序员的水平了
6然后做两个大型的项目你就是中级程序员了
好好努力吧!
希望楼主早日成为项目经理
再做个总经理
你要相信你自己不过你要努力学习我想只要半年时间
楼主的技术就上一个很高的水平的提高
因为我的知识大部分都是自学的
学校老师只教了一些基础
我相信楼主也可以成功!!
这是自己的原创绝对没有复制别人的
衷心的祝愿楼主早日在这方面创下一番事业!!!

JavaWeb核心框架

持久层框架:Hibernate、iBATIS

表现层框架:Struts1、Struts2

业务层框架:Spring

java学习路线图:

1、Hibernate:ORM

Hibernate是一个Java ORM开发框架

ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。

ORM是一种以面向对象的方式来进行数据库 *** 作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。

为什么需要ORM框架?

简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:

准备好SQL语句

调用JDBC的API传入SQL语句,设置参数

解析JDBC返回的结果

这个过程实际上非常麻烦,比如:

在Java代码中拼接SQL非常麻烦,而且易于出错

JDBC的代码调用有很多重复性的代码

从JDBC返回的结果转换成领域模型的Java对象很繁琐

而使用ORM框架,则可以让我们用面向对象的方式来 *** 作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!

2 Struts:MVC

Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:

模型Model用于封装与业务逻辑相关的数据和数据处理方法

视图View是数据的HTML展现

控制器Controller负责响应请求,协调Model和View

Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。

3Spring:DI/AOP

Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。

其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。

Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。

Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。

首先 java从入门到精通 学习时间大概多长需要看自己个人的吸收能力,不同的人接受能力不同,自然学习时间长短不同。现在有些机构开设的课程时间有四个月、半年不等,这要看自己的基础情况。基础比较好的可以参与四个月或者半年的课程,为了缩短 java从入门到精通 的时间, 你需要有一个清晰系统的学 java 习路线,从基础语法入手,然后是 面向对象,数据储存等等,还有JavaWeb,还有 Struts2、 Oracle、 Hibernate4x 、Spring4x 等。
学完这些, java从入门到精通 你相当于已经完成了入门 , 对 java开发技术有了敲门砖。但是对于 java从入门到精通 的第二阶段精通来说,现在出来工作好几年的人都不敢说自己精通呢,因为 java技术 就是不断进步,不断更新的。所以这就需要我们不但学习,不断充实自己的 java知识库,只有这样你才能不断进步。如果自身基础素质不是很强,建议报一个培训班,这样可以学习的更体系,页面去找寻资料的烦恼,把更多的时间和精力投入到学习中去,更加快速的上手java。

随着社会信息的发展,Java技术已经无处不在,无论是手机软件、手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站,而在所有程序员中,Java开发工程师就占据20%的比例,不可否认,Java语言有着广泛的行业发展前景,它在行业中的影响力已是不可避免的。

Java入门如何学习怎么学好Java开发?学java无非就是自学和报班这两种方式,至于java自学还是报班好,这个还是需要根据您自身的条件来判断的。如果您自控能力、自学能力且有基础那自学好。反之报班好。下面跟您说一下java自学与报java培训班学的不同之处,供您参考。

Java自学:好的地方是省钱,不太好的就是学习时间不确定,学习周期很容易拉长,学习不够系统,对于没有基础的或者自控力不强的人来说,也容易导致半途而废。遇到不懂的问题没有人解答,难以往下进行学习,而且容易学的半知半解。

Java培训:学习时间相对较短,整体学习比较全面,学习内容也比较集中。专业老师按照大纲进行系统授课,在学习中遇到技术问题能够快速得到解决,同时还有专项的练习相对于自学,学习气氛更加浓厚,跟同期学员对问题的探讨,对拓展思路有很大的帮助。并且像一些专业的培训机构,培训完后有相应的就业课程和就业指导,比起自学来说求职胜算更大。

如果您学Java是因为单纯的兴趣爱好,自学是一个很不错的选择。但如果您想通过学Java技术转行的话,那么最好是选择参加Java培训班。当然,可能现在的您感觉参加Java培训班学费很贵,但是对于可以通过学习找到工作,还是比较值得的。

总之,零基础小白学习JAVA要懂得一个道理,学习和掌握java相关技术也非一朝一夕之事,不可能一蹴而就,除了知识理论的学习,还需要后续更深入的学习和大量的实践,所以需要你一个良好的学习规划。

另外,所有语言的知识体系分为三大块:

数据存储 (内存,文件,数据库,分布式,集群, 关系型 ,非关系型 。。)

业务逻辑 (业务需求,语言语法,算法,类库框架,性能优化等)

信息交互(展示)(多端,app,小程序,公众号,移动端,pc端,web开发等。。)

这三块知识作为学习来说,可以有侧重,但是不能有某一块完全不懂。

如果要谈精通Java ,有一个特别直接的方法,那就是考察工程师是否具有:

“快速构建开发框架的能力”。

例如下面这个系统:

这是一个典型的web应用(基于Java)。虽然就整个系统搭建来说,是架构师的责任。但其中的深色部分,是一个典型Java应用框架。以此为标准,框架的搭建能力,可以用来考察软件工程师是否真的精通Java。

在一些新项目中,项目经理和架构师会根据业务需求从顶层设计架构。待架构稳定后,会进入实际的编码阶段。但在更大规模的业务编码前,首先要搭建好系统的基本框架,而这个框架一般会交给团队中最资深的工程师(当然精通Java)去做。

具体框架的搭建时间一定不能太长,因为整个开发团队都在等待。

同时,因为这个框架是长期开发的基础,所以质量一定要有保障。

搭建框架的技术指标,一句话:又快又好。

搭建这样的框架,以我的经验,团队能接受的时间一般是2周,最多不能超过3周。

这个框架如果由一个初级工程师来搭建,因为缺少长期的积累,必然需要大量的时间。但除了时间,更糟糕的是质量。

因为一个好的框架绝不是靠脑子凭空想出来的,更应该实践磨练出来的。而初级工程师因为缺少实践锤炼,踩过的坑不多,吃过的亏少。纵然理论再丰富,天资再聪颖,也无法在沙地上凭空打出扎实的地基。

而且,实践中,即使有很多工程师有丰富的实践经验,但也不意味随着时间推进,老工程师就天然具备搭建高质量框架的能力。因为实践背后,更需要深刻的洞察力,和笔耕不辍的总结。

现实中,一个大型的项目,代码量必然是巨大的。即使是当初设计再精细,但随着开发的不断推进,腐败的引入是无法避免的,其中一个显著特征就是模块之间的耦合不断增加。

用一个比喻来形容,随着时间发展,整个软件系统就像人体一样,血肉筋骨都粘合在了一块。对软件工程师来说,要从这样的系统中提取出凝练的框架,就像对一个高水平的外科医生要求的那样。在理论上要保持绝对的精通,就像医生对解刨学的掌握。同时还有有极强的编码能力,就像医生握手术刀的灵巧双手一样。用一句话来形容一流的Java工程师(医生也是这样),那就是:“鹰眼、狮心,女人手”。

但是,软件工程师和医生还有一点不同,那就是对速度的追求。因为搭建框架的工作是整个团队开发工作的前置阶段。

而要提高框架搭建的速度,除了日常多思考,多总结,更要做到“未雨绸缪”,提前布局。

以我为例,日常的开发中,对每个经手的大型项目。除了通过不断的重构,来保持整个框架的清晰外,我还会尝试把每个系统中的框架单独剥离出来。这样的做法,除了避免框架被污染的同时,也不断丰富了属于我个人的“架构模式”库。

这样的做法,一则在面临新项目时,极大的提高了项目的推进速度。另一方面,也极大的提高了个人的技术自信度,以及职业安全感。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13345712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存