要成为一名Java工程师需要掌握哪些技术,前端与后端应该怎样选择?
Java语言是目前被广泛使用的编程语言之一,在Web开发、移动互联网、物联网、云计算、大数据、人工智能等领域有广泛的应用,因此Java工程师的细分领域也非常多,需要掌握的技术也不尽相同。但是从Java语言技术体系来说,要想成为一名Java工程师至少应该掌握以下内容:
第一,掌握Java语言的核心开发技术,包括JavaSE、JDBC、JavaBean、RMI、Servlet、JSP、JNDI、JTA、JMS、JDO、EJB等内容。EJB虽然目前的应用比较少,但是EJB的解决方案依然有学习的价值,目前JavaEE已经交由Eclipse基金会管理,未来EJB的发展还是值得期待的。
第二,掌握常见的开发模式。开发模式是一系列开发经验的总结,对于年轻的程序员来说是一定要学习并掌握的。Java中的开发模式非常丰富,比如以工厂模式、单例模式等为代表的创建型模式;以代理模式、适配器模式、组合模式等为代表的结构型模式;以及以观察者模式、访问者模式等为代表的行为型模式。这些模式的学习对未来的开发工作有非常大的帮助。
第三,掌握目前常见的开源框架。Java的开源框架非常丰富,目前比较常见的框架比如Spring、SpringMVC、MyBatis等。这些开源框架在日常的编程中使用的非常频繁,所以Java开发人员一定要熟练掌握。
我使用Java的时间比较久,我也出版过Java编程书籍,我会陆续在头条上写一些关于Java的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有Java方面的问题,也可以咨询我。
谢谢!
猿百科给您梳理一下JAVA技术体系
首先:开发的趋势和多数互联网公司的实际情况是,开发讲究前后端分离,也就是说JAVA程序员应该专注后端研发,专注架构和业务逻辑能力积累,将页面相关的渲染展示交由专业的前端人员去操心
其次:JAVA体系大致是这样:三层结构仍然是基础(控制层/接口层,业务逻辑层,dao层),针对这几层衍生出很多对应的开源框架,目前来说:大部分前沿公司会选择springBoot体系去构建自己的产品,相对springBoot体系落后一点点技术就是老版的spring体系;
再者:如何构建自己的JAVA技术栈?
1.选择接口层框架如springmvc等等。
2.选择数据存储服务如mybatis,hibernate等。3.选择一个整合这些框架的大容器如spring。
4.如果有缓存方面的考虑,那就选择redis之类的
5.如果项目对并发,可靠性,可用性考虑很重,那么就把单机项目扩展为分布式项目,考虑springcloud这种整合大容器(可以看做是spring这种整合容器的高配版~)
6.如果项目基于业务还有其它考量,
比如对消息服务,我们采用的MQ系列;
针对分词搜索的ES服务;
针对缓存优化设计的本地缓存(自定义cache或OScache等等第三方小插件),二级缓存,分布式缓存;
针对web容器选择如tomcat,weblogic等;针对数据库如mysql,单机版本,分布式版本,自己安装,或者采用阿里云等第三方公司提供的云数据库等等
7.最重要一点:不要做一个技术方面的万金油,做到技术体系的深度发展,形成自己的一套架构体系才是最重要的;当你技术体系搭建起来且有一定深度后,再横向扩展一点;切记:技术不断更新,不要在无聊的技术边角料方面浪费时间,适应真实的职场才最重要
记住我的话,不要迷信一些不写代码的假大牛给你的建议
8.时间仓储,大家如果希望更细致的技术体系以及如何朝架构师发展,欢迎和我交流,我个人虽然技术有限,但也做到技术总监这个职位几年了,希望能对热爱技术的朋友提供一些帮助,减少弯路
每个人的技术学习路线可能都不太一样,这也是为什么这篇文章着重讲的是方法而不是具体的学习内容。不过对于刚进入移动互职网开发的新人,我可以推荐一个全栈学习的新手包。编程语言方面,可以优先去学习以下语言
Java
JavaScript
Python
SQL
Swift (如果不做 iOS 开发,可以不学)
Java 不但可以写 Android 应用,也是目前大部分国内公司的后端主力语言,在分布式系统与大数据平台方面的生态圈非常完整,所以即使你公司不用 Java 也应该学。
写前端,JavaScript 是必备技能,要掌握一个主流前端框架,建议学 React。这是一个非常出色的框架,生态圈成熟,适用性广,在有了 ReactNative 加持之后还可以做移动应用开发。另外,在熟悉了 JS 之后,也可以用 NodeJS 来写后端。
Python 也是个全能型语言,如果之后要做自动化运维,大数据分析与机器学习,Python 在这些方面优势明显。国外有很多公司用 Python 写后端,国内相对少些,但对创业公司而言,用 Python 做大后端的主力语言(业务后端 + 运维 + 数据分析)其实是个不错的选择。
学 SQL 前期是为了研发与上线时的数据库查询与管理,后期是为了数据分析与商业智能。即使目前各数 NoSQL 百花齐放,但传统的关系型数据库,如 MySQL 或是 PostgreSQL,势头依然强劲 。而在大数据端,各类的数据仓库与数据计算框架都会提供类 SQL 的接口。在较小的公司里,开发人员还经常兼做数据分析师。所以我认为熟练掌握 SQL 是对全栈工程师一项基本要求。
除了这些编程语言外,另一部分就是了解运维的基础知识,包括 Linux 命令行,Docker,以及各类常用的基础服务与数据库,如 Nginx,MySQL,Redis,MongoDB 等。
有了这些技术基础之后,你对于一个移动应用的系统全貌,就有了大致的了解。可以再根据公司实际的业务情况,选择进一步学习的内容。
先回答第二个问题,前段和后端,看个人洗好,大部分程序员刚开始是前后端一起的,但是术业有专攻,慢慢的前后端就分离开了。前段需要一些美术功底,就是对展现有感觉,我就是一个对页面无感的程序员,所以我很早就放弃了前段。
对于后端来说,我觉得有一下几个能力比较重要,程序实际是解决问题的,不以解决问题为目的的代码都是耍流氓。
要解决问题,可能需要一些技能。
第一,建模,能把问题进行建模。说白了,就是划分输入,处理,输出,对他们进行建模。需要一定的建模能力。
第二,工程,所谓的工程就是把一个东西拆成很多模块,然后把它组织起来。所以能把一个大的问题拆分成可实现的小问题是第一项技能,可能涉及的技能有UML图,oop的编程思想(分层),模块化,接口设计。
第三,对已实现的模块的理解及复用,web 服务器,数据库,消息中间件,缓存,操作系统等。
第四,对编程语言自身的理解,如Java,他的jvm运行机制,类库的使用。
第五,沟通能力和管理能力,程序员其实是一个非常需要沟通的职业,也需要管理,管理自己,管理项目。
第六,情商。高情商会帮助你很多。
最后,健康的身体,这是一项能力,甚至是最重要的能力,因为你需要投入很大的精力和毅力去维护他,比任何技术都更难获得和保持。
第一基础部分 Javase 控制语句,数组,容器,面向对象,反射,xml解析,jdbc ,socket,多线程
第二Javaee 部分 ,jsp, servlet, JavaScript
Jquery, Ajax, 自定义标签, el表达式,jstl标签
数据库,sql语句 tomcat服务器
第三部分 企业框架
spring,springmvc,springboot,mybatis
第四部分
高级技术 webservice, echarts图表工具,mq消息队列,redis缓存,服务器技术linux,poi报表技术,第三方api
IT技术,学习JAVA,web前端,UI设计,游戏开发,大数据,哪个比较好一点?
我觉得IT技术跟语言是不能完全混淆一谈,语言只是一种工具,就像你与人交流用英语还是中文。当然,只能说有些编程语言在某些编程领域确实比较流行,也有特定的先天优势以及适用性。IT领域包含很多种工种和技术范畴,有程序员,也有网管,也有负责硬件工程的,如果想从事编程方面工作的话,看你是从事嵌入式系统开发还是上层应用开发,如果嵌入式系统开发的话,需要掌握的会比较多,个人觉得首先得掌握处理器、计算机工作原理,数据结构,操作系统的基本原理,同时还包括专业领域的技术积累,语言部分C语言是必须要掌握的,同时还应掌握包括汇编,C++,Java等语言。如果想从事偏上层应用开发,那主要看你往哪个领域,比如互联网应用,还是数据库开发等等,这个就要看目前哪些行业比较适合你,比如区块链技术,大数据,但我觉得不管哪个部分,思想是最重要的,专业性强,精于某一领域才会有更好的发展。同时,个人觉得,不管从事那种编程,掌握C语言都是必须的,然后再根据实际需要学习其他特定优势的高级编程语言。
有了语言基础,数据结构知识,掌握网络通信协议等等,然后,就目前来说数据领域方面的工作包括区块链,以及人工智能等,就目前来看算是比较热门和有发展前途的。
从就业方面来看java无疑是最好的选择,不管是初级,还是中高级想找到一个工作还是相对比较容易的;另外就是java的学习资料很多,而且很容易获得;
大数据这几年也很火,需求也不少,个人觉得和选择java不冲突,java提供了一整套的大数据相关解决方案,入门java之后再看大数据方面的东西会更好;
游戏开发,游戏整个大环境已经没有前几年那么火了,排行榜基本被几个大厂垄断,除非能进入大厂,不然小公司很难生存,现在还搞出一个版号的东西,更是雪上加霜;
web前端和ui设计这两块不是特别熟悉,不过看现在的招聘岗位也不少,而且现在越来越多的公司进行前后端分离,前端的作用更加凸显,不过总体来说前端的需求比起后端的大量业务来说还是相对较少的。
其实ui设计也不怎么属于it里面的,游戏开发学习完Java就可以做,大数据的话就是Java的提升进阶课了,如果是0基础的话还是比较建议学web前端或者Java都可以,前端是后期可以往Java开发转,毕竟编程这个行业还是需要一直不断地学习和更新的。而且学习还想学的好然后就业,还是得找一个培训机构,像北京尚学就很不错,学完有就业推荐,关键是还有合作企业内推,从哪里学出来的还有去阿里巴巴的,而且他们主攻it教育14年了,术业有专攻,会研究的比较细,希望对楼主有帮助。
我估计问这个问题的应该还是即将毕业的同学居多,所以我以这个角度回答下。首先,要明白互联网给IT技术的红利期已经过去,已经不存在水平不咋样还能随便找份好工作的情况,现在是在走精英化高端人才路线,未来会慢慢淘汰很多低水平从业者。因此,无论你选择哪个方向,都要做好长期耕耘发展的打算。坦白说,这些方向都已经人满为患了,如果可以尽量算法AI相关的岗位,还可以享受点红利。

