java程序员从小工到专家成神之路(2020版)
java作为第一大编程语言,可谓源远流长,一代又一代的java程序员前仆后继走在java学习的路上。java程序员的学习之路在2020年又有什么变化呢? 先上图: 上面的RoadMap图中列出了作为一个java程序员需要掌握的技术路线,所有技术都懂那当然非常好,如果还没掌握也没关系,just keep learning! 作为程序员当然是有门槛的,这个门槛就是所需要掌握的基础知识,写好了程序不仅要知其然,更要知其所以然。这样才能在写程序的过程中,透过现象看到本质,从本质上提升写代码的功力。 Github作为全球最大的同性交友平台,是个程序员都应该知道。作为开源风潮的托管平台,GitHub上面有大量的优秀开源项目,如果有需可以从GitHub上面借用各种项目,没有需要也可以去读读上面的代码,提升下写作水平。 Git作为优秀的版本管理工具,相信绝大多数公司都在使用,那么掌握Git的命令和使用就是非常重要了。更为重要的是,Git通过git flow带给我们了代码管理的新思路。 很多程序员用惯了windows可能对Linux并不熟悉,但是大家要知道绝大多数的服务器都是部署在Linux上面的,不懂Linux就说自己懂编程,岂不是很搞笑?连自己写出来的代码运行的平台都不了解,怎么可以。即使不是运维专员,自己部署程序也要会的,部署中需要注意的问题肯定要关注,至于Linux的基本命令那更是要100%掌握。 如果只是使用java中的库,那么至少array, linked list, hash table, binary tree, queue, stack, graph这些基本的数据结构是需要掌握的。 如果你想更深入一些Trie, B-Tree, AVL tree等等可以了解一下。 现在是Web的天下了,搞懂HTTP,HTTPS走遍天下都不怕。 可以参考之前我的文章: 设计模式可以说是大神和小工的分界线,各种设计模式信手拈来才能成为设计专家。 当然这里不是要你死记硬背,关键是合理应用。 知道计算机是怎么工作的很重要,你的代码,程序怎么转换成计算机可以懂的语言,CPU的调度原理,内存工作原理等等。 有了上面的基础,终于我们可以开始讲java的学习之路了。 工欲善其事,必先利其器。有了好的工具可以有效的提升开发效率。Eclipse和IDEA当然是IDE的首选。 maven和Gradle是java构建工具的不三之选,这两个优选一个。ANT是之前的构建工具,不需要详细掌握,了解即可。 Docker的横空出世,打造了一个新的虚拟化时代,凭借其优异的性能和资源占用率,Docker赢得了很多企业的喜爱,Docker一定要学。有了docker接下来使用Kubernetes(K8S)来做管理则是水到渠成。 Jenkins是CI的很好的工具。 JDK的熟练程度直接关系到能不能写出好的代码,接下来我们详细来看。 集合类是在任何程序中都要使用到的类型,这几个是你必须要熟悉的 ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet。熟悉使用熟悉其实现原理。 java中多线程和并发是一个非常重要的话题,concurrency包里面提供了诸多非常有用的同步类:CyclicBarrier,CountDownLatch,Semaphore等等。 concurrency包下面的Locks和Atomic提供了一些新的锁的实现。深入了解这些内容可以更好的理解多线程环境中资源的使用。 Thread和Thread Pool是多线程的基础,需要深入理解和应用。 Java并发和多线程的文章可以参考java并发和多线程 Java 8引入了太多太多新的有用的东西,像Lambda,Stream API, Date Time API等待。Java 8引入的函数式编程直接改变了以往的编程习惯。 当然java 8只是最低的要求,java已经出到了13了,如果有能力的话可以学习Java 9 到 Java 13的新特性: Modules, var for local variables, static factory methods for collections等等。 java.io和java.nio是Java中处理IO的两个包,IO是非常重要的,处理文件读写,包括网络数据流的读写都需要使用到IO。 我们需要掌握java.io包中的File, InputStream, OutputStream, Reader, Writer。 还需要掌握java.nio包中的ByteBuffer, FileChannel, Selector等。 如果想做大型java项目,框架是少不了的,使用框架可以节省开发时间,提升开发效率。 java框架最最最流行的就是Spring了。可以说Spring统治了java的大部分江山。说起来Spring还是以EJB的替代品出现的,它摆脱了EJB的复杂性,通过使用AOP和IOC,提供了轻便的可配置的容器,赢得了大片市场。最新的Spring版本是5.*。 除了Spring Core,Spring MVC目前的市场份额也越来越大。做好web开发Spring MVC也是必不可少的。 虽然Spring简化了EJB,但是还是需要诸多的配置文件,而Spring Boot的出现大大的减少了配置文件的编写。 要问什么框架开发最快最靠谱,Spring Boot肯定要占一席之地。 Netty & Mina是两个NIO框架,其最本质的就是异步的IO,和普通IO最大的区别就是提升效率节约时间。 Spring 5最新引入的Spring Web Reactive就是基于Netty实现的。 ORM框架的使用方便我们对数据库的操作,Hibernate和Mybatis是两个ORM框架的优秀选手。但是据我了解好像国内使用Mybatis的偏多,国外更倾向使用Hibernate。 为什么呢?我的理解Hibernate是JPA的一种实现,更加的标准。 这年头如果你不提微服务好像就低人一等。不用怕,Spring特意为我们准备了微服务全家桶Spring Cloud。 并不是所有的服务都需要微服务,微服务也不是越多越好,看项目,看情况,看心情! 很多朋友可能喜欢写代码,不喜欢写测试。也有的朋友觉得测试是测试人员做的,跟开发人员没关系。 但是测试真的非常重要,从单元测试到end to end测试到集成测试,我们一直都在路上。 单元测试的几个框架Junit,Mockito,PowerMock都是非常优秀的框架,值得每个java程序员掌握。 其他的可以学习一下Selenium和Cucumber,作为end to end测试,Selenium配合headless chrome,真的不要太爽。 很多时候JDK并没有提供太多的实用库,这时候我们需要借助于第三方的力量。 有很多第三方库都非常优秀,比如google的Guava,Apache的commons包,处理JSON的Jackson JSON,处理日志的Log4J,Slf4j等,都是我们日常所常用的。 最后,想告诉大家的是要Keep learning,技术革新变化非常快,只有一直学习,才能不掉队不落后,学到老,活到老。希望各个朋友都能一步一个脚印的找到自己的路。毕竟知识没有捷径可走。 The END! 更多内容请访问 www.flydean.com文章目录
必须掌握的基础知识
1. Git & Github
2. Linux
3. 数据结构和算法
4. HTTP / HTTPS
5. 设计模式
6. 计算机原理
java学习之路
1. 工具
1.1 开发工具
1.2 构建工具
1.3 虚拟化工具
1.4 CI工具
2. JDK
2.1 Java Collections
2.2 Java并发和多线程
2.3 Java 8的新特性
2.4 Java IO
3. 框架
3.1 Spring
3.2 Spring Boot
3.3 Netty & Mina
3.4 ORM
3.5 微服务
4. 测试框架
5. 实用库
Keep learning
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算