• 推荐一个资料群java学习》+交流 523401738java初学者最好是能有一套比较好的,完整的教程来指引。下面是最近整理了一套java学习教程,适合新手入门,也适合有一些基础的提升自己。此套视频分六大阶段,每一阶段都...
    推荐一个资料群java《学习》+交流 523401738

    java初学者最好是能有一套比较好的,完整的教程来指引。

    下面是最近整理了一套java学习教程,适合新手入门,也适合有一些基础的提升自己。

    此套视频分六大阶段,每一阶段都逐渐加深,此套教程已经整理的非常完善,各位学习者基本上按照此套流程,一阶段,一阶段学习来,肯定会入门,逆袭成为大牛。

    第一阶段:

    Java初学者该如何学习?

    Java基础视频教程 :http://pan.baidu.com/s/1pLhN7ib

    第二大阶段:

    Java初学者该如何学习?

    Java教程

    (1)轻松掌握JavaWeb视频教程:http://pan.baidu.com/s/1dFoT7Vz 

    (2)6天玩转mysql视频教程:http://pan.baidu.com/s/1mhYXBM4 

    (3)超全面的JavaWeb视频教:http://pan.baidu.com/s/1slHLfIX 

    (4)阶段案例--JavaWeb网上图书商城完整:http://pan.baidu.com/s/1pLllwXt 

    第三大阶段:

    Java初学者该如何学习?

    Java教程

    (1)Hibernate5框架:http://pan.baidu.com/s/1qYrUBxi

    (2)Struts2框架:https://pan.baidu.com/s/1c1Tq55A

    (3)Spring框架:

    Spring2.5视频教程:http://pan.baidu.com/s/1c222JE4

    第四大阶段:

    Java教程

    (1)ORACLE经典视频教程:http://pan.baidu.com/s/1bpBspdX

    (2)Maven精品教程:http://pan.baidu.com/s/1dFek5Zr

    第五大阶段:

    Java初学者该如何学习?

    Java教程推荐:

    (1) Springmvc+Mybatis由浅入深全套视频教程:https://pan.baidu.com/s/1o7TGSZo

    第六大阶段:

    Java初学者该如何学习?

    J

    java初学者最好是能有一套比较好的,完整的教程来指引。

    下面是最近整理了一套java学习教程,适合新手入门,也适合有一些基础的提升自己。

    此套视频分六大阶段,每一阶段都逐渐加深,此套教程已经整理的非常完善,各位学习者基本上按照此套流程,一阶段,一阶段学习来,肯定会入门,逆袭成为大牛。

    第一阶段:

    Java初学者该如何学习?

    Java基础视频教程 :http://pan.baidu.com/s/1pLhN7ib

    第二大阶段:

    Java初学者该如何学习?

    Java教程

    (1)轻松掌握JavaWeb视频教程:http://pan.baidu.com/s/1dFoT7Vz 

    (2)6天玩转mysql视频教程:http://pan.baidu.com/s/1mhYXBM4 

    (3)超全面的JavaWeb视频教:http://pan.baidu.com/s/1slHLfIX 

    (4)阶段案例--JavaWeb网上图书商城完整:http://pan.baidu.com/s/1pLllwXt 

    第三大阶段:

    Java初学者该如何学习?

    Java教程

    (1)Hibernate5框架:http://pan.baidu.com/s/1qYrUBxi

    (2)Struts2框架:https://pan.baidu.com/s/1c1Tq55A

    (3)Spring框架:

    Spring2.5视频教程:http://pan.baidu.com/s/1c222JE4

    第四大阶段:

    Java教程

    (1)ORACLE经典视频教程:http://pan.baidu.com/s/1bpBspdX

    (2)Maven精品教程:http://pan.baidu.com/s/1dFek5Zr

    第五大阶段:

    Java初学者该如何学习?

    Java教程推荐:

    (1) Springmvc+Mybatis由浅入深全套视频教程:https://pan.baidu.com/s/1o7TGSZo

    第六大阶段:

    Java初学者该如何学习?

    Java教程推荐:

    (1)Java学科巴巴运动网视频教程106集:http://pan.baidu.com/s/1pJE0Drt

    (2)巴巴运动网续集视频教程:http://pan.baidu.com/s/1jGgKQhS

    展开全文
  • 不知不觉从初学Java到现在已经8...如何快速学Java 这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了) 学习Java EE(Jakarta EE)总体来说会有以下三大模块: Java 数据库 We...

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

    如何快速学Java

    这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了)

    学习Java EE(Jakarta EE)总体来说会有以下三大模块:

    • Java
    • 数据库
    • Web前端

    在我看来,无论学习什么技术都好,在学习该项技术的细节之前都得知道:这项技术是什么,为什么我要学习这项技术,学习了这项技术有什么好处

    • 看似好像我在说多余的话,但如果你在学习某项技术的时候无法回答上面的三个问题。再过几天,你很大程度上会忘记这项你所“学过”的技术。
    • 比如说,如何你连“为什么要用多线程”你都无法用通俗的话来解释清楚。即便你当时学习的时候知道多线程可以用xxx方式来创建,多线程的xxx的api。那再过两个月,人家问你”Java多线程有什么用啊?”。你想想你还能答什么,我认为你是记不住“多线程可以用xxx方式来创建、多线程的xxx的api”这些知识点了。
    • 再比如说,如果学习Spring时不知道IOC和new对象有什么区别,那我为啥不直接new对象而要那么麻烦去学Spring呢?

    简单来说:如果你不知道学习某项技术是干嘛用的,那先不要学


    如果你是零基础学习Java并理解力不是爆棚的话,我建议以视频学习为主。

    可能你会看到这样类似的言论:

    • “看视频学习太慢了”
    • “直接看源码啊,源码就是最好的解释”
    • “有问题直接Google啊,用什么百度”
    • “最好的资料是官网文档”
    • .....

    但是,那都是对有经验的人或者高智商的人群来讲的。

    如果是零基础普通人,看视频学习/看不懂源码/用百度/看中文博客来学习不丢人

    ps:如果看的视频讲师的语速不是特别快,建议以1.5或者1.75倍速观看。

    1.1 关于视频资源

    我在学习Java的时候也收集了很多的视频资源,并不是每个都有看过。只是在混群的时候发现有人发了,就复制下来整理一下罢了。

     

     

    其他的视频资源:

    • B站:(bilibili.com)一个神奇的网站。如果你想看哪个视频,可以先搜一下B站有没有。
    • 慕课网:(imooc.com)里头也有挺多的视频资源。
    • 公众号/混qq群/微信群:不少人手里都有几t的资源,如果跟群友的关系不错,一般都会免费给你发的
    • ......

    1.2 学习Java基础

    零基础学习Java的路线我简单总结为以下:

    • 首先去官网下个JDK,按现在常用的版本JDK1.8就够学习了
    • 随后去下载现在Java常用的编辑器IDEA(也可以用eclipse,但现在IDEA的确是好用)..
    • 1.5/1.75倍速观看Java基础视频(以刘意为例)

    刘意视频

     

    在学习Java基础时,我简单来说一下什么东西可以不碰

    • &^|位运算符,++ii++类似这种绕死人的语法
    • 内部类
    • AWT,SWING编程
    • 注解

    需要深入理解的知识点:

    • 流程控制
    • 面向对象的概念
    • Java语法
      • this指针、重写和重载、final、static等等这些基础的东西
    • 集合(包括泛型)
      • 常用的集合类
    • IO流
      • IO流代码的编写
    • (理解这些知识点,能够在有提示的情况下码出代码,但不要为了一些细节钻牛角尖)

    简单过一遍的知识:

    • 异常
    • 多线程
    • 网络编程
    • 反射机制
    • (你得知道这个知识点是干嘛用的,为什么要学这个知识点,能看懂具体的代码!)

    对于上面所说深入理解的知识点,我个人是非常建议在学习期间写笔记(博客)的。如果你想写笔记的话,最好直接就用markdown语法来编写,而不是用word/简单的记事本。

    markdown语法非常好学,几分钟跟着就可以学习了,几乎所有的it博客网站都支持markdown

    如果喜欢画思维导图的,我这里推荐processOn就可以了。无需下载Xmind这么麻烦了:

    有的时候并不需要使用IDEA打开一个.java或者.xml这样的文件,可以使用notepad++记事本:

    学会科学上网和使用Chrome浏览器,比如说下载拦截广告插件,英语翻译插件

    虽然是快速学习Java,但学完上面的估计得一个月了(:..

    一个月发现都是面向控制台编程(console),输入输出一些数据来玩。

    控制台

     

    期间可能就学习IO的时候可以复制文件,修改文件名有点意思。但好日子就要来临了

    1.3 学习Java Web基础

    首先我们可以学习一下Web前端的知识(此部分都简单过一下就好了)

    到目前为止,学完上面这些可以搭建“能看”的静态网页了。曾经看过一段话来总结上面的技术:

    • HTML是名词,CSS是形容词,JavaScript是动词

    随后学习JavaWeb的路线如下:

    • Tomcat(简单过一下)
    • XML/注解(简单过一下)
    • Servlet(重点理解)
    • HTTP协议(重点理解)
    • Filter过滤器(重点理解)
    • Listener监听器(简单过一下)
    • JSP(简单过一下)
    • AJAX、JSON(简单过一下)

    Servlet知识点

     

    基于上面的学习,起码已经可以使用request对象来接收前端发送过来的数据,使用response对象将Java后端的数据返回给前端,使用Filter拦截器来处理中文乱码问题(Tomcat默认的编码是ISO-88591)。总的来说已经可以实现前后端交互了

    1.4 学习数据库

    数据库这里指的是关系型数据库,一般我们以MySQL来入门就足够了。

    在学习期间,其实很多时间都耗费在配置环境上面,比如我之前安装JDK,安装MySQL,安装Oracle就耗费了不少时间。后来我也将其写成博客,需要重新安装的时候翻一下博客就好了。

    主要学习SQL的基本使用吧:

    • 创建表(create table)
    • 增删改查(insert,delete,update,select)
    • 对于存储过程、触发器这些了解一下即可
    • 对于索引、锁后面再学(此部分很重要,但以快速入门来说,可以先不看)

    MySQL基本语法

     

    1.5 学习Java连接数据库(JDBC)

    到这里,我们Java Web、数据库、Web前端的基础都已经基本学完了,但此时Java和数据库是相互独立的。我们想要以程序的方式来对数据库的数据进行操作,那就要学习一下Java连接数据库(JDBC)。

    JDBC这项技术并不难呀,就是模板代码,来来去去就几个步骤:

    • 导入MySQL或者Oracle驱动包
    • 装载数据库驱动程序
    • 获取到与数据库连接
    • 获取可以执行SQL语句的对象
    • 执行SQL语句
    • 关闭连接

    由于这些代码可能会重复出现,那我们可以学习一下DbUtils这个组件:可以帮我们减少编写JDBC的模板代码。

    1.6项目管理和框架的学习

    经过上面的学习,已经是可以在本地写一个Web项目了。

    • 页面框架使用BootStrap/Materialize框架来搭好
    • 请求处理交由Servlet,返回的数据可以通过AJAX或者使用JSP,DAO层可以使用DbUtils。
    • 数据保存在MySQL中

    为了让写代码变得更爽,我建议用半天学一下Maven(项目管理工具),用几天学一下SpringBoot

    • 从Servlet直接跳到SpringBoot可能有点难理解,但多搞几天我相信还是可以的..

    1.7Linux学习

    最后,我们在本地上写完的项目想要让其他人都看得见,一般都会部署在Linux环境下的。(此部分的学习可以等到将项目写完,想要部署项目才学习)

    我是不推荐使用虚拟机再搞Linux的,直接买一台方便很多

    • 如果是学生的话,一个月的学生版也就10块一个月。
    • 如果是转行的大哥话,现在阿里云双十一有优惠,买起来就很便宜了。

    优惠链接:m.aliyun.com/act/team111…

    总结

    总结一下我认为学习Java的路线:

    • Java基础-->流程控制-->面向对象(包括Java语法)-->Java集合-->Java IO流-->异常-->多线程-->网络编程-->反射
    • JavaWeb基础-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter过滤器和监听器-->JSP-->AJAX/JSON-->数据库(MySQL)-->JDBC和DbUtils
    • 项目管理和框架-->Maven-->SpringBoot
    • Linux基本命令

    最后我们的项目是这样的:

    • 以Maven来管理我们的项目
    • 前端通过BootStrap来搭建页面框架
    • SpringBoot来搭建Java后端环境,SpringMVC处理前端请求(SpringBoot整合了)
    • DAO层使用DbUtils组件来完成,MySQL作为数据库

    当然了,我的Java路线不一定就是对的,我这里只是给出一种路线。

    再次说明:这套路线是以“快速”学习Java的,如果你想要找到一份好工作,上面的知识点是不够的

    我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

    参考:

    展开全文
  • 牛人如何学习JAVA

    2010-07-07 16:39:00
    电脑里面 存了好久了,舍不得删,存到这里吧 如何学习java(一)最近论坛上看到好几个朋友都在问,如何学习 Java的问题,“我已经学习了J2SE,怎么样才能转向J2EE?”,“我看完了Thinking in Java, 可以学习J2EE了么?...

      电脑里面 存了好久了,舍不得删,存到这里吧

     

     

     

    如何学习java(一)
    最近论坛上看到好几个朋友都在问,如何学习 Java的问题,“我已经学习了J2SE,怎么样才能转向J2EE?”,“我看完了Thinking in Java, 可以学习J2EE了么?”。于是就有了写这篇文章的想法,希望能帮助初学者少走一些弯路。也算是对自己几年来学习Java的一个总结吧。

    在开始之前有必要再讨论一下J2ME,J2SE,J2EE这些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2SE,Java 2 Platform,Standard Edition,我们通常所说的JDK(Java Development Kit)包含在此,是J2EE的基础。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java。这些只是从API级别上的划分,实际上Sun给J2EE的定义是:开发基于组件的多层的企业级应用的规范。也就是为各种不同的技术定义一个Java的规范,使这些不同的技术结合起来,在Java平台上构建强壮的企业级应用。从这一点来看,J2EE这个概念应该是涵盖J2ME,J2SE的。比如一个典型的J2EE应用,网上商店,它支持web方式下订单,也支持手机下订单。显然必须用到J2SE,J2ME。所以也就不存在所谓的从J2SE转向J2EE的问题了,只是后者包含的范围更广而已。


     


    来看看Sun给出的J2EE 相关技术主要分为几大块。

    1. Web Service技术

    -  Java API for XML Processing (JAXP)

    -  Java API for XML Registries (JAXR)

    -  Java API for XML-based RPC (JAX-RPC)

    -    SOAP with Attachments API for Java (SAAJ)


     


    2. 组件模型技术(Component Model Technologies)

    -  Java Servlet

    -  JavaServer Pages

    -  JavaServer Faces

    -  Enterprise JavaBeans

    -  Java Message Service

    -    J2EE Connector Architecture


     


    3. 管理技术(Management Technologies)

    -  J2EE Deployment Specification

    -  J2EE Management Specification

    -  J2EE Client Provisioning

    -    Java Authorization Contract for Containers


     


    4. 其他相关技术(Other J2EE Technologies)

    -  JDBC

    -  Java Data Objects (JDO)

    -  CORBA (Java IDL and Java RMI-IIOP)

    -  JavaMail

    -  Transactions

    如此之多的技术难免使初学者无所适从,望而却步。即使是一位经验丰富的J2EE开发者,又有几个人敢说J2EE相关的技术我都熟练掌握了。不过作为一名普通J2EE应用程序的开发者来说,我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数,哪天需要用到了知道跑哪里去找到资料就行了。以我个人的观点,下面这些技术是一般J2EE应用开发人员所必须熟练掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。还有JAXP等XML相关技术,Java Message Service,Java Mail,JDO等等是最好应该掌握的。其他Management Technologies,Connector Architecture等等主要是给容器提供商中间件提供商参考的,应用开发者不需要怎么关心,等用到了再去学习也不迟。


     


    语言学习篇

    首先是J2SE基础。学习一门新技术,无外乎阅读和实践了。而一本好的参考书对于初学者来说显得格外重要。现在市面上的 Java书籍可以说是铺天盖地,质量也是良莠不齐,令初学者无所适从。所以还是先推荐几本书籍吧。目前对于Java基础知识,大家一般都比较推荐两本书,<<Thinking In Java>>和<< Core Java? 2, Volume I: Fundamentals >>。第一本书不必多说了,Bruce Eckel的大作,Jolt获奖书籍。内容比较全面,基本涵盖了java语言的方方面面。这本书提供了相当丰富的例子,非常有利于对学习内容的了解。另外书中第一部分对于OO基本书籍的介绍,我觉得对于刚接触OO的人来说帮助会很大。而且此书是Open Source的,可以从作者网上下载http://www.mindview.net/Books/TIJ/而对于习惯于读中文版的学习者来说,侯捷翻译的中文版是不错的选择。要说这本说的缺点可能就是对于初学者来说厚了一点,这也是一些人并不推荐此书作为初学者学习用书的原因吧。后面一本<<Core Java? 2, Volume I: Fundamentals>>,目前已经是第七版了,单从它出版的次数来看也可以看出此书受欢迎的程度,这本书特点也是讲述比较全面系统,基本上一路啃下来的话Java语言基础应该算过关了。缺点也是太厚了,有点像参考手册,前面部分花了不少篇幅讲Swing和Applet,可能对初学者不是很有用。还有一些像<< Java in a nutshell>>也是比较不错的基础书籍。

    学习了基本的语言基础,别忘了最重要也是最有用的资料还是JDK文档。从你学习java的第一天开始JDK文档应该是常备手头了。如果你碰到问题首先想到的是到论坛上去提问而不是查阅Jdk文档,那先别继续往下学习了,学会查JDK文档先。不夸张的说在我们的初学者论坛中60%的问题是光查一下JDK文档就能解决问题的。最新JDK Documentation下载地址http://java.sun.com/j2se/1.4.2/download.html(目前最新版是J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp)不能光说不练,同一下载页面把JDK给下载回来。安装完后有一点我想提一下,安装路径下有一个src.zip(有些jdk版本是src.jar),好东西啊---JDK源代码,老是有人在论坛上问哪里有JDK源代码下载,你说东西就放在你家里还到处找。有了这个有些问题就需要在论坛上跟人家争来争去了,翻开源代码瞧一下什么疑问都没有了。几个最重要的命令行工具是

    javac:           编译源文件到class文件

    java:             运行class

    jar:               打包工具。

    javadoc:        生成java doc的工具。

    对于初学java的人来说,我不推荐使用IDE而直接用文本编辑器,然后用命令行编译运行。这样有利于理解CLASSPATH,PATH这些最基本概念。CLASSPATH是初学者比较容易感觉迷惑的地方。现在的IDE太聪明了,给个名字就给你自动生成java source code,自动编译。可能你运行完了你的第一个Hello World程序,还不知道java和javac是用来做什么的。至于实际的项目开发,一款合适的IDE还是十分重要的,我们稍后再对java开发工具做一些介绍。

     


    如何学习java(二)
    J2EE基础和Java语言进阶

    学习完语言基础,就可以比较自然地转入J2EE实际技术的学习了。J2EE实在是比较庞杂,而EJB,Servlet,这些核心技术是作为每一个J2EE开发人员所需要掌握的。关于servlet,我比较推荐<<Core Servlet and JSP 2Edition>>和<<More Servlets and Java Server Pages>>,第一本是Sun推荐的Servlet教材。第二本是当年Amazon最畅销Java书籍,五星级书籍。这本书机械工业出版社有中文版叫<<Servlet 与JSP权威指南>>,感觉翻译得还可以,第二版好像还没有看到有中文版。两本书都全面系统地介绍了JSP和Sevlet知识,从web服务器配置,JSP,Servlet基本编程,标记库(Tag Lib),过滤器,事件框架都有很好地描述。提供地例子也比较实用。对于EJB学习,比较著名有两本书,<< Enterprise JavaBeans, 3nd Edition>>和<< Mastering Enterprise Java Beans Third Edition>>,两位作者Richard Monson,Ed Roman都是属于业界重量级人物。而Richard Monson本身就是EJB规范专家组成员。对我来说,两本书难分优劣,第二本书有个好处就是可以免费下载http://www.theserverside.com/books/wiley/masteringEJB/index.tss

    还是那句话,不能光说不练,不过J2EE的练习做起来有一点麻烦,应用服务器是不可少的,最好还得准备个轻量级的数据库。下面简单介绍一下这些工具。

    web服务器(Servlet Container)方面有。

    Tomcat:          http://jakarta.apache.org/tomcat/

    Jetty:              http://jetty.mortbay.org/jetty/

    应用服务器常用的有,

    Jboss:            http://www.jboss.org/products/index

    Weblogic:       http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/server

    WebSphere:    http://www-128.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&S_CMP=DLMAIN

    Tomcat,Jetty,Jboss都是Open Source。Weblogic和WebSphere是J2EE服务器中的老大级人物,价格也不菲。不过对于开发者有免费的试用版下载。

    如果单单只是学习Servlet,推荐使用Tomcat,它是Sun官方指定的Servlet,JSP规范的参考实现。对初学者最重要的是它使用比较简单,自带文档比较齐全,使用者众多,有什么问题容易在论坛上面得到帮助。如果学习EJB的话,推荐使用Jboss,不仅仅是因为它是Open Source的,主要是配置比较简单,使用方便。比如说对于连接数据库,对于常用的MySQL,Oracle,MS SQL等等都提供了Sample Config文件,直接拿过来做些小改动扔到Deploy目录下就可以用DataSource了,部署J2EE应用也简单,把整个.ear或者.war扔到deploy下就可以了。唯一不方便的地方是从Jboss3.0开始,它的文档开始收费了。但是对于一些基本的配置,在网上还是非常容易找到的,毕竟它太流行了。至于Weblogic,也比较容易使用,不过比起Jboss来个头大了很多,通过强大的管理界面使得一些常用的配置工作变得十分简单。和Jboss比起来它的文档就太多了,简直是有点罗里八嗦,比如要部署一个.ear文件,一般我们也就是直接扔到domain下的applications目录下就会自动deploy了,但是要看它的文档可是长篇大论,容易吓着初学者,以为这又是什么高深的学问。至于WebSphere,个人不推荐初学者使用,相比前俩个Server比较难使,而且狂吃内存。不过在企业级市场这个家伙表现不俗,毕竟是出生于IBM这样的豪门。

    数据库方面,目前常见的主要有PostgreSQL,MySQL,Oracle,MS SQL,DB2等等。前面两个是开源数据库,后面几个基本上垄断着大部分的数据库市场。对于初学者用来做做EJB,JDBC的练习,我推荐MySQL,理由还是很简单,开源软件不要钱,个头小使用方面,用户众多文档齐全。下载地址http://www.mysql.com/products/mysql/。PostgreSQL也可以考虑,不过国内使用者远不如MySQL多,所以要在论坛上问起问题来就少方便一些了,下载地址http://www.pervasive-postgres.com/downloads/。至于后面那些比较重量级的数据库,为了做做练习而言就不用考虑了, 咱也花不起这个钱啊。

    学习完J2EE的这些具体技术,这个时候进行基本的J2EE开发应该是不成问题了。此时应该考虑提高自己的代码质量了。这里我强烈推荐Martin Fowler的<<Refactoring: Improving the Design of Existing Code >>,这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量,从具体地代码中告诉你什么是代码的Bad Smell,如何去掉这些Bad Smell。不少书评是这么说的,这本书对于初级,中级的读者帮助是立杆见影的。至少就我接触到的几个学习编程不久的程序员,编码质量在短期内都有很大提高。当然重构(Refactoring)这一概念并不只针对Java语言的,它对所有OO语言都是适用的。重构的概念是如此深入人心,以至于今天几乎所有流行的IDE工具都有对重构的支持。这里我还想再推荐一本<<Effective Java>>。从C++过来的程序员都知道<<Effective C++>>在C++领域的地位,至今还流传着这样的趣话,C++程序员分为两种,一种是读过<<Effective C++>>的,另一种是没有读过C++的。虽然这本<<Effective Java>>在Java领域的影响也许没有那么大,但对于Java程序员绝对有相当的指导价值。作者是Sun公司的Joshua Bloch,java Collection framework的设计者。作者站在JDK设计者的角度向你介绍他的Best Practice,应该这样做而不应该那样做,对于JDK中某些API设计的缺陷他也毫不袒护的指出。Java语言之父James Gosling为此书写的前言是这么说的“I sure wish I had had this book ten years ago。 Some might think that I don't need any Java books, but I need this one”。这本书会让你觉得原来你对Java还是有很多东西不了解的。举个例子来说,对象的equals方法,我们认为它很简单,也许你每天都在为你新写的Class重载这个方法,但是你在重载的时候注意过“自反”,“对称”,“传递”这些必须要考虑的因素,你是否同时还小心谨慎的重载了hashcode这个方法?如果没有,建议你要读一下这本书。读完这本书,你会觉得离Java的距离更近了。上面两本书都出过中文版,后面一本<<Effective Java>>还有两个版本的中文版,第一次翻译的比较差一点,后来机械工业出版社又委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社连续被翻译了两次也说明国内出版界对这本书还是比较重视的。

    这个阶段,在看书的同时,可以结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。实在太懒也别忘了手头上还有个Jdk的源代码。其实也不用刻意去找源代码,在实际的J2EE项目开发中,基本上都会用到一些优秀的开源项目。Framework可能会用到Spring,Struts,Log机制基本上都会JarkartaCommons Log或者Log4j,单元测试会大多会用Junit,结合项目阅读一下其中的一些源代码,既可以提高自己又对项目会有所帮助,说不定因此而得到PM的赏识呢。一举两得,何乐而不为呢。呵呵,有点扯远了。过了初学者阶段,该学会如何找到适合自己的Java书籍了。历经数十载,今天的Java技术已经变的如此之庞杂,我相信即使穷净一个人毕生之精力也不可能把Java所有的相关技术都学通,何况新技术还在层出不穷地推出,3年之前谁会知道Struts会成为Web框架事实上的工业标准。2年之前谁会知道Hibernate会在今天独领风骚。既然已经不能指望一次性把java技术的方方面面都学个通,在实际中也只能是需要什么技术再学习什么技术了。而能否选择一本好的参考书籍带来的就是事半功倍和事倍工半的效果。所以我觉得花点时间放在选择书籍上面还是很值得的,否则你在后面只会花更多的时间。下面我谈谈自己选择书籍的一些经验,不一定正确。首先看作者,像上面提到的那些书的作者,都是业界鼎鼎大名的,选择他们的书一般错不了。大家看的书多了,自己胸中自然也会有一个list,哪些作者是信得过的。二看出版社,计算机书籍方面,Oreilly,Addison-Wesley都是公认比较好的出版社。对于目前比较流行的Java技术,Oreilly的<<XXXX  in  Action>>系列是不错的选择。另外我还会去看看Amazon网站(http://www.amazon.com/)的书评,一般小于3星级的书我都不会考虑。还有一个好去处theserverside,http://www.theserverside.com/的书评,这里的书评比较有趣,往往都有很激烈的争论,里面经常会看到一些名人在发言。我要向所有Java学习者推荐,如果我的收藏夹里面只能存放两个网站,我会选择java.sun和theserverside。在这里你可以了解最新的Java动态,可以学习第一手的Java资料,可以看到Java高手们(里面不乏业界大腕)激烈辩论。

    到此阶段,Java Developer的基本功底应该算是打好了吧,往后就是不断学习喽。结束这一段之前,最后再介绍一本书Oreilly的<<Java Threads, Second Edition >>,因为我觉得多线程编程属于Java基本功,每一个想学好Java的人都应该好好掌握。


     


    提高篇

    在这个阶段应该从软件架构,Framework层次上来学习了。作为面向对象的圣经<<Design Patterns>>, 这本书是不得不推荐的。不用再多说了,这本在面向对象领域地位完全是属于教父级别的。不管你学习的是什么OO语言,不管你现在是用.Net还是J2EE开发,这本书都是你进阶之路上的必读之书。而<<Core J2EE Patterns>>则专门针对于J2EE来讨论设计模式,书中Sun Java Center的资深设计师描述了J2EE关键技术的模式。最佳实践,设计策略和经过验证的解决方案。对于每一个希望成为J2EE 架构师或者设计师,这本书值得一读。学习设计模式的时候,建议是结合实际的源代码来看,比如看看Junit源代码,你可以看到很多设计模式优雅的实现,作者之一Erich Gamma本身就是<<Design Patterns>>的作者。至于J2EE的设计模式,Sun还开辟了专门的空间http://java.sun.com/blueprints/patterns/,里面有对常用模式的讨论又提供了详细的源代码样例。正如Grady Booch所说,模式对于普遍问题提供了通用的解决方案,利用模式就等于拥有一个强大的专家队伍。如果你还没有学习,现在就开始吧。此外对于面向对象方法论,极限编程的思想也应该有所了解http://www.extremeprogramming.org/。对于J2EE项目的具体实施,Rod Johnson的<<Expert One-on-One J2EE Design and Development (Programmer to Programmer)>>也很有价值,该书以作者丰富的实战经验向我们展示如何用尽可能简单的解决方案构建J2EE 应用,书中作者第一次提出这样的观点,很多时候,J2EE应用完全没有必要用到EJB,对于言必称EJB的广大J2EE开发者来说,怎么说也有点惊世咳俗的味道。当然,作为Servlet和JDO两个专家组的成员,这可不是作者信口胡驺的。今天风靡Java世界的Spring框架最初便是源于此书,而IOC,AOP等概念更是被时下的java开发者挂在嘴边。最后,作为对Java的深入学习,Java技术的各个Specification也有必要一读。暂时就写到这里吧。

    展开全文
  • java零基础学习 如何学习

    作为一名做Java10年以上的人。我来说说吧,希望能给大家带来点帮助,如果有不同意见的大家一起来讨论,总之,希望大家可以共同进步。废话不多说了。进去正题。

    学习Java呢如果你学过别的面向对象的语言那么通过类比我觉得你一定学起来比较轻松,当然了我们这里就从什么语言没学过的小白说起。


    首先来给大家推荐几本参考书。

    一、
    当初java入门的时候看了一些书,现在想起来特别喜欢  
    java核心编程技术,有些人推荐thinking in java,说实话,没有2~3年经验看的都会头大。读起来的感觉就是不一样。强烈推荐!!
    这本书我推荐对面向对象编程和其他计算机语言不熟悉的初学者,通俗易懂,讲的全是基础,不会让你被那些繁多的类,方法啥的弄的失去兴趣,因为里面全是基础大家认真看完即可。。。强力推荐这本。
    还有一本书也可以看看:疯狂Java 作者:李刚
    这本书讲的确实很细,建议下载PDF,但是量非常大,建议大家分开看


    二、
    在读上面两本书的同时我建议你多看点网上的博客、论坛等,也可以咨询我本人。。网易公开课计算机体系里的Java教学,慕课网里的教学。
    我想说的是这些视频最好是看一个老师的(是哦,也就是主要跟着一个老师的思路和顺序走,其他老师的作为不同角度的掌握),假设这个老师是A,听完课后如果觉得A讲的这节你不是很懂,那么一定要去看B老师讲的这节的内容,如果还不懂那就看C讲的的这节,D,E,F老师同理。。*****强烈建议!!!!看视频一定要做笔记!!!不然看了也白看,除非你有过目不忘的才能。


    三、
    硬件的东西说完了接下来我们就来聊聊方法,首先Java是一门语言,然后语言是用来和计算机沟通实现一定的功能,也就是说,语言是为需求而生滴。。所以你必须先有一个需求,比如你想用Java编写一个小游戏,那么你的初级阶段的学习就该是为了实现这个目标不断奋斗,兴趣使然嘛这样你就不会觉得累枯燥
    (当初我学Java就有一个。。。特别奇怪的开始,记得那是一个夜黑风高的寒假,我姑姑家有一家店门相当于超市吧,啥都卖,过年特别忙,于是乎我被拉去当苦力,摆在我面前的是。。有无数程序的结账抄写过程,需要人力暴力操作。。我受不了了,开学我就开始学JavaAWT和SWING编程,第二个假期回家编了个界面程序给它,量身定做解决他的一切需求)额,说了这么多我只是想说要有明确的目标知道你要干啥,在干啥。


    四、
    学习初期你肯定会有千千万万个问题,心里有无数疑惑,这时候千万不要急躁,不要放弃。解决方法应该是,有疑惑尽量请教别人,如果你觉得怕麻烦别人,那么请你去翻书,我建议不懂的地方要多看几本书的这个知识点,因为老师不同讲解的思路角度也不同,就像买鞋,一定有一款适合你。如果你懒到书都不想翻,那么没关系,你就把这点疑惑完全的一字不落背下来。多思考,有那么一天,往后走着走着你就会发现前面豁然开朗。


    五、
    最后也是最重要的一个就是代码量。。一定要多敲,不要眼高手低。。往往敲代码的时候你才可以发现问题。。我始终相信一句话,泪水和汗水这类东西,如果你流多了上天它自然会给予你一些东西来作为交换的礼物。。贵在坚持,忘记了在哪里看到的一句话,如果你的耐力和野心不相匹配,那么你最多也就是一个笑话。

    额,我知道的只有这些了,说了这么多答主也每天在学习,希望大家一起讨论,说的不准确的多多包涵。。感谢看到这儿的人,费着这么大的劲读完,大家辛苦了。。。原谅答主语文不算特别好。。大家加油,为做一个充满幸福感的码农奋斗。

    学习有困难不知道该怎么去做的可以加扣:383916038或者加群:124641573。进行交流同时得到大神的指导和帮助。

    展开全文
  • 当然,大部分人都是在问我怎么学习,自己不知道怎么了,让我出个主意啥的,真正讨论问题的并且加了我好友的,大概只有两个吧。因为总有人陆陆续续的加我并且问我怎么学习啊啥的,一个一个回复

    最近一直在重新学习java的基础,也写了一系列的博客(重新认识java系列)。很荣幸得到了许多同学的反馈。其中有许多人是初学者,来问我一些问题,也有一些是已经有过一定的基础,看了我的博客,也有了一些新的认知,来和我讨论。当然,大部分人都是在问我怎么学习,自己不知道该怎么学了,让我出个主意啥的,真正讨论问题的并且加了我好友的,大概只有两个吧。因为总有人陆陆续续的加我并且问我怎么学习啊啥的,一个一个回复同样的内容我觉得没有什么必要,所以在这里总结一下,方便自己也方便大家。

    前排提示:我不是什么大神,有n年经验的大牛。我只是一个在校本科生。不保证我说的都是对的,但是我所说的,都是我自己的亲身经历。不保证对所有人都适用,具体情况,请大家自行斟酌~

    java的方向

    有一些初学者在学java,但是却不知道学了java可以做什么。我来粗略的总结一下。

    做桌面程序

    桌面程序,就是我们平常使用的客户端。由于java是一门跨平台的语言,所以用java写的桌面程序天生就是跨平台的。但是,不得不说,awt和swing做一个桌面程序实在是太痛苦了,javafx也不咋地。所以,除非你神经大条或者只是想学习了解一下。不建议这条路。

    做游戏

    在我的印象里。。用java写的游戏只有mc。。。我知道肯定还有别的,但是应该都不怎么出名吧(也有可能是我孤陋寡闻)。所以,很明显,这也不是一条有前途的路,除非你也能写个mc出来。现在做游戏还是c++,lua,js,c#多一点吧。讲道理我也不太熟,但是我知道,用java写游戏不靠谱。

    写服务端

    这是学java的三个最好的选择之一。现在大型的网站基本上都是用java写的。虽然现在服务端百花齐放,php,nodejs,go,ror,python都在抢这一块的饭碗,但是java还是有很大的竞争力的。不信?bat现在在春招,你去看一下岗位,都有招java的,但是其他的呢?反正我是没看到。。

    当然,我这不是在说java无敌,宇宙第一,而是说,java在服务端的前景还是很好的。

    唯一的不好就是,学的人有点多,初级程序员满地跑,没有一定的实力还是不怎么好混的。不过,我感觉现在java服务端找工作还好。。反正我找个实习两天就找到了(大概是我要求不高。。)

    android

    这个就是最好的选择之二了。不多说了,有google爸爸支持,android未来n年还是死不了的。虽然现在也可以用kotlin开发,google也在推自己的dart语言。但是java的地位还是无法撼动的。

    遗憾的是,听说最近android不怎么好找工作。当然,我只是听说,毕竟我不是专业的。

    嵌入式

    n年前,还是直板手机的年代。我记得有的手机支持java。。可以安装后缀为.jar的软件。当时觉得这种手机牛比的不得了。因为我在用这种手机之前一直在用辣鸡国产,那种叫斯凯平台的?忘了名字了,反正用键盘输入*#220807#,就可以召唤神龙的那种手机。。。。

    扯远了,当时那种支持java的手机,就是使用的一种叫做javame的技术。javame就是一种轻量级的java,可以在移动设备(手机,汽车车载设备,机顶盒什么的)运行java程序。

    不过现在javame差不多也死绝了吧,不清楚。。反正我没接触过,哈哈哈。

    大数据

    这是最后一个我推荐的方向。都说现在是数据时代。各种大数据技术层出不穷。目前处理大数据的技术有python,java,R等。虽然说java没有绝对的优势,但是也是一大霸主。不服?hadoop就是用java实现的,还用多说什么么?

    要学习什么内容

    先声明一下。我接下来的建议,都是针对在校的大学生或者有充足的时间的转行的人的。对于那些想要快速转行,然后找到工作的可能不是很合适,因为我的建议或者说经验是需要很多时间的。

    首先,不管你以后选择什么方向。基础永远都是最重要的!!!不要觉得自己看了一套视频,或者看完一本入门的书,能写个简单的代码就叫学会了。你还差的很远。工作好几年的人也不敢说对java基础了如指掌。所以,巩固基础不分时间段,你的职业生涯的任何时刻,都应该巩固基础。并且,基础不只是java的知识,还有一些基本的算法,数据结构,计算机网络,计算机组成原理等。

    所以,第一要学的,是基础!(要不断的学)

    其次,现在互联网每天都在不断前进。无论是网站还是app都需要有服务端才能运行的起来(单机的和静态网站还是不多的)。所以,不管你以后会不会从事java后台的工作,我觉得了解一下还是很有好处的。而且,一般的大学应该也会开javaweb这门课吧。

    所以,我觉得每个学java的人,在时间充足的情况下,可以去学习javaweb。当然,如果你本来就是想往这个方向发展的,那就更不用说了。

    最后,我推荐大家了解一下大数据。为什么呢?现在是一个大数据的时代,无论你是否要往这个方向发展,多了解一些总是有好处的。分布式文件系统,分布式数据库,负载均衡等前沿技术多接触接触总是好的。

    所以,我也建议大家可以多了解一些大数据方面的知识。

    当然,以上是我个人的见解。每个人都应该有各自的人生规划,你也可以按照自己的规划来。

    怎么学习

    其实,我主要是想说这一部分。每个人都有自己的学习方式,我来分享一下我的。

    大一

    这个时候,刚刚接触计算机,你可能什么都不懂,听课也是一脸懵逼,什么for循环,if语句,恶心的不得了。这个时候你要做的不是抱怨,而是去努力的寻找乐趣。因为你已经入了这个坑了,除非你转专业,否则你是摆脱不了它的。

    怎么寻找乐趣呢?我觉得,编程最大的魅力,就是当你成功的时候的那种发自内心的成就感。不知道大家还记不记得第一次写helloworld的时候,各种出错—分号写成中文的了,大括号少了一个—但是最后终于成功的输出了结果的那种喜悦。

    对于一个刚刚接触编程的人,我觉得,写游戏是最容易获得成就感的。这里给大家推荐一个之乎专栏— 做游戏,学编程(C语言)。专栏的作者,通过让一些学生做游戏来学习c语言。我觉得这个一个很好的学习方式,即有挑战性,又可以培养出成就感。

    大学的入门语言差不多都是c或者c++吧。。如果不是,你也可以参考一下专栏里的小游戏,然后用你自己的语言试着写一下。

    但是,我要重点说的是。写游戏其实是一件很有挑战性的事。有的人也许会在一开始就陷入困境,不知道如何继续下去。这个时候,如果你能坚持下去,多问问老师,学长,百度,google,把问题解决,那你以后肯定会很优秀。如果你放弃了,不要灰心,因为并不是所有的人都适合通过游戏来培养兴趣,你也可以通过做一些acm的题来提高自己。每个学校应该都有相关的网站吧。如果没有的话,可以去浙大的看看。(来我们学校的也行。。。http://cpp.zjut.edu.cn 或者 http://acm.zjut.edu.cn) 。做一些自己能力范围之内的题,也可以提高自己的兴趣。

    当然,这些只是针对一部分同学,毕竟很多人其实对代码无感。。根本耐不下性子去写代码。对于这部分同学,我建议去学习html 和 css。因为它们入门超级简单,是用来写网页的。没有c语音那么复杂的逻辑,几个标签,几个css就可以设计出一个精美的网页,我想这也会很有成就感吧。


    大一的这一年,是打基础,培养兴趣的一年。不需要你有多么大的成就,写出多么厉害的程序。只要你能够培养出兴趣,并且愿意在编程这条路上走下去,那么你的任务就算完成了。

    所以,这一年,你要做的,就是培养兴趣,让自己爱上编程(最基本的要求)。

    大二

    假设你现在已经喜欢上编程了。但是一般大一只会学一门语言(默认c/c++,不要问我为什么,因为我就是这么学的。。)。所以你可能只是写了几个小游戏,写了个小管理系统或者刷了一些题。你不满足于现状,你想做一些更有意思,更好的东西。同时,这个时候,学校应该也开了java课了。(如果没开,你就自学。毕竟这篇文章讲的是java,主角再不登场就没有多少露脸的机会了)。

    写在前面:大二要做的,是拓宽你的广度!!!广度!!

    首先,你要好好学java。可能学校的进度是一个学期。但是我建议大家用一个月的时间学完。因为有了c和c++的基础,java其实很容易就学会了(入门级学会)。更好的情况是,你在大一结束的那个暑假,就抽时间先搞定java基础。这样当开学的时候,别人还没接触java,而你可以骄傲的和别人说,你都学完了。成就感满满的。

    那么,怎么学java基础呢?我的建议是视频为主,入门书为辅,自己跟着写代码。

    看书其实是一件很枯燥的事情,如果你初学java,只是看书的话可能配置一个环境变量就要搞好久,这会打击你的自信心。不要小看配置环境变量这个过程。我记得当时两天配不好环境变量最后让我帮忙的人可不少。但是视频就好多了,因为老师会亲自演示给你看,你会少走很多弯路,并且也比书有趣多了。

    书为辅,是因为老师不可能记得所有的知识,总会有疏漏的地方或者讲得不太好的地方,这个时候 书就可以派上用场了。看完一节课的视频,然后关掉视频,自己写一遍相应的代码,出错了自己先试试能不能解决,是在不能的话,再看一遍视频,直到跑通。然后去看看书里对这部分知识的讲解,加深印象,查漏补缺。

    这里的重点是,一定要自己写一遍代码。你看的时候觉得自己会了,可是大部分时间,你一写全是错误。所以一定要自己写。并且,在你初学的时候,不要使用编译器(eclipse idea NetBeans等),就使用notepad++这种类型的编辑器就可以。

    这套流程最大的缺点就是耗时比较久,但是效果是很好的。java里有很多都和c/c++一样的,比如一些语句什么的,如果你已经掌握的很好了,直接忽略掉这些也是可以的,这就看你自己的情况了。

    推荐一些学习资料(后面会给出)。

    • 视频: 毕向东,马士兵,韩顺平的视频都挺好的。口碑也都不错,不信可以自己去百度一下。我看的毕向东的,讲的挺有趣的。但是每个人口味不一样,你可以多下载几套,都听一下,然后选一套自己喜欢的。

    • 书籍:入门推荐《head first java 》。head first 是一个系列,这系列书最大的特点是图文并茂和案例驱动,让读书的过程不那么的枯燥。《疯狂java讲义》据说也挺不错的,但是我没有看过,不做评价。

    • 编辑器推荐:notepad++ 免费,小巧。初学者够用了,直接百度下载就好。sublime , vs code, atom 也可以,挑一个自己喜欢的就好。

    一个月,干掉java基础!这是你大二首先要做的事。

    前面说过,这一年,你要做的是拓宽自己的广度。什么意思呢?就是说,你要尽可能的去多接触一些技术,多学一些知识,因为你以后很难再找到这么多你可以自由支配的时间了。

    java基础搞定。接下来,学习java web。

    你要知道,优秀的人永远都走在大部队的前面。不要学校安排什么你就学什么,学校不安排你就不学。事实上有的老师讲的不是很好,大学里真正有用的知识,都是自己学的。所以,接下来要做的是自学java web。

    依旧是视频+书+写代码。

    java web更重要的是实践。我当时学的时候的书就是学校的教材。。我是基本没看书的。就跟着视频一步一步来,有问题就google。在大二上学期结束的时候,完成javaweb的学习。

    因为需要和前台做一些交互,所以免不了要学一点前端的知识(html + css + js)。在正式学习web之前,先学点前端知识(资料都准备好了,自取不谢)。然后按部就班的学习javaweb。

    这个过程中,遇到的问题千奇百怪,我记得我当时一个小问题google了一天都没能解决,最后才知道是jar包版本的问题。。所以,遇到问题是很正常的,遇到很难解决的问题也是很正常的,只要你肯问,肯查总能解决。

    好了,你现在已经有了自己写一个小网站的能力了(丑点无所谓)。接下来就厉害了。去参加比赛!进实验室!做项目!没有什么比做一个项目更能提高水平了。

    所以,你大二下的任务就是尽可能的去做项目,依次来巩固你学的技术。可以参加一些比赛,或者加入实验室,或者寻求老师的帮助。总之,你要做项目!

    除此之外,你需要继续扩展你的视野。前端(不是你之前学的简单的html!),python,android,ios,cocos。。。只要是你感兴趣的,就去接触一下,不需要你学的多厉害,也不需要你完全掌握。只是为了让你的视野更加开阔,知道原来还有这么多技术,原来还可以这样。

    大二的一年,你需要学会java和javaweb,并且至少做一个拿得出手的项目。同时,尽可能的提高你的视野。当你觉得你一无所知,你还是个菜鸟,这一年的任务就完成了。

    大三

    这是很关键的一年,因为这一年你将决定是否考研。考研的我就不管了。。接下来是针对准备一毕业就工作的同学的。

    写在前面:这一年,你要做的,是深度!

    通过大二一年的努力,你的广度已经足够了。并且在这个过程中,你应该也找到了自己最感兴趣的方向,如果没有,那就继续研究java吧,总比你不知道学什么好。无论怎样,这一年,你的重心都应该放在一条路上。以java为例。

    首先,巩固基础!

    这是最重要的。怎么做呢?进阶书籍+看博客+写总结+写开源项目。

    这个阶段的视频不是很多,也没有必要了。直接看书+看博客+开源项目,最后再总结就够了。我举个例子,比如,我现在要学设计模式,我买一本《head first 设计模式》然后一个模式一个模式的学,每学一个模式,看一遍书,然后google一下这个模式,看几篇高质量博客,结合书和博客自己写一个总结,甚至可以自己写一个博客专栏,让后来者也能享受到你的学习成果。同时,可以好好整理一下自己学习过程中的代码,放到github上,最好可以试着封装一下这个模式,让其他人更方便的使用这个模式。当你收获一个又一个的star时,你会非常有成就感的。

    上面是学习的大致方式。学完了,怎么检查自己有没有学好呢?给大家提供一个网站牛客网,你打开就知道怎么用了。

    基础都包括什么呢?

    • 面向对象的思想。
    • java常用类。
    • 集合框架。
    • io
    • nio
    • 多线程并发
    • 设计模式
    • 算法
    • jvm
    • 计算机网络
    • spring
    • orm框架
    • 。。。

    每个知识点,不只是要会用,更要能理解一下底层的原理,有必要的话可以看看jdk源码或者框架源码。

    推荐一波资料。

    • 《java编程思想》《java核心技术》《head first 设计模式》《设计模式之禅》《java并发编程实战》《重构 改善既有的代码设计》《算法导论》

    你要知道,bat等大厂每年会有两次招聘,一次春招,在每年3-5月,一次秋招8-10月。春招是招实习生的,秋招是招正式员工。所以,如果你想进这些公司,就要提前做好准备。至少,上面的那些基础你是必须得都掌握的。

    大三这一年,要让你的深度足够,有能力的可以继续延伸自己的广度。这个阶段,最忌讳的是朝三暮四。早上看python,下午发现go很有趣,看了一下午go,晚上听说R很厉害,又去研究R了。千万不要这样!不要成为各个领域的杂牌军,你现在要做的,是在一个方向有一些建树。

    大四

    实习。。。

    实习的话我能给的建议不多,虽然我的实习经历还蛮多的。但是毕竟不是混迹职场多年的人,就不乱说了。

    找工作,待遇,环境挺重要的。但是我觉得,这个公司的技术栈,行业背景也是很重要的。我实习的三家公司是三个不同的行业,所以我知道,不同的行业差距还是很大的。有的公司招聘的时候会要求你在这个行业有过经验啥的。所以,行业背景还是有必要注意一下的。同时,为了自己为了的前途,一定要问清楚公司的技术栈!

    当然:作为一个有抱负的人,毕业设计一定要向着优秀发展!并且依旧要不断提高自己的水平。这个时候,学什么可能得根据公司的需求来了,但是,永远不要停止学习!

    学习资料

    这里放一些学习资料:https://github.com/CleverFan/awesome-java-datum 。简单的总结了一下,还有很多没放上去。最近公司的事情和挑战杯的比赛搞得我有点头大。。忙完这阵会都放上去的。大家可以先收藏着。。

    总结

    大一:培养兴趣
    大二:横向发展,广度优先
    大三:纵向发展,深度优先
    大四:选好方向,不断提高自己

    事实上,大二结束以后就可以试着去找工作了(我就是),这个阶段,不要在意工资什么的,只要有机会你就去,一定会有收获的。如果你不知道学什么了,有一个很鸡贼的方法,就是可以多去参加一些面试,多投简历,面试中一定会有你不会的问题,然后你就知道学什么了吧?(面试过了,可以不去的嘛。。。)

    在你的学习过程中,你会遇到很多的bug,我建议大家把每个解决bug的过程都记录下来。因为同一个问题,你可能会遇到好几次,整理bug,不仅仅是为了下次遇到能快速解决问题,而且可以养成一种归纳整理的习惯。可以写成博客,也可以以笔记的形式记录,比如有道云笔记等,gitbook也是一个好东西~


    我现在是一个大三的学生,经验和经历都有限。所以我也不确定我的学习方式,以及我的看法是不是正确的。但是这些都是我现在正在用的方式。所以我把它分享出来。如果有哪里说得不好或者不对,请路过的大神指点一下。感激不尽。

    如果你还需要其他的资料,或者想和我一起学习。欢迎加群281440885。加群请备注,来自博客。刚刚建的,里面只有几个人,都是学生~

    很晚了。。先写这些。有时间再补充,欢迎大家批评指正。


    转载请注明出处:http://blog.csdn.net/qq_31655965

    展开全文
  • 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要到的一些东西:首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,...
  • 零基础学习Java编程,如何入手呢?也不知道学习Java编程的方向,很多人会问Java零基础怎么样学习,有没有什么入门的书籍推荐;只要方法正确,零基础学好Java也是有机会的哦。?理解Java思想?Java是一门面向对象编程...
  • 学习Java心得体会

    2019-01-11 16:50:35
    学习Java心得体会
  • 我接触java学习是从Java SE开始的,SE部分主要是用来做桌面程序的开发,在现在的主流趋势中已经渐渐的退出了中心舞台。现在人们对网络的认知和通过网络接收信息大部分都是碎片化的,因此各种网页就成为了我们最...
  •  Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。     1.1 思考一下 ... 学习Java之前,先别急,静下心来好好想想:     1)你对学习Java是否有兴趣?     2)你是否能
  • 做开发、做编程这件事一定要有思想...找一个Java的基础教程一下,学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。 完以上内容以后,你应...
  • 如何学好java基础

    2018-05-22 09:48:08
    一方面很努力学习,一方面又觉得不踏实",我感同身受.觉得文章写得不错,在此献给一些在java中努力修炼的道友,希望能有所收获.这是文章链接:https://mp.weixin.qq.com/s/IU_xCCGSRbEQQLkpqpaB3A文章内容我也全部...
  • 如何快速学习Java

    2018-05-07 08:20:06
    点击上方“CSDN”,选择“置顶公众号”关键时刻,第一时间送达!【CSDN编者按】在各大编程语言学习榜单上,Java的入门难度不言而喻。除了要科学选择一门适合自己的编程语...
  • Java学习路线

    2018-10-28 01:52:19
    如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业岗位需求为导向 Java工程师技能点图   根据 ...
  • Java反射机制的学习

    2016-07-25 11:59:57
    Java反射机制是Java语言被视为准动态语言的关键性质。Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明...
  • JAVA学习路径

    2016-12-05 19:57:46
    Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。 Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。 1. 思考一下 学习Java之前,先别...
  •  最近很长的一段时间,我对下一步的学习方向,或者说java学习方向,充满了困惑。 困惑1:在工作上遇到的很多技术上的东西,都给我一种感觉----不做不知道,谁做谁都会。要做一个东西,或者遇到一个问题的时候,...
  • 千锋教育2019最新java学习教程汇总(学习路线+课程大纲+视频教程+面试题+学习工具) 目录 一、首先要了解什么是JAVA? 二、Java发展及就业前景分析 三、Java学习路线图 四、Java课程大纲 五、JAVA视频教程汇总...
  • Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要...
  • Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要...
1 2 3 4 5 ... 20
收藏数 79,405
精华内容 31,762