0基础是否能够自学Java,有必要参加培训班吗?

学习编程语言不仅要学得会,更要用得上和用得好,所以学习Java编程通常需要遵循一个系统的步骤,尤其是对于利用业余时间学习Java的人来说,更是如此。自学Java需要注重以下几个方面:

第一:掌握java原理
在程序真正运行在CPU上之前,必须要让OS的kernel理解我们在编辑器或者IDE里根据每种语言的语法规则敲入的源代码,kernel才能做出相关的调度,所以需要先将源代码转化成可执行的二进制文件,这个过程通常由编译器完成。有些编译器直接将源代码编译成机器码,载入内存后CPU可以直接运行。而机器码的格式与跟具体的CPU架构相关连,例如ARM CPU无法理解Intel CPU机器码。因此,同样的源代码需要根据不同的硬件进行特定的编译。高级语言转换到低级语言的桥梁就是编译器。程序员写好源代码,编译器将源码编译成可执行的机码,然后CPU读取机器码,执行程序。

在这里插入图片描述

第二:掌握数据库
要说数据库,一般以SQL Server作为入门的学科,它适合中小型项目开发,而现在比较流行于大型开发的有:
  Oracle
  现在具有企业大型软件的绝对占有率
  DB2 在以IBM服务的公司以及单位(中国银行)
  MySql 相对不是很正式的开发,使用MySql
当然还有一些:Access(桌面数据库),FoxPro(中国教育),Informix的数据库系统.刚开始入门的时候可以找点视频教程来学习,视频教程一般讲得比较好,但不要企图于通过它达到比较高的水平。然后要学会将自己所知道的去实践,多实践。当觉得实践到一定程度而没有什么冲劲了,就去学习理论,当觉得理论知识需要发挥的时候就去实践,时间的周期不一定,没有什么定论,但自己的时间安排需要定论就可以了。
在这里插入图片描述

第三:高级进阶:

    已经有了相对较好的java基础后,需要学习一些java使用较高级的东西,大体有两方面,一个是并发,一个是JVM(java虚拟机),分别推荐两本书吧: 《Java并发编程的艺术》、《深入理解Java虚拟机》,前者较好的讲解了java中并发编程的实现,内容通俗易懂,主要理解volitile和sychornizer,涉及到底层封装,主要是通过CAS和AQS实现的,而原子类、JUL下的工具类等实现也是上述两种方法实现的,而并发最重要的技术体现就是线程池技术(此处是重点,源码)和锁(主要理解对象的头部 mark hard部分,在此基础上学习下重入锁、读写锁,而悲观锁、乐观锁、轻量锁、重量锁等概括要通过相应的关键字来理解);后者较深,不建议入门学习,只要对JVM底层结构有一定了解,对内存模型有概念,对GC的实现理解其算法和流程就好。

第四:框架相关:

    经典的SSM(spring、spring MVC、mybatis),要对其使用、结构、源码实现有一定理解,其中spring的IOC和AOP,spring MVC和服务器/bean层的关系及实现,mybatis的源码实现(mybatis源码流程相对简单,便于学习java代码)。现在用的最多的是spring boot,便于快速构建,但是缺点是缺少对具体实现的感知,需要有SSM或SSH的组合理解(不推荐SSH呀,太老了)。Netty框架是一种网络通信框架,基于Netty可以实现客户端和服务端的消息通信,基于Netty可以学习一下NIO的具体实现(AIO,BIO最好懂一下原理)。

总结:
所以,学习Java的过程中,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。

发布了70 篇原创文章 · 获赞 0 · 访问量 9309

猜你喜欢

转载自blog.csdn.net/Xn346/article/details/104781744