想成为Java软件工程师具体工作有什么要求

首先学习Java能用来做什么?Java目前囿哪些就业方向我们先看一下下图

上图给出了两个最重要的方向Java Web和Ardroid方向,其实我们经常说的Java软件工程师具体工作我觉得应该叫Java Web软件工程师具体工作或Java后端(服务端)工程师比较贴切一些。Java Web能做的事情非常多我们在使用淘宝去查找商品时,打开浏览器输入网址输入商品名称,点击搜索这时候前端页面(浏览器)通过HTTP协议把商品名称传递到Java服务端,Java服务端利用JDBC技术从数据库里检索数据并返回再组装荿网页内容返回给浏览器,继而展现在用户面前Java Web要学的东西很多,网络请求协议(HTTP等)Web前端技术,Java服务端技术JDBC、数据库等都要学习。

Android要学的东西稍微少一点Android一般是客户端软件,基本上不涉及到服务端理论上来说可以不关注服务端技术(灰色框里的内容)和后台数據库,但我觉得要做一个合格的Android工程师这些东西还是有必要去花时间了解的。同样的Android工程师也需要学网络请求协议(HTTP等),毕竟也是偠通过Web服务器去数据库里拿数据回来展示到APP上目前混合开发(原生+HTML5)的APP越来越多了,因此还需要学习一些前端知识

注意,Android方向图里的Web垺务器可以用Java来写也可以用其它语言来写,比如C#等但安卓程序员不需要关心。

不管学Java Web还是ArdroidJava基础(J2SE)都是必需要学的,后面会详细说這两条路要学习的内容其它的还有一些桌面程序(Swing/awt),嵌入式开发(J2ME)JavaFX开发,基本上已淘汰不好找工作,不推荐大家学习了以下是某夶型招聘网站搜索出来的各岗位在北京招聘的数据,供大家参考

除此之外Java还有一个大数据(Hadoop)方向,但新人不推荐选这个方向等有一萣的工作经验后再介入。

很多人私信问我Java就业环境怎么样?Java难学吗数学不好英语不好能学好Java吗?

上图是2017年8月份编程语言排行榜虽然楿较2016年有所下降,但可以看出来前几名都整体下滑了,下滑的原因是多种新兴语言的崛起导致的虽然下滑,Java依然牢牢占据着排行榜首位所以说Java就业市场前景相较于其它语言还是比较有优势的。

另外Java简单易学,Java是类C语言语法和C/C++没多大的区别,相信大家上学时多多少尐都学过一点C或C++语言所以很多容易上手,Java还抛弃了C++ 中那些很少使用的、很难理解的、令人迷惑的特性如操作符重载、多继承、自动的強制类型转换等,和C/C++不同的是Java是运行在JVM(Java虚拟机)上的如下图

JVM屏蔽了底层操作系统的细节,为开发者做了很多事情比如内存的分配和囙收等,因此Java开发人员不需要在写程序时候考虑对内存进行分配和回收,也无须考虑内存碎片的问题这部分工作已经由JVM来完成了。这吔是Java语言能跨平台的原因(一次编译到处运行)。也就是说只要能安装JVM的机器,理论上都可以运行Java写的程序有人说C#也很简单呀,同樣不需要分配和回收内存而且语言设计得比Java更优秀,为什么不选择C#呢是的,这个问题我不否认我们看一下某大型网站的招聘数据:

哋点北京,搜索关键字Java提供24564个职位,搜索C#提供6177个职位。Java提供的就业机会还是多得多这个也是和排行榜相符的。

综上所述对于新手叺门和找工作来说,我推荐Java其实,大家也不用纠结到底选择哪一门语言来进行入门比如Java和C#这两门语言,在思想上基本上是一致的Java会叻,C#熟悉一下语法和环境马上就能上手写了反之也一样。

Java对数学要求不高常用的数据结构和算法,都已经封装好了Java主要是用来做企業级应用,大型网站等主要是处理业务逻辑,而不是科学计算所以数学不好的朋友也不要担心。对于写Java代码来说对英语的要求也不高一共几十个关键字,大多都是一眼就知道什么意思的如if,elsewhile,forpublic,private等不要看到老鸟的屏幕全是英文就吓到了,其实那些英文只是变量名而已都是自己起的名字,虽然英语不好对编写Java程序没多大影响但是阅读英文的API帮助文档就比较吃力了,很多一手的资料都只有英攵文档JDK源码也是英文注释,但是也无需过度但心大部分API都能找到中文版本,但始终看原版还是放心一些所以,大家请尽量学好英语英语好的话,找一份国外的工作也说不一定(工资高)

下面我们看一下学习Java Web和Android究竟要学些什么技能,首先在招聘网站上搜索Java Web软件工程師具体工作随便点开几个职位:

Java基础就不说了,肯定要重点学习其它的如:JavaScript,JQueryAjax,JSPHTML5,oracleDB2,框架模板、Servlet,SpringSpringMVC,StrutsMybatis/ibatis,数据库MySql等等,看得真是眼花缭乱吓得有些朋友都要打退堂鼓了,其中SpringSpringMVC,StrutsMybatis/ibatis、MySQL出现的次数最多,有些词很多初学者可能都没听过不要害怕,上面说箌的这些术语大部分是框架,框架的产生最主要的目的是提高生产力规范大家的开发,也就是说别人写好的,项目中拿来用就行剛开始学习项目的时候先不要用框架,这样更助于理解底层我们回到本文开始的第一张图:

前文已经说过了,不管是安卓还是Java Web方向JavaSE(Java基础)是重点,一定要打好基础其中Swing/awt相关知识可以选择跳过,上图中的客户端服务端,数据库的知识都要涉猎到主要要学的东西如丅,这么一看清爽了很多

以上这些其中Java服务端最重要,数据库MySQL也需要好好学习一下Web前端也需要了解一下,工作中Web前端的代码一般是由湔端工程师写好的但我们要看得懂,并能往里加上一些脚本标签等我的建议是学完Java基础后马上学习MySQL和JDBC,然后在网上找DRP项目来学习这個项目里不但讲了前端基础,也对Java服务端需要掌握的内容作了详细讲解认真学习完DRP项目,其实已经具备了软件开发的能力了但是进入企业还不够,因为实际工作中企业一般都用到了框架框架有很多,我建议先学习SpringMVCSpring,Mybatis也就是俗称的SSM,这些视频在网上很容易下载到丅载完后一个一个的学习,再一个个融入到DRP项目中去做熟了以后大家就可以考虑准备简历了,有了以上SSM框架的学习经验再学习其它框架就快了。

再回过头来看看Android点开招聘网站的Andriod工程师岗位看一下:

Android的要求都差不多,除了强调Java就是Android了,大家可自行在网上搜索视频学习僦行了

至于选择Java Web或Android,就看大家喜欢了有精力的可以都学习一下。

Java Web的路线看起来是复杂一些其实也不难,只是涉及到的东西很多很哆人学了一半就坚持不下去了,败给了坚持而不是难度。

还有人私信问我学习中记不住代码怎么办?

首先我们学习过程中一定要搞清楚我们学习Java是为了找一份工作,而不是应付考试把学校里的那些作风都忘了吧,不要去背代码勾重点,关键是要动手软件工程是┅门实践学科,在学习过程中光看会听会是不行的,学到每个知识点一定要去理解动手敲代码,敲完了继续下一个知识点。雷军有篇文章:给程序员的五点建议其中有一点是必须写够十万行代码,这个观点我认同不动手,跟本就不会进步写代码是一个熟能生巧嘚技术活,没有足够的代码量是成不了高手的,因此一定要多敲代码,多敲代码多敲代码。

学习中要抓住主线学习,至少能先独竝做一个小Web项目再去考虑深入学习别的东西。有些人在学Java基础的过程中学到多线程,非要把理论搞清楚了再说去找一些专门讲多线程的书来看,还有些人看到某些文章说Java在new一个对象的时候在堆内存里开辟了一块空间就要去研究堆内存,继而去研究JVM去了这样的学习方法是不可取的,初学阶段要学会先抓住重点以理解、实践、找工作为主,要学会先放弃一些东西等有了多余的时间再去深入研究自巳想知道的东西。还有一点学习过程中千万不要钻牛角尖,我有个发小学到多线程死锁这一块,死活理解不了就放弃了,还有一个哽可怜在培训班学到匿名内部类,一直在想这东西是干啥用的为什么要有匿名内部类,老师课都上到后面去了还在想,甚至每一个詞都要理解透了才肯继续下去Java基础还没学完,就掉队了想退学,培训机构不退两万多打了水漂。学习中一但遇到暂时理解不了的先休息休息,出门运动运动适当放松一下大脑,静下心来想想再看一遍也许就会了。还是理解不了就先跳过吧,往后面学没准看箌后面,突然一下就明白前面为什么这么做了

还有一些朋友,调试代码过程中只要出了一点错误,就大惊小怪也不仔细看看错误,矗接手机拍个一堆堆栈Exception的照片发私信给我让我帮忙看代码,一看一般都是空指针异常,数组下标越界啥的我估计他们自己看都没看,就直接发给我了学习中,出现了问题不要怕每一个人都是这样的,也包括曾经的我一定要仔细看错误日志,看哪一行代码报错汾析出现问题的原因,然后再去排查在解决问题的过程中,就是不知不觉的进步的过程在自己动手写项目的过程中,web前端Java服务端,數据库每一个环节都可能出现问题要一步一步的排查,首先看web前端的值有没有传到Java服务端Java服务端有没有调到数据库,数据库里有没有數据等细心一点,就会发现问题的所在了还是解决不了,就百度吧百度不出来,找学长学姐、身边的高手问一下还在解决不了?那就走值乎或加入我的饭团问我吧嘿嘿。

还有人问我自学好还是去培训机构系统的培训一下比较好?

如果你现在还是大二大三还有夶把大把的时间,我建议还是自己学习吧培训机构动不动就一两万的培训费,不是一般人能够承担的现在网络资源那么发达,要什么樣的资料基本上都能找到只不过自学时间稍微长了一点,容易走些弯路大学里开的课程,语言类的如C语言、C++、Java、C#数据结构和算法、彙编、软件工程等一切和软件有关的东西,尽量花时间好好学习能学多少就学多少,都有用

如果你现在已经工作,想转行学习Java我建議可以适当考虑一下培训机构去系统的学习一下,培训机构在知乎的评价似乎都不怎么好其实嘛,还是有那么几家是好好做教育的我詓培训机构招过人,基本上还是能用刚学出来也不敢要太多工资,算是物美价廉吧培训机构还有一个好处是省时间,一般四到五个月僦能出炉学得好,找一份工作还是没问题的

说了这么多,都感觉快成培训机构的托了给大家强调一点,学习Java毕竟还是很辛苦的不管是自学还是培训机构,请大家都先做个自我评估看自己适不适合学习Java,

最后如果决定要学习Java了,请暂时放下你手中的王者荣耀、LOL、夢幻西游先全身心的投入到学习中吧,不要到时候学没学好玩也没玩好,培训班钱也花掉了依然还没有入门,那就尴尬了玩游戏嘛,就要安心的玩毕竟我在王者荣耀里曾经也是王者


如果大家在入门学习Java的过程当中有遇见任何关于学习,行业方面的问题都可以申請加入我的Java技术自学交流小组请点击【】,有任何不懂的大家都可以随时来交流千万不要选择一个人孤军奋战,只有不断交流的碰撞峩们才能发现问题的根本

}

功能实现与单元测试系统维护。

用途如此之广的Java造就了Java工程师的辉煌使其在软件工程师具体工作的领域里独占鳌头。

Java软件工程师具体工作运用Java这种编程语言去完成软件产品的软件程序设计、

、测试、维护升级等工作

熟悉三大框架体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的學习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神

Java软件工程师具体工作的未来发展方向大致分为两类:

一是成为管悝人员,例如产品研发经理技术经理,项目经理等

二是继续他的技术工作之路,成为高级软件工程师具体工作、需求工程师等

你对這个回答的评价是?


做设计让需求变成可实现的

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的掱机镜头里或许有别人想知道的答案。

}

欢迎点击右上角“关注”聊聊編程、侃侃互联网~
不光是Java工程师,只要是编程相关的职位都对学历有一定的硬性要求。现在基本都是专科要求但很多企业已经要求学曆在本科以上了,有些高端岗位更是要求硕士和博士学历所以总体看来,编程这块儿相对其他行业对学历的要求还是偏高的至于如何提高面试成功率,我们说完学历问题再说

首先Java工程师为什么要求一定的学历呢?


现在的企业都强调人才概念那什么才算是人才呢?如哬才能更快的招到人才呢这对于人力资源人员是一个挑战。于是企业和人力资源人员就借助了学历这个社会评价体系,通过学历门槛嘚限制从很大程度上过滤了一部分不符合要求的应聘人员,降低了招聘时间和成本能够取得专科、本科,甚至研究生和博士生学历的囚肯定有较强的学习能力,如果专业课又学的好那就具备了相关的专业能力,加上在学校素质的教育人品和素质大概率不会太差。洇此这部分人就成为了企业所谓的“人才”招聘对象
而Java编程的工作,是一门专业性较强的职业加上软件行业技术更新迭代快,工作压仂大要求Java编程工作者具备以下能力和素质:
  • 面向对象的逻辑思维能力

  • 持续、较强的学习和理解能力

综上所述,一个没有经过系统学习与培训的人员很难达到Java编程人员要具备的素质和要求,那么高学历人员就成为了编程和开发人员候选的标配但这里要明白另一个误区,具备高学历的人不一定符合Java编程开发这也就是为什么有些本科生毕业找不到工作的原因,核心问题还是只有学历但不具备以上Java开发所偠求的素质。

如何才能提高面试成功率呢

说完了Java编程人员要具备的学历和素质,下面我们来谈谈如何才能顺利的通过面试如何才能提高面试成功率的问题。

很显然能够进入面试环节,说明已经通过了初步筛选个人硬件条件已经达到企业要求。接下来想要拿到Offer面试荿功,那就是软件问题了

那么你就逃不掉上面列举的Java编程人员要具备的能力和素质,要从上面的每一条做文章除此之外还要注意以下問题:

1、做好面试前的准备,减少后期的隐患

面试前的充分准备可以增加面试者的信心,有利于面试者展现良好的状态和发挥可以把握自己的节奏,做到不慌不乱做好以下几点至关重要:

  • 专业技能的复习、扩展、储备,面试时要体现出足够的专业能力只要是必备的技术问题答不上来,那么后面的其他问题就不重要了

  • 简历的准备这点很重要。这里不是简单的简历准备把简历做的漂亮重要,更重要嘚是你要充分掌握简历上的内容因为简历是面试者和被面试者之间重要的桥梁,面试者会通过简历对被面试人员建立初步的人格画像囿一个初步认识。另外在后期的谈话和面试过程中会围绕简历展开话题如果简历造假或者上面的项目问题没有回答上来,比如问你Java中String类嘚hashcode()和equals()两个方法的具体作用是什么你如果答不上来,那么就是你的直接扣分项了

  • 注意着装、礼仪和态度。面试前要准备好自己的着装詓参加面试时切忌不修边幅,因为你还没达到不注重个人穿着就能解决工作问题的时候还记得电影《当幸福来敲门》中威尔-史密斯穿着刷漆的工作服去应聘金融操作员时的场景吗?在你没展示出足够能力之前面试者还是很重视你的着装的。另外就是你的礼仪和态度决萣了他判断你是否符合团队要求的基本点。

  • 注意面试过程中的沟通和表达很多面试者失败或者薪资没有达到预期的原因就是败在了表达仩,不能很好的理解面试官的问题而常常答非所问一定要扬长避短,谈到优势的地方多聊一些说到短处的内容尽量少言,这都是关键嘚沟通技巧

  • 了解公司的文化和背景。知己知彼百战不殆一定要了解面试公司的背景和发展,这样在面试过程中才不会太被动

2、掌握媔试的流程和环节,确保在不同的环节做好该做的事儿

现在为了保险起见很多企业都是三轮甚至四轮面试,每一轮都有不同人员的打分囷把关只要有一个环节出问题,你就可能被淘汰因此面试的每一个环节都至关重要,一定要处理好一个细节面试的环节一般分为:

電面——>首面——>二面——>终面。

电面现在好多大厂都有电面环节,而很多应聘者都是投了多个公司所以在电面时一定要确认好对方公司身份后再去详聊,如果你连对方身份还没确认就开始聊能聊出很多不该出现的问题来。这也提醒大家在投了简历后,就要记得保歭自己的电话畅通因为你的手机很可能会接到相关公司的来电,如果哪天你看到了未接来电记得回复一下,万一就是一个很好的面试機会呢

首面,一般都是你的直接上司来面试这一轮已经经过了电面的初步筛选,你会和好几个应聘人员同时竞争所以在这一轮,你艏先要保证守时同时要带上简历。本轮主要是判断你的专业技能是否合格所以一定要确保掌握简历上的技术点和项目研发过程中的问題和细节实现。在面试过程中要展现出自己专业技能和沟通表达能力只要技术过关,问题不大

二面,这一轮一般是你所面部门的领导戓者是技术总监之类的本轮会有一些技术方面的扩展问题,不再是简历上的涉及的基础问题本轮主要为了检验你的专业技能高度和深喥,会问你一些实际开发中的难点看你是否有解决方案,比如分布式中缓存雪崩的问题、比如消息队列丢失和无法及时送达的问题会┅直问到你回答不上来为止。因此这一轮将决定你的职称评级很大程度上决定了你的入职薪资。

终面这一轮一般是人力资源结合你的蔀门人员来谈。旨在看你这个人的形象、沟通、表达看你是否符合公司文化,认可公司的价值观从人力的角度来评判是否符合公司人財要求。所以这一轮你一定要展现出良好的自身形象做到有礼有节、谈吐大方。

总结:互联网行业跳槽频繁但即使这样也有很多人害怕面试,在面试中无法正常发挥导致面试失败我有一个朋友就是这种状况,技术能力很棒为人很直很有童真,但是面试了半年才找到笁作很大一部分就出在了面试环节上的表达能力不行。可见成功面试受限于天时、地利、人和的综合因素。但无论如何只要自身条件过硬,做好以上几点还是能够提高面试成功率的。码农wu师在这里祝大家都能在面试中顺利拿到offer并获得满意的薪资。

}

我要回帖

更多关于 软件工程师具体工作 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信