java和前端哪个好学一点?

李特特


先上结论,当然是前端好学一点。不过前端的知识迭代快。

我这样说,肯定有很多人要怼我了,那我就说细点吧。

既然是题主说的,那我就假设下题主的学习历程吧。这个历程有点长,基本涵盖了你要学习的方向上的一些内容,以及成为顶梁柱后需要处理的事情,其实学到深处,感觉都挺不容易的。

一、Java篇

别人都说前端验证,你偏不信邪,就觉得Java简单,于是你开始准备学习Java,你翻开了书,开始了Java之路。

基础类型

首先,你下载了JDK,并且配置了运行环境,然后你学习了Java基础知识,数据类型呀、运算符呀、分支结构呀、循环结构呀之类的,也看了一些修饰符,然后你了解到,什么叫对象,什么叫类,什么叫包,什么是内部类,什么是接口,什么是抽象类。对了,在了解这边的时候,你顺便看了下Java内存结构,什么堆呀栈呀之类 的。

集合、多线程

好了,你天资聪慧,基础很快就学习好了,你开始进入进阶阶段,了解了一些集合框架,知道什么是List,什么是Map,也了解了异常,而且还开始看文件操作,对,就是什么输入输出流呀,文件流呀二进制流的,也开始了解多线程编程,顺便也知道了事务和锁,你还看了网络编程,TCP、UDP协议之类的。

类反射

对了,你天赋异禀,还看了反射机制,了解到类居然可以动态实例化,并且OO编程,也就是面向对象编程,什么继承呀、封装呀、多态呀,你轻松学习,掌握的不要不要的,这期间你还顺便看了24种常用设计模式,编程姿势是各种解锁。

数据库连接

对了,你发现,数据还是存在数据库里面比较好,所以你顺便学习了数据库知识,关系数据库,你学习了Mysql,非关系数据库,你学习了Mongodb,然后你也学习了JDBC,知道了怎么连接数据库

第三方库

学习过程,你也发现了lib库,发现了Maven库管理,你很方便的找到了很多第三方库。

Spring

你突然想用Java做Web开发,于是你找了度娘,问了下后,发现JavaWeb都是基于Servlet接口的,然后你了解了Servlet,也了解了Tomcat和NG,还看了Request和Response,然后再查了下,发现大家都在用Spring,于是你开始学习Spring……然后你发现,学习Spring的时间,居然比学习Java还多……

然后你开始深入理解,什么叫依赖倒置,什么叫控制反转,也学会了依赖注入,知道了注解的高级用法,你不仅把SpringXML配置了解的很深入,也非常深入的了解了Spring注解。然后你还了解了什么是面向切面的编程,用了几周时间,你做出一个Web站点,成就满满。

部署

然后你发现部署配置Tomcat还是NG都太麻烦了,你又学习了Dock,顺便也看了下K8S,对了,随着访问用户的人数增加,你又开始考虑其它的高并发框架,也学习了消息骑士队,过程中,还出现了莫名其妙的错误,所以你又去看了JVM的原理,并优化了Java虚拟机……

高并发

慢慢的,访问量上来了,服务器扛不住了,你又开始了解高并发解决方案,什么叫高并发原则,什么是拆分、服务化、消息队列,什么叫高可用原则,什么是降级、限流,什么是负载均衡与反向代理,什么是隔离术,什么是缓存,什么是多级缓存,什么是队列术。

然后你发现,这坑真是无穷无尽呀。

好了,我们现在来讲下前端

二、前端篇

前端,你说的前端是定位哪种前端呢?Web、Android、iOS、MVC++或Web前端,知识面涉及最广的是Web前端,我这边就讲下Web前端好了

Web基础三剑客

Web前端的基础,还是那老三样,HTML、JavaScript和CSS。于是你很快的学习了HTML、JavaScript和CSS,你知道了HTML原来是标签语言,哇,简单,JavaScript原来是脚本语言,语法定义比Java轻松,还没有多线程,不过这个事件驱动麻烦了点,是个新概念,花了你一点时间,而CSS,基本上就是更简单了,负责一些皮肤优化。

W3C

在学习的过程中,你发现了W3C,原来,这家伙才是老大,用来定制标准的,然后你又发现,最近的标准是HTML5、ES6+、CSS3,你很淡定,不就是升个版本,加点新特性吗?

ES6+

然后你也很快速的学习了新特性,发现了很多新功能,这时你看到ES6+,等等,这家伙怎么冒出来的?JavaScript呢?你好奇的继续看,发现原来ES全称是EMCAScript,是一个标准,而JavaScript是按这个标准实现的一个语言,而最新的JavaScript其实是ES5,原来如此,于是你开始学习ES6+,学习过程,发现ES6+增加了好多东西,定制了很多规范,当然,也让JavaScript更好用了,你知道了Promise,知道了同步函数,然后你看到了Babel.js

兼容性

等等,怎么又出来一个Babel,不急,你再继续看,发现原来JavaScript是可以直接在浏览器上运行的,他不像Java,需要编译后才能运行,但这样也有一个问题,市场上浏览器版本很多,用户是不经常升级版本的,所以你用ES6写的语法,旧版本的浏览器是不能运行的,这时候得把ES6转成ES5了,怎么转?当然就是用Babel了,一点就通的你,自然就懂,感叹的说了下:这不就相当于加个编译器吗?

NPM

于是你看了下怎么使用babel,除了有Script引用外,还有个Npm方式加包,这是什么鬼?怎么又多了一个概念?了解后,你发现了,原来这个东西是前端的工具库,有点像Java中的Maven库,不找还好,一找果然,拔出萝卜带出泥,你又把Node.js给带出来了

Node.js

然后你又入坑了,哦不,又开始学习了,你了解了,原来前端不止三剑客,是因为有了Node.js,让前端真正开始模块化、组件化的发展,甚至将魔抓伸入了服务端方向,是的,通过Node.js,你了解了什么是前端模块化,什么是前端组件化,什么是Node服务端

练手

开发总有框架吧,你一搜索,发现现在前端最热的三个框架,React、Vue和Angular,然后你又开始了入坑,哦不,学习之路。通过React,你了解了什么叫组件化开发的详细细节,通过Vue,你知道了什么叫渐近式开发,通过Angular,你知道了原来这货是双向绑定的鼻祖。

工程化

你选了一个React框架,写了一段时间,要发布了,这时候懵逼了,怎么编译呢?这时候你又发现了Webpack,原来前端是通过Webpack进行打包编译,但这货的配置有够复杂的,你又花了好多时间学习,通过了解,你还了解了其它的编译工具,如果Grunt、Rollup,发现他们的适用场景还有不同。

优化

部署完后,你看了下效果,感觉还不错,可是怎么这么慢,另外好像还有报错,于是你又学习了Chrome Web开发者工具,知道了怎么对浏览器进行优化,也知道了还有个Web缓存机制,Web数据库,了解了请求的HTTP相关信息,慢慢的,你逐渐成了一个Web端牛人。

BFF

前端总是在调用服务端的RESTFul接口,过多的请求,过多的无用信息,已经成为你优化性能的一个问题所在,所以你决定做一个Node中间层,进行请求聚合和转发。慢慢的,你的魔抓已经伸向了服务端。

小程序

公司的业务向小程序方向全面迁移,你一看,呀,小样的,这写法完全和Vue差不多嘛,于是,理所当然的,你又开始入坑了……

学习不断

慢慢的,你留下了潇潇背影,在Web前端的征途之中,你发现,呀的,太难了,技术每个月都在更新,你除了学习就是在学习的路上,这何时是个头呀,你留下一声叹息,又开始WebAI和WebAR方向进行研究了。


一颗萝卜啊


java是一种开发语言,一般用于后端开发。还可以用于后台开发的语言包括PHP、C#(因为题主刚开始学,就不罗列更多具体技术名词了,下同)等等。

前端是一个技术门类或技术方向,需要学习好html(进阶html5)、javascript(进阶es6)、css(进阶css3)等技术,这些都是入门,后期可能还要学像vue等等当前流行框架和思想。

当前流行度:

java毫无疑问是当前市面上保有量最大的开发语言之一。因其开源出身,其生态相当繁荣,应用领域简直是无孔不入。基本上只要是有软件开发的地方就会有java开发。它的各种衍生技术和框架也是层出不穷,有了这么庞大的开发群体,java不流行也不行。

前端方向这几年一直很火爆,前端的圈子也在不断扩大。过去的前端开发一般是从后台过渡到前端的,但由于业务需求不断扩大,前端越来越专注于某个领域,技术门类越来越细致,进而催生了整个前端生态,成为了一个独立的行业。

另外,由于其入门门槛较低,导致了大量的培训机构、职业院校等等开始相关课程,铺天盖地的广告。这也客观上造成了前端的”流行”。

java和前端哪个好学:

就入门而言,很明显前端好学。但如果想学到软件开发的精髓,两个基本不分上下。java不用多说了,如果想在前端领域有所建树,必须学好计算机理论技术,还需要有较高的悟性。因为技术时刻在更新,要与时俱进,需把握好技术趋势,懂得技术上的取舍等等。java也是一样。

总结:

前端相比java入门简单些。

想要学好学精两者都是很难,需要下功夫。

祝学习顺利!


肥猫技术生活


个人认为java好学一些。前台各种样式,格式什么的,我看着非常头大。但是现在没有纯粹的后端开发工程师了,基本上都要求前后台都会写。


分享到:


相關文章: