百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

还在为学java还是web前端而纠结吗?看看我怎么说

sinye56 2024-10-25 16:24 3 浏览 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前端开发。不管你选择哪个方向,到最后都会有一个好的发展。

学习路线

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

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生态已经这么庞大且稳定,我们只需要慢慢地深入就会有成果。

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

如果喜欢的话,记得关注小编噢,小编后续会坚持出更多技术性的文章,如果有任何问题,也欢迎提问,小编都会尽力解答的。

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: