java学习路径1--转自byr

Kopernikus

以过来人的身份谈谈我的感受。
    首先如果只是ssh框架的话,是没有理由能拿到bat及这层次之上的offer的。因为这样的人太多了,而且框架的使用也比较简单,除非:对该框架非常了解,具备根据公司情况开发适用于公司框架的能力,即要求你对java反射机制、设计模式、多线程要有较深理解,最好熟悉jvm相关机制。(其实对着有较深理解的情况下也不会对“ssh”这个关键字这么在意了)
    其次,我觉得java体系可以分成四个部分,从高到低:框架开发,网络协议,java语言,jvm。深度却是递增的。
    从我个人的角度看(我对框架开发不是很了解,只是实习的时候因为公司的要求试用了spring,所以框架就不谈了),对网络协议是需要比较了解就行了,比如分层,每层传输的数据结构,每层的对等关系(port to port,  host to host),然后tcp的三次握手、四次挥手,拥塞控制(快启动、慢恢复等),如果还对http了解的话就更好了,因为大部分的应用开发需要应用到,websocket等也了解下。
    然后是java语言,其中collection接口、map接口是最常用也最常问到的,比如hashmap(呵呵),比如implementes queue的类有哪些(应该说出双端队列和阻塞队列的多种实现);然后是重点和难点,也是面试官区别你和一般面试者的地方:JUC包与NIO的理解。这个就比较多了,重点是线程池的理解和异步并发的理解(这里最好着重理解epoll函数与select/poll的区别)。当然,前面说过了,设计模式和java反射也是通常会被问到的,尤其是单例模式,你最好能默写出双重校验锁、enum、内部类三种实现方式。
    最后是JVM的理解,推荐你买本《深入理解JVM》认真阅读一下吧,好像是一个中国人写的,还是很不错的,基本都讲到了,主要理解jvm分代回收、java类加载机制,jmm内存模型,最后能扯点并发优化当然更好了。这本书里中间好多降到了java字节码的部分,你可以不用记住,但是看一遍有个映像是最好的。面试的时候一般你能非常清楚的描述分代回收机制的话就可以默认你对jvm很熟悉了,如果还了解jmm,能够描述的话应该就完全达到了阿里终面的水平了。。。
    最后,就是除开语言能力之外的能力了,着重体现在算法、新兴技术。
    算法各自看各自造化了,我只看了《编程之美》中间数字和字符串的两章,感觉受益匪浅,如果能再看看《剑指offer》(不喜欢这本书,感觉太功利了,根本就是历年笔试题集合嘛,哈哈)就更好了,然后就在leetcode上刷刷题吧。
    至于新兴技术,最好是跟你项目相关的技术,结合我自己的情况,主要是把nosql了解了一下,redis, cassandra, mangodb, neo4j,以及一致哈希、类聚、mapreduce等,一定要有集群部署实验,推荐根据《nosql精粹》认真学习一下。然后我在vmware实习了,对vmware的vchs产品的架构了解了一下,对自己以后再服务器开发有非常大的帮助(其实就是在吹自己项目的时候先“升级”一下)。
    其实,语言都是通用的,感觉java对比c++主要是在编译层面多了很多安全的check,在oo设计上有些不同,主要是因为jit。
    最最后,如果选择java,一般做高性能中间件,后台开发之类的,如果选择c++,呵呵,都能做!而且还有游戏开发等是专门针对c++招生的。。。
    好了,自己做选择吧。

【 在 tyr1235831 的大作中提到: 】
: Lz研二狗,明年找工作,看到师兄师姐找工作找的如此痛苦,我也开始审视自己,要早做准备。
:   奈何lz技术渣,在实验室一年只做过一个web的项目,而且感觉有些拿不出手的那种。其实Lz实验室的项目跟web完全不相关,但是刚好就被分配到了这个任务,就做下来了,而且基本都是拿以前的东西改的。
:   所以下定决心好好学Java。其实以前就学过,只是学的不认真,很多都是徒有其表,再学一遍发现自己真的啥都不会!现在打算把Servlet、JSP学一学,再学主流的框架,主要是ssh吧,把自己之前的项目用这些高大上的框架包装一下(ps:看之前师兄的简历他貌似就是这么做的!)
: ...................

时间: 2024-10-24 00:42:07

java学习路径1--转自byr的相关文章

Java学习路径:不走弯路,这是一条捷径

1.如何学习编程? JAVA是一种平台.也是一种程序设计语言,怎样学好程序设计不只适用于JAVA,对C++等其它程序设计语言也一样管用.有编程高手觉得,JAVA也好C也好没什么分别,拿来就用.为什么他们能达到如此境地?我想是由于编程语言之间有共通之处.领会了编程的精髓,自然可以做到一通百通.怎样学习程序设计理所当然也有很多共通的地方. 1.1 培养兴趣 兴趣是可以让你坚持下去的动力. 假设仅仅是把敲代码作为谋生的手段的话,你会活的非常累.也太对不起自己了.多关心一些行业趣事.多想想盖茨.不是提倡

1.《Java学习路径》

参考资料:http://blog.csdn.net/jinxfei/article/details/4602449 学习Java语言只是开始工作的冰山一角.在这份工作中,经过观察,分为:技术型PM,沟通性PM.下图是从技术的层面出发,将主要的技术储备和重点列出. 在这个外面还包含了项目管理,软件工程.在实际工作中,沟通是项目管理中占比非常重要的一个环节. 要将上面的知识和概念整理和落地成项目和指导思想. 一.Java: 1.J2SE 重点:Java基本语法(循环结构,数据类型,数组,运算符等).

《Java学习路径2》

最近工作比较轻松,所以白天的时间可以一边工作一边学习.我今天简单列举了最近一段时间希望自己完成的一张时间表,在这里共享给大家,也让自己晚上回来的时间可以多学习. 代完成事项 计划完成时间 备注 理解类.理解继承.理解接口. 理解数组.集合的概念. 本周                          

Java学习不走弯路教程(3.从文件内容查询开始)

从文件查询开始 一. 前言在前两章教程中,分别介绍了DOS环境搭建和Eclipse环境搭建.本章将带大家实现用简单SQL语句查询文件.注:1.本文针对初学Java的同学训练学习思路,请不要太纠结于细节问题.2.本文旨在达到抛砖引玉的效果,希望大家扩展本例子,以学到更多知识的精髓. 二. 写给初学Java的同学在介绍本章内容之前,首先介绍一下Java的学习方法.相信大家在看本文的时候已经已经拿到了各种Java学习路径,大体都是一样.我想说的是,不要让知识的学习成为负担,Java技术种类繁多,是无论

Java学习-009-文件名称及路径获取实例及源代码

此文源码主要为应用 Java 获取文件名称及文件目录的源码及其测试源码.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-2-3 00:02:27,请知悉. Java获取文件名称的源代码如下: 1 /** 2 * @function 获取文件名 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java getfname, 201

java开发转行大数据开发的学习路径

从Java开发通过大概3个月的学习转到大数据开发,主要分享一下学习路径: 第一阶段: 01.Linux学习(跟鸟哥学就ok了) 02.Java 高级学习(<深入理解Java虚拟机>.<Java高并发实战>) 第二阶段: 03.Hadoop (董西成的书) 04.HBase(<HBase权威指南>) 05.Hive(<Hive开发指南>) 06.Scala(<快学Scala>) 07.Spark (<Spark 快速大数据分析>) 08

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

Java学习作业(14.4.21)

前三次作业都是基础语法.真的好水啊.从这次开始记录. 1.编写Java程序,把当前目录下扩展名为txt的文件的扩展名全部更名为back. 1 import java.io.*; 2 import java.lang.*; 3 4 5 public class Home { 6 7 public void reName(String path, String from, String to) { 8 File f = new File(path); //声明File对象,用于导入修改路径 9 Fi

JAVA学习绘图颜色及其笔画属性设置字体显示文字

package com.graphics; import java.awt.*; import java.awt.geom.Rectangle2D; import java.util.Date; import javax.swing.*; /** * * @author biexiansheng * */ public class DrawString extends JFrame{ private Shape rect;//矩形对象 private Font font;//字体对象 priva