Products
GG网络技术分享 2025-03-18 16:13 0
最近总是有人会问我类似于这样的问题。我是一个大一大二的学生,以后想从事编码的工作,我是该学习java还是web前端啊?或者是我非计算机科班出身,想从事程序员的工作,是该学习java还是web前端啊?
Java PK Web前端
对于这样的问题我该怎么回答呢,我只想说听天由命吧,抓阄抓到哪个学哪个。哈哈,当然这只是开玩笑的,对于我们未来的方向选择必须要慎重,在我讲解自己的看法之前,我们先来看下一个程序员界的段子。
C程序员看不起C++程序员,C++程序员看不起Java程序员,Java程序员看不起C#程序员,C#程序员看不起美工,周末了,美工带着妹子出去约会了...剩这群程序员在加班。
没想到,最后美工成了人生赢家,这样一来大家是不是都想说我还是去做美工吧。如果真是这样,那就too young too simple啦,周末美工约到妹子高兴了,程序员哭了,而等到发工资的时候就该美工哭了,程序员笑了,结果还是程序员笑到了最后。
这里可能就有很多人要说了,都说PHP是世界上最好的语言,你为什么都不提一下PHP呢?关于这个问题,我只想说,没有最好的语言,只有最适合的语言,当然如果你有什么想说的欢迎在评论区讨论。
切回正题,该如何选择Java或者Web前端呢?下面分几点述说
无论做什么开发,永远要以兴趣来驱动自己学习。先大致的说一下,Java学习是一个需要耗费长周期的过程,考验一个人的逻辑能力,如果你现在还在学校,时间比较充裕,建议从学习Java开始。相比较而言,Web前端门槛较低,入门稍快,可以在短时间内看到收益,但是由于前端变化特别快,需要永远保持积极学习的态度,如果你急需找工作,没太多时间,可以选择Web前端开发。不管你选择哪个方向,到最后都会有一个好的发展。
学习路线
从上面这张图片可以看出,不管是哪个方向,需要学习的东西都很多,那么我们该如何确定自己的学习路线呢?
(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生态已经这么庞大且稳定,我们只需要慢慢地深入就会有成果。
学习前端就要抱着大浪淘沙的心态,由于前端发展极为迅速,可能自己学习的东西没过多久就已经过时了,但是也要抱着平和的心态去面对,并积极学习更加新颖的知识,
如果喜欢的话,记得关注小编噢,小编后续会坚持出更多技术性的文章,如果有任何问题,也欢迎提问,小编都会尽力解答的。
程序员想要完成一些简单的WEB前端需求,就必须掌握基础的JavaScript编程能力。因此为了方便大家学Javascript,小编整理了Javascript从入门到进阶的经典书籍,推荐给大家。
1、《JavaScript Dom编程艺术》
推荐理由:此书绝对是入门的好书,本人也是在接触JS一段时间后才看的这本书。此书从JS的历史 - JS基础语法知识 - DOM介绍和简单的使用。现在这本书已经出了第二版,需要的朋友直接第二版就行。 评价:简洁,实用,详细,易懂,书不厚,相信很快就能看完。 算是很好的经典入门书了,贯穿一个实例,把JavaScript的优点表现的淋漓尽致,非常强大。
2、《JavaScript权威指南(第5版)》
推荐理由:非常强大(这名字可不是白起),其实说起来也惭愧,本人至今都没有买过这本书,最开始是因为 这个书实在是小贵,只好借朋友的看,不过也就看了个周末。网上关于此书的评价很多,意思大概都是说这书就是一个JS的文档手册,如果你有闲钱,并且习惯翻书查询,那么就来一本吧。顺便提醒一句,这本书的第六版英文版已经出来了。
3、《JavaScript高级程序设计》(第三版)
推荐理由:这本书的作者是 Nicholas C.Zakas ,雅虎的前端工程师,是YUI的代码贡献者,可想而知这本书得含金量,他出的书都广受好评。这本书已经出了第二版,而且与第一版相比内 容更新很大,直接第二版就行。不要被书名的“高级”唬住,只要有JS基础语法知识和DOM基础知识就行,而且本书开始阶段还是介绍JS和DOM的语法知 识。有一定JavaScript的基础可以看看,不过没基础也可以看看,wrox经典书籍。
评论:重点推荐一下第五章(类型),第六章(OOP),第七章(匿名),多看几遍,至少要完全看明白,能为以后进阶打好基础,这几章是本书的精华所在。这本书在入门的时候看节奏会快了一些,所以不建议初学者看。
4、《高性能JavaScript》《JavaScript语言精髓与编程实践》
推荐理由:本人先看的是《高性能JS》,这本书还是 Nicholas C.Zakas 所著,经典之作,书中大量举例了各种不同写法的JavaScript在浏览器中的性能情况,对规范JavaScript代码和提升性能有很好的帮助,最后 提到了很多工具和性能测试的方法,都是灰常灰常有实际作用的,看得出作者很厚道(好吧,偶承认了,偶是他的粉丝)^_^,记忆最深的一句话:”如果 JavaScript 执行了几秒钟,那么很可能是你做错了什么”;《语言精髓》和《高性能》有少部分关键知识都重复提到了,可是为什么要推荐这本书,因为本书对JS语言本质的描述太棒了,这是一本介绍 JavaScript语言本质的权威书籍,从 “对象”,“函数”,“继承”,“数组”等等多个重要知识着手。我补一句话 - 本书需要反复阅读。 评论:都是好书,都很薄,而且所说的内容只要有基础都不难。相信读完之后会对JS又有新的认识,且对以后的代码规范和浏览器差异性等高级问题有了新的认识,如果读完之后会有种被灌顶的感觉,那么恭喜你,你离中级不远了。优点如下:
(1)情景丰富,基本涉及所有js性能优化的场景。还会给出不同场景的实际测试数据,真实可信。我们在阅读这些场景实例的同时也丰富了自己js的使用经验。
(2)给出了很多看似”旁门左道”的解决方案,而这些冷门的解决方案恰恰是有些人死活百度不到的真正能解决问题的最优解。
(3)在说问题的同时说原理,深入浅出,游刃有余。所以这本书不仅仅是一本介绍js性能相关的书,而是一本涉及浏览器原理,js解析原理,用户体验等知识的javascript最佳注解。
5、《深入浅出JavaScript》
推荐理由:Ajax程序员必备 里面讲自己开发的一个JavaScript框架。
6、《学习Javascript数据结构与算法》
推荐理由:这本书相对是一本冷门书。但他能解决每个半路出家的js程序员都曾思考过的一些问题:
(1)我们的数组Array这么强大,要栈Stack,队列Queue这些功能少,半半拉拉的东西干什么呢?
(2)我们学的数据结构搞来搞去好像也就那些玩意,为什么被大家这么推崇,还要分门别类讨论呢?
所以这本书只是为何告诉你上面这些问题的答案:
(3)栈和队列本来就没有Array功能强。没有Stack和Queue类只是因为ES5不去实现它而已。作为一种相互之间存在一种或多种特定关系的数据集合,其存在意义是不应该被其功能强大与否来决定的。
(4)数据结构和编程语言无关。语言死了,他们会在下一门语言里重生。哪怕计算机死了,他们都会在下一个概念体里重生。
7、《JavaScript DOM高级程序设计》
推荐理由:通过学习本书,可以理解一个JS的库如何产生,自己动手写一个简单的自己的JS库,如果你打算研究其他的JS库或者正在研究其他的JS库,那么这本书会使你的理解 达到新的高度,进阶高级必读,写库必读。
评论:异常强大的一本JS巨作,此书不薄,强烈推荐。
8、《JavaScript设计模式与开发实践》
推荐理由:这本书拿实际的应用场景举例,告诉你不同js项目里如何共通设计模式,还极其详细的介绍了函数的高级用法,能让你对js高阶函数的认知上升一个台阶。难能可贵的是他还拿java作为静态语言的类比。从语言统一高度来给你分析这些问题。和上本介绍数据结构的书一样,这本书有的放矢,能完美的解决对js设计模式有疑问的同学的实际问题。他比上本书更深刻,更易读,也更贴近实践。
评论:书不厚,可真的是内容丰富且高深,强烈建议购买。
9、《高性能网站建设指南》《高性能网站建设进阶指南》
推荐理由:在读完前几本书之后我们对前端的性能和自己的代码的效率已经达到相当的高度了,然后我们在接触一些前端工程师的一些精髓。本书对HTTP请求,CDN,内容缓存和一些web开发中常见问题进行讲解。
评论:书都不厚,可是说的都是比较实用的东西,可是用不用的上还得看个人和项目需要了。
小编是一个有着5年工作经验的架构师,关于web前端,自己有做材料的整合,一个完整学习web前端的路线,学习材料和工具。需要的伙伴可以私信我,发送“前端”等3秒后就可以获取领取地址,免费送给大家。对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我。希望你也能凭自己的努力,成为下一个优秀的程序员!
10、《精通JavaScript》
推荐理由:把JavaScript讲得很面向对象。很现代! 图灵教育的出版引进书籍有很多都是经典书籍,非常好。小编推荐的学Javascript从入门到进阶书籍,看起来虽然很多,但是大家不必全部仔细精读,只需要泛读一遍,再挑几本适合对胃口的书,细细研读就行了。
Demand feedback