随着目前大数据、人工智能领域的快速发展,有不少传统行业的人才开始转向IT领域,而转向IT领域一个最常见的选择就是从编程语言开始学起。
编程语言的选择有很多,比如Java、PHP、Python等,这些编程语言都有自己特定的应用场景和开发领域。所以,在选择一门编程语言的同时要对这门编程语言所处的应用领域有一个全面的了解,然后把这个领域所需要掌握的知识梳理出来,形成一个学习脉络,这样才能系统的掌握这门编程语言。
Java语言最常见的应用领域是做Web开发、移动互联开发和大数据开发,下面分别把这三个开发领域所需要掌握的知识结构做一个描述,以方便初学者制定一个系统的学习计划。
Web开发知识结构Java Web开发总的来说就是三层开发,分别是客户层(Client Tier)、服务层(Bussiness Tier)、数据层(EIS Tier)。其中客户层需要掌握的知识主要就是前端开发知识,包括Html、CSS、JavaScript,作为Web开发人员来说,前端开发知识还是应该系统学习一下,尤其是JavaScript更应该深入学习一下,JavaScript的发展前景还是不错的,而且目前JavaScript也在从前端走向后端。
服务层相对来说比较复杂,也可以把服务层分成多个业务处理层,也就是所谓的N层结构,但是目前服务层的编写更倾向于分布式服务结合微服务的方式来开发。先说一下传统Java Web开发技术方案,传统方案包括JSP、Servlet、JavaBean、JDBC、JTA、JNDI、RMI、JMS、EJB等内容,随着JavaEE被移交给Eclipse基金会,目前整个Java Web开发方案中,JavaBean的地位被突出出来,其他服务则分别采用了封装的方式来呈现,尤其是Spring的解决方案。所以说,现在的Java Web开发人员,可能对这些概念已经比较陌生了,因为已经被封装了。
目前在服务端更多采用了Spring的轻量级解决方案,实际上Spring的解决方案已经有十余年的历史了,从最初的BeanFactory到ApplicationContext再到今天的SpringBoot+SpringCloud的解决方案,可以说Spring在轻量级的道路上越走越远,也越走越好。
数据层目前的主流应用依然是关系型数据库,比如Mysql就是一个必须要掌握的数据库系统,这部分内容的难度并不高,Java Web开发对存储过程的编写没有过多的要求。随着大数据技术的发展,NoSql数据库的使用也将成为一种常态,所以也需要学习一下,比如Redis、Hbase、MongoDb、Neo4j。
移动互联开发知识结构移动互联开发有两种选择,一种选择是只做移动端,另一种选择是移动端和后端都需要做,如果选择后者,那么就需要先学习Java Web开发,然后再学习移动端开发。一般情况下,做移动互联开发的程序员也会系统的学习一下Java Web开发,做一个全栈程序员。
移动端的内容包括三个大块的内容,分别是Android开发、iOS开发和html5开发,当然了如果把WP开发也学习一下就比较完整了。Android开发采用的就是Java语言,所以学习起来还是比较方便的,重点内容集中在Actiity、Intent、Fragment、Service、SQLite等几个大的内容上,难度不大,但是需要做大量的实验。
html5的学习是一个重点内容,目前基于html5的场景开发非常多,尤其在移动端更是如此。
大数据开发知识结构大数据开发涉及到的内容非常多,学习大数据开发之前最好把Java Web开发系统的学习一下,这样在学习大数据开发的时候能更容易一些。曾经有程序员问过偶,学习大数据开发需要学习JavaWeb开发吗?答案是肯定的,学习Java Web开发能更加全面的理解大数据开发,同时能完成项目落地、资源整合,未来Java Web开发的大数据平台化也是一个大趋势。
Java做大数据开发需要学习一下hadoop开发生态,包含的内容比较多,比如Spark、Ambari、Avro、Hbase、Hive、Cassandra、Chukwa、Mahout、Pig、Tez、ZooKeeper等内容。
Java做大数据开发还涉及到算法的设计与实现,这些内容都需要一个系统的学习过程。
偶使用Java多年,大数据也是偶目前的主要研究方向,偶会陆续在头条写一些关于大数据和Java开发方面的文章,感兴趣的朋友可以关注偶的头条号,相信一定会有所收获。
如果有大数据方面的问题,也可以咨询偶。
谢谢!