{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

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

imtianximtianx 回答0 收藏1
收藏问题

10条回答

imccl

imccl

回答于2022-06-28 11:27

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

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


Java与数据库


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

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

Java操作数据库的API是JDBC,通过JDBC提供的类和接口完成对数据库的各种操作,最为常见的操作就是向数据库发送sql语句并在容器中执行。

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

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


Java与Linux系统


目前大部分Web服务器都采用了Linux系列操作系统,Linux操作系统在安全性的表现上要明显好于Windows和Unix,所以目前大量的Web服务器都采用了Linux,比如CentOS、Ubuntu、Red Hat等。

上图中的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方面的问题可以跟我交流。

评论0 赞同0
  •  加载中...
nanchen2251

nanchen2251

回答于2022-06-28 11:27

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

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

除非你要做全栈工程师

但吾生有崖,学无涯!

个人建议你偏向于后者

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

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

  • 百度的:

  • ucloud的:

  • ucloud:


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


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

评论0 赞同0
  •  加载中...
wenyiweb

wenyiweb

回答于2022-06-28 11:27

谢邀~

工作背景

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

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

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

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

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

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

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

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

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

数据库>linux>前端

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

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

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

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

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

评论0 赞同0
  •  加载中...
anonymoussf

anonymoussf

回答于2022-06-28 11:27

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

评论0 赞同0
  •  加载中...
马忠志

马忠志

回答于2022-06-28 11:27

优秀的程序员应该全部都掌握,因为全栈工程师才是最抢手的,把一个人用出多个人的感觉,才是资本主义的最高价值观。

但是如果一定要在前端,数据库与Linux中做选择的话,我的排序是数据库>LINUX>前端。

我们倒着说,为什么把前端放在最后。

前后端分离

当前后端分离的大趋势下,前后端的耦合越来越弱,以我目前工作的平台服务来说,前后端仅仅通过api接口通信,这就意味着,作为Java开发工程师的我,只需要负责提供一个稳定的API接口就够了,我无须过问前端工程师如何渲染前端页面,这是PM和FE应该操心的事情。因此,如果我不想往全栈发展的话,根本不用理会前端。

Linux

还是以我目前工作的平台举例,我们的Tomcat布置在Linux环境中。

最最基本的,我们至少要知道如何打包上传,部署并启动服务器,redis,es,MySQL,切换Nginx等等。进阶一点,我们需要学会如何利用Linux强大的grep命令去筛选日志,排查问题。而如果遇到了突发情况,比如Tomcat挂掉,频繁发生OOM或者其他重启无法解决的问题,而且从代码上也分析不出来问题所在,就要学会用dump,top等等语句来分析现场,定位问题。这种能力虽然不是每天都要用,但是一旦用到,就会派上大用处,不夸张,那时候的你就是同事眼中的超级英雄。

数据库

此处不局限于MySQL,也包括了ElasticSearch等所有数据持久层。

上面说到Linux的酷炫使用并非每天都会遇到,但是数据持久层如果出现问题,那么将会犹如秃子头上的虱子一样显著。继续举例,我们曾经工作的平台,最初数据持久层用的是MySQL,但是随着数据量的增大,其反应速度越来越慢,导致频频收到用户的反馈,极大影响了用户体验与产品口碑。

后来,我们想到的办法是首先引入MySQL主从架构,缓解对单MySQL节点的访问压力,其次引入了ES做数据持久层,利用了ES对大数据的快速查找能力,最终解决了这个问题。

从以上我说的例子中,我想大家应该就能感受到详细了解数据库相关知识,对提高JAVA工程的性能有更大的帮助,因此我的建议是大家将更多的精力花在了解数据持久层上。

以上是我的浅见,欢迎大家在下方留言与我交流。

我是苏苏思量,来自BAT的Java开发程序员,每天分享科技类见闻,欢迎各位关注我,与我共同进步。

评论0 赞同0
  •  加载中...
Darkgel

Darkgel

回答于2022-06-28 11:27

我是一名计算机专业的学生,目前从事java的开发,就这个问题而言,我觉得很多人会倾向于深入学习数据库,linix,当然我也不例外,因为现在的开发都是前端后端分离,对于前端的东西,你只需要了解一些就可以了,而没有深入学习的必要,而现在又有一个称谓叫全栈工程师,意思是前端后端都会,但是一个人没有那么多精力去深入学习那么多东西,你看上去似乎都会,其实你都没有深入。

对于后端人员,深入学习数据库和linux是很有必要的,这会影响到你以后是否能成功向DBA,运维转型,程序员迟早要转型的,如果你深入学习了数据库,将转型为DBA应该不成问题,深入学习linux,将来转为运维人员是很有希望的。

总的来说,后端人员还是应该深入学习数据库和linux系统,前端的东西对以后的提升帮助没有那么大。

评论0 赞同0
  •  加载中...
xiaokai

xiaokai

回答于2022-06-28 11:27

1、我不认为一个Java程序员需要花费精力去深入学习前端。现在多是前后端分离,术业有专攻,专业的事交给专业的人去做。

2、Java程序员属于后端开发,而围绕后端开发的东西太多了。比如JVM的底层原理,各种常用框架的原理,微服务框架,缓存,调优等。这些东西都搞明白了,我认为已经很牛逼了。

3、数据库是Java开发中必不可少的一环,sql语句大家都会写,关键是谁写的效率高,面对大量数据、并发等情况下,你写的sql语句还能瞬间执行完吗?如何对sql进行优化,只要提高了执行效率,你就很厉害。而这需要对数据库的执行的整个过程原理需要深入研究。当然了现在的数据库还涉及到nosql以及各种缓存。

4、后端程序员肯定会和linux服务器打交道,无论是项目的部署还是线上问题的排查或者线上调优等,都离不开linux。但对于非专业的运维人员来说,做到一般的命令会熟练使用就可以了。

5、一个人的精力是有限的,不排除很牛逼的全栈工程师。对于一般的开发者来说,能做到一点深入研究并有成功结果,都已经很厉害了。

希望对你有帮助。

评论0 赞同0
  •  加载中...
Winer

Winer

回答于2022-06-28 11:27

作为Java程序员,应该深入哪方面的学习?其实这跟应不应该没啥关系,而是看你的发展规划或未来定位。

如果认为就是做个一般程序员,再搞搞其它副业,也未尝不可,程序员可作为职业养活自己甚或家庭,有可以搞点或发展个人爱好。

如果认定了在IT技术领域发展,那就可以进行程序员进阶贮备,包括提升技术能力等级,通晓架构,然后是大数据人工智能等。

这过程你数据库、操作系统(如Linux)肯定要掌握的,如果不做管理员,能熟练应用就可以了。关键还是技术与解决问题的能力。

其实,在技术上,你要能深耕一块,又能有一定的适应力,就够你玩的了。

就说这些吧。

评论0 赞同0
  •  加载中...
you_De

you_De

回答于2022-06-28 11:27

java往前端学习的话,就是全栈发开了,但是我觉得没有往深的学习工资高。

java的架构师工资还是很可观的,年薪都是30w-60w这样居多,所以我觉得你往深的学习会比较好。

java学习数据库>linux>前端

首建议数据库,次建议Linux,末建议前端。

评论0 赞同0
  •  加载中...
kgbook

kgbook

回答于2022-06-28 11:27

1,程序员前后台开发分离

稍微有点规模的企业,程序开发是前后台分离的,除非是几个人的创业公司,人力资源紧张,可能会出现一个人既做前台,又做后台,所以,你要对自己有个定位,根据你个人的兴趣爱好、工作职责划分等等,选择是前台开发,还是后台开发,选其一深耕。

2,IT分运维和开发

大家知道,IT行业有开发、售后实施、售前销售等很多岗位,尤其是大公司,可能职责划分的更多更细。如果你是从事一些运维工作,那重心就要放在网络、操作系统、中间件、常用命令等方面,知识面要广,但不要求深。

3,前端开发需要掌握的技术

前段开发相比后台开发,技术框架更新更快,这就要求开发人员具备很强的自学能力,要紧跟时代潮流,才能设计出最符合用户口味的产品,目前最常用的技术有:

  • Bootstrap
  • Html5
  • Css3
  • JQuery
  • JavaScript
  • Node.js
  • Vue.js
  • Angular

4,后台开发需要掌握的技术

很多人喜欢后台开发,后台开发需要掌握很多技术框架,比前端涉及的技术面更广,常用的有。

  • HTML
  • Jsp
  • Tomcat Tongweb等web容器
  • Struts
  • Spring
  • SSH mvc框架
  • SSM mvc框架
  • Springboot
  • Springcloud
  • Redid
  • Oracle MySQL 等主流数据库

还有很多就不一一列举,有太多东西需要掌握。工作中虽然职责划分很多,但我们除了要做好本职工作,还要对其他方面也要适当学习,不能只会敲代码,对Linux 最常用命令一无所知。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<