首页 >

网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途?希望给一个建议 – 前端技术 – 前端|

文档外表框怎么去掉,j2ee怎么学,图片常用格式是什么网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途?希望给一个建议 - 前端技术 - 前端|网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途,希望给一个建议

这里偶将文章中的内容再复述一遍。

最近总是有人会问偶类似于这样的问题。偶是一个大一大二的学生,以后想从事编码的工作,偶是该学习java还是web前端啊?或者是偶非计算机科班出身,想从事程序员的工作,是该学习java还是web前端啊?

对于这样的问题偶该怎么回答呢,偶只想说听天由命吧,抓阄抓到哪个学哪个。哈哈,当然这只是开玩笑的,对于大家未来的方向选择必须要慎重,在偶讲解自己的看法之前,大家先来看下一个程序员界的段子。

C程序员看不起C++程序员,C++程序员看不起Java程序员,Java程序员看不起C#程序员,C#程序员看不起美工,周末了,美工带着妹子出去约会了…剩这群程序员在加班。

没想到,最后美工成了人生赢家,这样一来大家是不是都想说偶还是去做美工吧。如果真是这样,那就too young too simple啦,周末美工约到妹子高兴了,程序员哭了,而等到发工资的时候就该美工哭了,程序员笑了,结果还是程序员笑到了最后。

这里可能就有很多人要说了,都说PHP是世界上最好的语言,你为什么都不提一下PHP呢?关于这个问题,偶只想说,没有最好的语言,只有最适合的语言,当然如果你有什么想说的欢迎在评论区讨论。

切回正题,该如何选择Java或者Web前端呢?下面分几点述说

看兴趣,看兴趣,看兴趣

无论做什么开发,永远要以兴趣来驱动自己学习。先大致的说一下,Java学习是一个需要耗费长周期的过程,考验一个人的逻辑能力,如果你现在还在学校,时间比较充裕,建议从学习Java开始。相比较而言,Web前端门槛较低,入门稍快,可以在短时间内看到收益,但是由于前端变化特别快,需要永远保持积极学习的态度,如果你急需找工作,没太多时间,可以选择Web前端开发。不管你选择哪个方向,到最后都会有一个好的发展。

从上面这张图片可以看出,不管是哪个方向,需要学习的东西都很多,那么大家该如何确定自己的学习路线呢?

Java学习路线

(1)首先你必须得学习JavaSE,JavaSE是你做java web开发的基础,不管书籍还是网上视频,在讲解JavaSE的时候都会讲解的很透彻,可以跟着进度一点点的学下去。不过如果遇到swing,jFrame,AWT的章节可以直接跳过,现在已经用的特别少了,而且不影响后续学习。在这里小编推荐几本书,《Thingking in Java》、《Java核心技术》、《Java从入门到精通》,书籍不需要太多,能看完一本并跟着教程多敲demo就足够了。不过偶还是推荐看视频学习,看视频会让你的大脑更加集中。

JavaSE部分的内容在笔试面试的时候特别容易会遇到,而且都是涉及jdk源码级别的,需要了解底层数据结构设计,像ArrayList和LinkedList,HashTable和HashMap等经典的问题。不过如果只是作为初学者可不必要注意这些,按照书籍或者视频的节奏来就可以。

(2)XML学习,在使用的很多框架中都是通过XML文件进行配置的,这个也必须掌握。

(3)JavaEE部分,JavaEE的生态特别庞大,大家无法学习完所有的知识点,偶就按照重要程度来说明学习的先后顺序。首先是Servlet,这是必须要学的,像Struts2和SpringMVC都是基于Servlet的封装,推荐书籍《深入体验Java Web开发内幕-核心基础》和《深入体验Java Web开发内幕-核心基础》。然后是JSP部分,因为目前基于纯HTML的开发已经越来越多,所以JSP部分可以不必深究。

(4)Spring和SpringMVC,Spring作为目前Web项目必须集成的框架也是一定要掌握的,推荐书籍《spring实战》。有人经常拿Struts2MVC和SpringMVC来作比较,但由于Struts2存在的漏洞( 前段时间爆出的京东数据泄露事件就是因为Struts2漏洞造成的),让很多公司都放弃使用Struts2,转而使用SpringMVC。

(5)数据库相关知识,首先要懂得数据库相关理论,推荐书籍《数据库系统概念》了解重点概念,然后就主要是SQL语句的学习了,可以在w3school上按照教程学习,具体能掌握一到两种数据库就行

(6)数据库连接JDBC,原生的JDBC语句要会编写

(7)持久化层MyBatis或者Hibernate,两者在使用方式上稍有差别,Hibernate更加面向对象化一些,而MyBatis在处理起SQL时更加灵活,目前好像MyBatis更加火热一点。

(8)Ajax,目前Ajax技术运用越来越广泛,Ajax技术也是一定要掌握的

(9)Maven,作为java中十分有用的包管理工具,学习它是十分有必要的

(10)版本控制工具SVN或者GIT,个人推荐使用GIT

前端学习路线

如果你选择了前端,首先欢迎你入坑O(∩_∩)O,你将会在一片汪洋大海里越陷越深

(1)前端最先让大家想到的就是页面了,那么最基本的HTML+CSS是一定要学习的,推荐学习书籍《CSS权威指南》

(2)页面上还包括DOM处理与一些数据逻辑,所以JavaScript也是一定要学习的,推荐书籍《Javascript权威指南》,进阶书籍《Javascript高级程序设计》

(3)当大家学习完基本的页面知识后,便可以使用类库来简化大家的代码,提高效率。CSS方面可以进阶到Less或者Sass;如果是针对DOM处理,javascript方向可进阶到jQuery,推荐书籍《jQuery 实战》、《锋利的jQuery》

(4)当大家真正会了以上一些内容后才能说自己前端入门了,而且好戏才刚刚开始,ES6作为未来各种前端框架支持的主语言是一定要会的。前端再细化的话会分为PC端和移动端,如果重点在PC端,应该学习AngularJS,推荐书籍《AngularJS权威指南》,不过由于AngularJS的版本更新速度很快,尤其是1.0到2.0版本的升级,简直是面目全非,相当于要重新学习一遍。AngularJS2.0版本是用的Typescript语言编写的,这就要去学习Typescript,而Typescript又是基于ES6的,这些内容都可以根据官方文档进行学习。

(5)如果重点是在移动端,则可以学习Vue.js和React Native,Vue.js是由国内尤大神写的,是一个前端轻便的MVVM框架,而且目前Vue生态也已经渐渐丰富了起来。React Native用于移动端十分便利,可以参考官方文档进行学习,不过它存在的虚拟DOM概念需要大家去理解,而且所有代码都是Javascipt对象的编码方式也有一定特殊性,需要多加练习才能慢慢理解。

(6)不管是哪种框架,在编码后都需要代码编译,压缩,打包等操作,这个时候构建工具就出现了。目前的构建工具层出不穷,大概有十几种,大家无法学完全部的构建工具,但是可以选择其中比较重要的进行学习,典型的就是gulp+webpack了。

(7)当大家学完以上一些东西后,总想着朝全栈的方向走去,这个时候就体现出NodeJS的意义了。NodeJS基于javascript编写,却能够处理服务器端逻辑,实则为一大突破,推荐书籍《NodeJS开发 指南》、《NodeJS深入浅出》。NodeJS作为服务器端开发语言,可以学习Express框架和KOA框架,顺便比较一下与传统的服务端Java语言处理起来有什么不同。

(8)版本控制工具GIT

总结

还是那句话,不管选择哪个方向学习,都要是自己最感兴趣的。而且不管是哪个方向都需要通过不断的练习来积累经验,请记住“一万小时定律”。

学习Java就需要时间来沉淀,目前Java生态已经这么庞大且稳定,大家只需要慢慢地深入就会有成果。

学习前端就要抱着大浪淘沙的心态,由于前端发展极为迅速,可能自己学习的东西没过多久就已经过时了,但是也要抱着平和的心态去面对,并积极学习更加新颖的知识。

目前已经在头条上发表过一百多篇关于前端开发的文章了,得到的反响也比较好,后面会持续更新,喜欢的可以关注下噢~

随着前端开发技术的日臻成熟,越来越多的开发人才涌现。企业在追求人才数量的同时更加注重人才质量,尤其在面试环节,不再单纯的考察应聘人员的理论知识,更看重面试者的综合素质。以下就是偶整理的前端常见的面试问题及答案。

问题一:在选择框架的时候要从哪方面入手?

(1)AngularJS

当大家在设计一个应用,而这个应用对性能要求不是很高的时候,就应该选择开发速度更快的技术栈AngularJS,它拥有混合开发能力的ionic框架。对于复杂的前端应用来说,基于 AngularJS 应用的运行效率,仍然有大量地改进空间。

(2)React

选择React有两个原因,一是通过Virtual DOM提高运行效率,二是通过组件提高开发效率。除此之外,选择 React 还有一个重要原因是React Native、React VR 等应用,可以让 React 运行在不同的平台之上。同时大家还能通过 React轻松编写出原生应用以及 VR 应用。

问题二:如果没有框架,怎么搭建你的项目?

(1) 基本模块

common:公共的一组件,下面的各模块都会用到;

config:配置模块,解决框架的配置问题;

startup:启动模块,解决框架和Servlet如何进行整合的问题;

plugin:插件模块,插件机制的实现,提供IPlugin的抽象实现;

routing:路由模块,解决请求路径的解析问题,提供了IRoute的抽象实现和基本实现;

controller:控制器模块,解决的是如何产生控制器;

model:视图模型模块,解决的是如何绑定方法的参数;

action:action模块,解决的是如何调用方法以及方法返回的结果,提供了IActionResult的抽象实现和基本实现;

view:视图模块,解决的是各种视图引擎和框架的适配;

filter:过滤器模块,解决是执行Action,返回IActionResult前后的AOP功能,提供了IFilter的抽象实现以及基本实现。

(2)扩展模块

filters:一些IFilter的实现;

results:一些IActionResult的实现;

routes:一些IRoute的实现;

plugins:一些IPlugin的实现。

问题三:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有的CSS、JS文件、图片?

(1)遵循自定的一套CSS、JS,图片文件和文件夹命名规范;

(2)依托采用的前端工程化工具,依照工具架规范 ;

(3)依据采用的框架规范。

以上偶整理的前端的问题都可能会被招聘者所提及。因此,牢记这些对你面试肯定会有帮助。

想要了解更多前端的行业动态和学习资料,可以关注“武汉千锋”微信公众号,实时了解更多前端行业动向。

你要问前端开发难不难,偶就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

但是,对于前端开发这个方向,即使『会了』……依然感觉很难,唉,说多了都是泪呀,偶用三个亲身经历的怪现象来说明吧。

第一个怪现象:谁都可以指手画脚的前端开发

偶职业生涯很长一段时间都在做前端开发,偶也做过后端开发,两者一对比,给偶影响最深的不是技术差异,而是——前端开发者听到的『需求修改意见』要比后端多得多。

后端这东西,毕竟是藏在后面的,外行不懂就是不懂,装不出来,他们也不好自取其辱乱比划,但是,前端嘛……谁都能看得见,没吃过猪肉还没见过猪跑,所以,谁都可以指手画脚提一点意见。

只看得见界面的产品经理可以提一些意见。

项目经理可以有一些意见。

啥也不懂的老板也可以提一些意见。

甚至连后端都可以来提一些意见。

……

正因为前端的产出是看得见摸得着的,所以造成了谁都可以『提一些意见』的现象。

前端开发最大的痛啊!

第二个怪现象:被鄙视但又十分抢手的前端

前端开发者,你懂的,居于开发者鄙视链的低端,业务逻辑大多都居于后端,超大并发量是后端实现的,超牛逼的AI、大数据分析、商业逻辑都在后端,前端要做的只是一个功能展示,所以,后端开发普遍看不上前端开发的工作,直到……到了公司举办黑客马拉松活动的时候。

黑客马拉松,就是让程序员自行结队,在几天之内快速开发出来一个小型项目,到活动结束的时候,每个队要演示自己的产品,于是,问题来了,平时你可以鄙视前端开发者,你可以把前端开发贬得一文不值,但是,到了黑客马拉松的时候,才知道前端开发的必不可少,因为没有前端你无法『演示』你的想法。

这时候,后端开发者也会发现,平时觉得前端开发很简单,但是自己写一个最简单的AJAX form表单提交也要学半天,不管你的后端想法多么牛,如果最后没有熟练的前端开发者,最后到了演示环节也要抓瞎。

所以,每到黑客马拉松时,平时居于鄙视链最低端的前端开发者,突然就变成了最炙手可热的红人。

谁都觉得前端开发不重要,但是又离不开前端开发。

是不是很讽刺?

第三个怪现象:苦不堪言的多端开发

一个正经的产品,为了满足用户不同设备上使用的要求,需要提供多客户端,最起码要有网页端、iOS端和安卓端,现在大部分产品还要考虑小程序端,这还没算iOS要分iPhone和iPad,安卓也要考虑手机和平板,甚至要考虑机顶盒设备的界面……

各种设备、各种安卓版本、各种浏览器都有各自的特(bu)点(g),每个前端开发者都有体会,很多精力都消耗在处理某个特定平台/版本/浏览器的bug上,唉,说到这里真想流泪……

因为要支持这么多不同的客户端,一个产品的前端开发者种类也不止一个,要有网页开发者、iOS开发者和安卓开发者,大一点的项目,靠一个人支撑一种客户端就不行了,需要的是网页开发团队、iOS开发团队和安卓开发团队。

其实,不同客户端实现的都是同一种功能,完全是因为这个世界存在这么多种客户端,所以大家才被迫为各个客户端写一套代码。

虽然多端的存在,增加了不少程序员的就业机会,但是,干过实际项目的都知道,这其实很麻烦,很麻烦很麻烦!为了给用户最好的体验,肯定希望各端提供一致的功能界面,如果有新功能,要上一起发布上线,但是,不同团队之间开发周期肯定不同,很难保证同时完成任务,最后,花费开发时间最长的那一端的开发团队就成为整个产品的短板。

每每想到这里,就缅怀秦始皇,秦始皇你要是不光把度量衡统一,把所有客户端也统一了多好:-)

前端开发难在哪里?

好了,看完上面这三种行业怪现象,不难看出,前端开发很真的很有难度,偶这里只列出最关键的三点:

第一,当需求发生变化的时候,第一线中枪的往往就是前端,而且很多需求变化和后端无关,单纯就是前端的改变。这些需求改变有的是不合理的瞎折腾,但是,客观来说,也有不少是有必要的需求改变,应该用户是上帝,用户的喜好会变化,用户的喜好大家也要反复揣摩,必须要伺候好用户,也就是要适应需求变化,所以,难点就成了——如何让前端开发适应快速变化的需求?

第二,平台、浏览器生态复杂,要考虑的场景太多,不同平台上实现同一界面功能的重复劳动严重,这个难点在于——如何消除前端开发的重复劳动?

第三,前端的学习曲线其实挺陡,很多后端开发者以为前端只是玩一玩HTML,到了自己上手的时候发现其实要学很多,下面只是一个简化了的网页前端学习路线图。

上面这么多知识点学会,只能算入门,更不要说:

如果要做到高性能,要考虑CDN优化、JavaScript Profiling、打包策略……如果要做到安全,要防止注入攻击,要防止XSS攻击,要防止CSRF攻击……

这说的还只是网页前端,没说安卓和iOS开发、小程序开发,如果把这些都带上,需要学习的知识量又要翻倍。

而且,前端也不是说读几本书就可以上手做真实项目的,如果没有对这个领域长时间的浸淫,做出来的东西很可能就是漏洞百出,这个难点就是——如何让前端学习曲线变得不陡?

总结一下:

如何让前端开发适应快速变化的需求?如何消除前端开发的重复劳动?如何让前端学习曲线变得不陡?

长期以来,虽然无数仁人志士想要解决这些问题,也取得了一些成果,但是,前端是个被普遍低估了难度的开发活动!

前端开发的出路在何方?

请注意,偶现在说『前端开发的出路在何方』,并不只是要解决『前端开发工程师35岁之后怎么找工作』的问题,偶想说的是整个行业如何定位前端开发的问题,或者说开发团队整体应该怎么解决前面说过的前端开发困难的问题,反过来,如果大家认清了整个行业对于前端开发的定位,你作为前端开发工程师也就清楚35岁之后如何找到合适的工作。

在偶看来,问题的关键点就是——现在很多前端开发的工作都是在重复劳动。

难道不是吗?

你去问一个网页前端开发工程师,他们在前一个项目里做的功能,和后一个项目里做得功能,本质有多大区别?

你去让一个网页工程师、安卓工程师和iOS工程师一起讨论一下实现的功能,难道差不多就是一样的,只不过用不同语言、部署在不同的平台吗?

你去问一下这个公司的前端,再去问一下另一个公司的前端,他们要考虑的性能、安全性问题,解决方法难道不都是很雷同吗?

偶不敢说所有前端开发工作都是重复劳动,对于一些极具开创新的界面和功能,是开拓一片新的天地,需要前端开发工程师开发全新的应用,但是,让大家承认吧,对于大部分应用,尤其是对于一些工具类应用,历史上已经被开发过无数回了,实在没有必要再重复造轮子了。

只是,每一个应用的开发团队,都很容易以为,自己的应用是『独一无二』的,这种想法也可以理解,毕竟,世界上每一个应用都有自己的独特一面,但是,这不表示所有的工作都应该从零开始。

这个行业已经这么成熟了,应该有一种尽量通用的框架来抽象可重复使用的功能,从而避免重复劳动,避免了重复劳动,也就解决了前端开发的最大难题。

像React、Vue和Angular这样的前端框架,就是一种程度上的抽象,也很通用,但偶认为并非是前面结论中指向的最佳答案,事实上,行业发展多年,也不乏很多平台在为了前端开发的轻量化、功能模块化而不懈努力着,最近看到APICloud发布了一些新的前端能力,也验证了偶前面说的观点。

了解APICloud新产品特性

低代码+高性能移动开发

低代码虽然早在海外应用多年,但直到这两年才逐渐被国内所关注,其倡导代码复用,以及通过模型或翻译引擎自动生成大量代码,这些都是很好解决前端开发重复性工作和高效迭代的方向;偶对于APICloud的认可,也是建立在他们原有的跨平台开发技术上进而实现了向低代码开发平台的转变。

这次APICloud的产品迭代方向再次指向了前端,当然,大家都知道,现实中的开发,不可能一步跨入共产主义,历史上拖泥带水的代码依然存在,开发人员也不大可能一下子换到另一种语言,这一点在AVM这个框架上得到了解决,同时支持React和Vue,无论来自于什么开发框架背景,都可以在APICloud上快速上手。

上文偶也说到,前端开发最大的痛苦,就是多端支持,这一点在APICloud新发布的产品上得到进一步补充,一套代码开发,自动生成适合安卓、iOS、微信小程序、HTML5的引用,所有跨平台浏览器的问题得到解决,当然,市面上很多技术都在吹嘘类似的『多端支持框架』,但依然要写很多很多代码,这一点可以参考APICloud的做法,就是在功能层实现最大的复用, 其实一款应用中的功能大部分已经由成熟的云厂商提供了,比如你写个应用,最常用的IM、支付、统计、地图等等,但大家集成到自己的应用中还需要编写代码的工作量,这点APICloud则通过统一的标准,封装到自己的平台,开发者一键集成确实省了不少的事,不用苦逼地重复写fetch了!

其实现在所有的云服务都有一个趋势,那就是简单易用化,原因也很简单,既然是『云服务』了,意味着可以很快用上,也可以很容易换另一家『云服务』,如果某个云服务的学习曲线很陡,那么很快就会让用户流失,因为用户会选择其他服务,从这一点上来说,可以相信APICloud这样的低代码开发平台学习曲线相对更加平缓。

偶更认可APICloud的方面,是APICloud不只是一个框架,还提供SDK支持,官方的开发工具SDK就包含APICloud Studio、Sublime APICloud Plugins、WebStormAPICloud Plugins,你可以选择用官方Studio,并且新版本基于VSCode定制了,也可以使用Sublime或者WebStorm这样已经用惯了的IDE插件来开发。

最后来说说,什么人会喜欢APICloud。

从应用开发的角度(也就是从管钱管资源的领导角度),APICloud这样的低代码开发平台模式,能够真正解决前端开发的三个大痛苦;但是,从前端开发者角度(也就是出劳力拿工资的打工仔角度),是不是感觉到了一丝丝威胁,如果像APICloud这样进一步将前端开发者的工作量简化,那么岂不是前端开发者都要丢掉工作了?

非也非也!

首先,低代码平台不是无代码平台,该写的还是要写,前端开发这个工种并不会消失,只是工作方式和内容发生了变化。

而且,大家要以清醒认识到,几十年前根本没有程序员这个职位,更不要说前端开发职位,同样,再过几十年,有一些职业也会消亡或者改变,与其哀嚎世界变化快,还不如主动拥抱变化,APICloud主导的这种高性能移动开发+低代码开发的模式,是一种趋势,既然改变不了,还不如主动接受。

不光是接受代码开发的方式,以及这些平台所提供的商业众包资源也在成为很多平台用户获得额外收入的一个主要来源。

如果不想一直996,或者不想35岁之后找不到工作,好好考虑一下吧:-)


网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途?希望给一个建议 - 前端技术 - 前端|
  • web前端网站开发都有哪些制作流程,Web怎么开发 - 前端技术 - 前端|
  • web前端网站开发都有哪些制作流程,Web怎么开发 - 前端技术 - 前端| | web前端网站开发都有哪些制作流程,Web怎么开发 - 前端技术 - 前端| ...

    网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途?希望给一个建议 - 前端技术 - 前端|
  • web前端开发设计地方美食网站,如何做一个美食网站 - 前端技术 - 前端|
  • web前端开发设计地方美食网站,如何做一个美食网站 - 前端技术 - 前端| | web前端开发设计地方美食网站,如何做一个美食网站 - 前端技术 - 前端| ...

    网站前端开发答案,做web前端开发有前途还是写Java后台开发有前途?希望给一个建议 - 前端技术 - 前端|
  • 什么是网站开发前端与后端,web开发是属于前端开发么 - 前端技术 - 前端|
  • 什么是网站开发前端与后端,web开发是属于前端开发么 - 前端技术 - 前端| | 什么是网站开发前端与后端,web开发是属于前端开发么 - 前端技术 - 前端| ...