要这个问题首先要了解Java开发都用在哪些领域,只有清楚了Java语言的应用领域才知道需要掌握哪些技术。

目前Java开发主要应用在Web开发领域,以及大数据、移动互联网开发等领域。作为目前使用范围最广泛的开发语言之一,Java的适用范围还是比较广泛的,很多工具类软件也使用Java进行开发,比如Oracle的很多产品就是使用Java开发的。

Java与数据库

先看一下Web开发都涉及到哪些技术,我们看一下基于Java的三层开发体系结构。

java程序员应该去深入学习前端还是数据库、linux?-编程之家

这个结构是基于MVC的Model2模式,其中使用Servlet作为控制端,使用JSP作为视图端,使用JavaBean作为模型端。其中与模型端(Model)关联的就是数据库,所以对数据库的操作是Java程序员不可避免的一个重要的开发环节。

Java操作数据库的API是JDBC,通过JDBC提供的类和接口完成对数据库的各种操作,最为常见的操作就是向数据库发送sql语句并在容器中执行。java程序员应该去深入学习前端还是数据库、linux?-编程之家

当然还需要使用DAO对数据操作进行面向对象转换,简单的说就是把面向对象的Java操作映射到面向关系的数据库系统中。

所以说,掌握数据库的使用是Java程序员的基本要求。虽然大部分团队都会配备DBA,但是深入学习一下数据库对Java程序员来说还是很有必要的,如何优化查询语句就是个重要的内容。推荐深入学习一下Mysql和Oracle数据库,这两个数据库在Java开发中应用比较广泛。

Java与Linux系统

目前大部分Web服务器都采用了Linux系列操作系统,Linux操作系统在安全性的表现上要明显好于Windows和Unix,所以目前大量的Web服务器都采用了Linux,比如CentOS、Ubuntu、Red Hat等。java程序员应该去深入学习前端还是数据库、linux?-编程之家

上图中的Web Container通常都部署在Linux服务器中。也有一部分开发人员直接在Linux系统下进行Web开发,所以掌握Linux的使用对Web开发来说还是很有必要的。

做为Web开发的Java程序员来说,也可以使用Windows平台进行开发,所以从开发的角度来说并没有必要深入学习Linux系统。

但是如果使用Java从事大数据开发,则另当别论了。目前大数据平台几乎都搭建在Linux系统上,此时对Java开发人员来说掌握Linux系统是十分必要的。

Java与前端

作为Java程序员来说通常做的都是后端开发的工作,对前端的要求并没有那么高,通常开发团队都会配备专业的前端开发人员。但是很多Java程序员都有过开发前端的经历,因为很多验证性实验需要自己完成,所以掌握一定的前端开发知识还是很有必要的。

很多做Android开发的Java程序员都对HTML5比较熟悉,因为很多手机端开发需要使用HTML5来呈现,所以对开发Android的Java程序员来说,掌握前端开发还是很有必要的。

总之,作为Java程序员来说,掌握数据库、Linux都是很有必要的,前端开发可以根据实际情况一边使用一边学习通常就够用了。

我从事Java开发也有10多年的时间了,如果大家有关于Java方面的问题可以跟我交流。

路过。为什么java程序员要深入前端?

java程序员应该去深入学习前端还是数据库、linux?-编程之家

java不是javascript。java语言,本身属于后端服务语言,个人建议没有必要去深入前端。只要懂就可以,没必要深入

除非你要做全栈工程师

但吾生有崖,学无涯!个人建议你偏向于后者

你是java程序员,更多的学习后端服务吧。数据库,linux

最好的方式就是看招聘网站的需求

  • 百度的:

java程序员应该去深入学习前端还是数据库、linux?-编程之家

  • 阿里的:

java程序员应该去深入学习前端还是数据库、linux?-编程之家

  • 腾讯:

java程序员应该去深入学习前端还是数据库、linux?-编程之家

除非你要做全栈工程师。否则,别深入前端了,了解就可以。后端无止尽,够学的了

我是小鸟,深坑互联网,欢迎关注畅聊。

~

工作背景

为了避免误人子弟,在讲建议之前,我还是先说说我的工作背景。

  • 我一直从事企业级应用的开发,也就是我做的系统都是公司内部的员工在使用,而不是面向互联网用户。

  • 开发环境都在windows,测试和生产环境都是Linux,我会做项目的发布和调优的工作。

  • 我们大多数项目,都没有做分库分表,也就是单库;会用到Redis和MongoDB。

所以我认为需要深入学习的:数据库>linux>前端。

java程序员应该去深入学习前端还是数据库、linux?-编程之家

不要无目的地追求技术的广度

我发现很多程序员在工作的前几年,很爱做一件事儿,包括我自己:什么技术都想学,但什么都没有深入地学。

我在第一家单位工作的时候,周末就喜欢去西单图书大厦看书买书(别笑,那时候互联网购物没那么发达),我买过的书有:Deliph、MFC、PhotoShop、C++;前端方面的有CSS、JavaScript、H5、JQuery、DWR…也算“博览群书”了,但是现在还记得的,已经寥寥无几。

我们常说要追求技术的广度,其实也不是毫无目的;我一个做Java的去买Deliph方面的书,不是说Deliph不好,只是对我本身的工作提升有限。

java程序员应该去深入学习前端还是数据库、linux?-编程之家

数据库>linux>前端

  • 数据库:数据库一定要深入的学习,包括关系型数据库和非关系型数据库。其中关系型数据库,我用过Oracle、DB2、Mysql,基本上在开发这个层面上,每一种数据库用的都很溜,一些底层的知识也有接触;对于非关系型数据库,我主要研究Redis和MongDB,这两个都是现在的主流技术。

  • linux:在使用层面上没有问题,至少环境的发布、日常运维、性能监控方面的命令都很熟悉;而且都是从实际工作出发去学习,需要什么就学什么,时间长了也就熟练了。

  • 前端:我已经放弃很久了,现在我们项目普遍采用前后端分离的框架,老系统前端都用JQuery,新项目都会用bootstrap、vue,而且新项目一般都会有专业的前端进行开发。

这是我自己的一些看法,大家可以参考,不过还是要根据自己的实际情况出发;比如我就想研究一下Linux内核,或者我想开发一款产品,需要研究一下前端技术。

java程序员应该去深入学习前端还是数据库、linux?-编程之家

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

java程序员应该去深入学习前端还是数据库、linux?-编程之家

我觉得必须分个第一第二的话,那就是数据库,因为所有的系统都离不开数据库。