自学Java最起码要学到什么程度?
首先,自学Java需要找到学习的节奏,今天学什么,明天学什么,具体内容如何判断是否掌握,把自己的目标一一整理。
自己一个人学习Java是一件非常枯燥且需要耐心的事情,但是也可以利用业余时间来做的事,所以非常看重"日积月累"。
在学习之前,我们先看看达到工作程度大概需要多久的学习时间
1.假如你是非科班的学生,比如传统工程、大学中学过一点C编程,其他完全没有的话,可能需要10个月左右。如果学得有效率,愿意拼搏,那五、六个月也是可以的(每天高强度学习9小时以上)。
2.假如您有其他语言基础,也学习过操作系统、计算机的一些必修课,那么只要强化刷题和系统化梳理下面试题+学习Java,这个过程4-6个月就足够了。
3.假如你自己是学习过Java的,也有参与过项目,也学过基础课程,我觉得你强化突击一个月就足够参加面试了。
知道了学习时间,我们就开始今天的重点:学习内容
一、JAVA基础
Java基础,又称JavaSE,如果有C语言基础,那么1个月就足够了,Java比C更多的是面向对象、接口、异常这些东西,而C++就是Java的超集,除了反射、注释不支持。因此对于学过C++的同学来说,学习Java就是换关键词,没有新的语言功能学习负担。
二、JAVAWEB
从JavaWeb的基石JSP,Servlet开始学习,但老实说,这两种技术的确很陈旧。但我仍然认为值得学习,毕竟后来的SpringMVC这些东西都是为了解决JSP,Servlet这些在开发效率方面的问题。例如,SpringMVC中的DispatcherServlet将截取所有请求,负责查找是否有合适的处理器,一台前端控制器就可以了,不需要每一台Servlet都去web.xml配置。
三、JAVA深入
这块主要包含以下内容:
类加载机制、字节码执行机制、JVM内存模型
GC算法
线程池、锁、原子类、JUC包
这里就不展开讲了,基本上就是多练多看
四、操作系统
操作系统这门课,我的感觉是易学难精,但是掌握到日常编程和面试够用还是比较容易的。那么毕业生或者说你去准备校招面试应该达到怎样的水平:OS 四大模块的理论知识: 进程与线程管理、内存管理、IO与文件系统、设备管理了解 Linux 内核部分实现原理,如内存管理、进程管理、虚拟文件系统等其中内存、进程、IO 是重点,这几块也是和编程关系最密切的,要对下面这些话题有一个清晰的认知:
操作系统由哪些构成进程的状态、切换、调度进程间通信方式(共享内存、管道、消息)
进程和线程的区别线程的实现方式(一对一、多对一等)
互斥与同步(信号量、管程、锁),为什么需要虚拟内存,MMU 具体如何做地址转换的内存为什么分段、分页页面置换算法文件系统是如何组织的虚拟文件系统(VFS)是如何抽象的
关于操作系统,最好的实践就是看下 Linux 内核是怎么实现的,千万不要理解成直接去看Linux源码,那不是一般人能看明白的。
自主学习要注意培养良好的学习习惯
这很考验一个人的自律能力,人都有惰性,需要克服,否则就会出现半途而废的情况,到时学习效果就不太好,而养成一个良好的学习习惯也并非一朝一夕,需要每天如一日不间断的学习,通常来说一件事坚持做21天就可以养成习惯了.
自学还要注意学习方式方法
学习的同时也要练习。其实编程是一个熟能生巧的过程。要增加练习时间的比例,多练习,多操作,才能加深印象。看视频会有一种情况,就是能理解却写不出来,所以要避免这种情况,一定要多去练习。