一个高级java工程师需要具备什么能力和技术

一个高级java工程师需要具备什么能力和技术,第1张

宏观方面

一、 JAVA。

要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级)

工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您

对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必自己费太多的脑经 了。

二、 设计模式。

其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代

码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。

但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进

三、 XML。

现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解

XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置

信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。

四、 精通使用一种或两种框架。

“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开

发使你可以省出很多的开发成本”。这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您

会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。

五、 熟悉主流数据库。其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。所以为了

更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出

身,您还需要补充一些数据库原理方面的知识。

六、 精通一种或两种WEBServer。

因为作为JAVA工程师,特别时

想成为高级JAVA工程师的您,您不可避免地要部署您的项目到WebServer上,而且只有当您精通一种WebServer,您才可能最大限度地使用它

的资源,这往往可以节省很多时间和精力。

七、 UML。

您肯定想成为高级工程师,因此您有必要了解或熟练或精通UML,这取决于您有多大决心想成为高级工程师和项目经理。在比较正规的开发团队

中,UML是讨论项目的交流工具,您要想做一个软件工程师,您至少要能看懂,您要想做高级工程师,您要能通过它来描述您对项目的理解,尽管这不是必须,但

却很重要。

八、 站在高度分析问题:

这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而

不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在

您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。

九、 工具。

您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对

ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员去写吧

微观方面

1Core Java部分

这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下:

a面向对象编程思想(封装继承多态接口)

b字符串处理

cjavalang包,javautil包等常用包

djava异常处理

2Java高级部分

aJava I/O流

bJava多线程技术

cJava网络编程

dJava Swing

后两项可以了解即可,如果项目需要可以深入研究

3前端基本技能

HTML + CSS网页开发

JavaScript

Jquery

浏览器兼容性 CSS hack(了解)

4熟练使用JSP + Servlet进行开发

5MVC设计模式,原理,以及相关框架,如Struts

6SSH框架

7缓存技术 session & cookie

8熟练使用一种以上Java开发工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

9熟练使用XML

JDOM w3cdom SAX

10Java设计模式

工厂模式,单例模式 ==

11Java反射机制

反射的各种用法

12了解或熟悉 C, C++, NET

13熟悉JDK的配置,环境变量

14数据库oracle必学,其他最好了解一种以上(mysql,sql server,access==)

oracle:视图,索引,存储过程,触发器,游标,包,常用函数 ==

15数据库原理

事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==

16JDBC,连接池

17Ajax,反向Ajax

18>

19熟悉Linux基本命令,使用过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项目

20了解windows系统批处理脚本bat

21了解HTML5,最好学习过

22熟悉一种JS框架,如Prototype

23J2EE原理 熟悉一种以上web容器如Tomcat,JBoss,websphere,weblogic==

24熟悉ant或maven

25熟悉一门脚本语言,如python ,ruby

26了解php/ asp

27了解ftp协议及原理

28熟练使用Junit测试,熟悉Mockito等测试工具

29,熟悉javac,javadoc,native,native2ascii等常用命令

30熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究过一些的算法。

31了解Flex(不学也没关系)

32了解敏捷开发模式

33工作流workflow至少用过一种,如OSworkflow,了解原理

34使用过***了解其原理

35熟悉jstl表达式和el表达式

36熟悉webservice,WSDL,SOAP

37处理,如上传,预览,限制大小等

38版本控制工具,CVS VSS SVN

39,JSON技术,JSON+AJAX

40分页技术,最好自己实现过不仅仅是用过要知道原理

41Java Mail

42Java读写txt,excel,JXL技术

43JVM原理,JVM内存管理,GC,Java堆栈池

44熟练使用下面的工具:

office办公软件,word,excel,ppt等

plsql,sqldevelop 数据库开发工具

outlook大公司都用

ue编辑器

浏览器控制台,调试

SHH/PUTTY 远程

45UML建模工具Rational Rose等

46 使用log4j

47使用过开放Api如百度,腾讯街景,新浪微博等

48页面静态化技术(伪静态页面)

49报表技术,使用过报表制作工具,如水晶易表。

50定时任务,如Spring batch ,学会自定义batch任务(不适用第三方工具)

51了解uuid

52b/s 和 c/s架构

53正则表达式

54了解jndi jms

55ERP

56UNICODE编码,乱码解决

57开源网络编辑器,如ckEditor

58二进制原理

59使用过,了解过开源论坛框架,如discuzz

60GWT,Closure框架

61了解大数据,云计算

62搜索引擎搜索技术

63软件工程,项目管理

职业要求

教育培训

计算机相关专业,大专及以上学历。相关专业证书有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD) 认证。

工作经验

有一定的软件分析设计能力;熟悉Java、Servlet、JSP、EJB等开发技术;熟练使用Eclipse或jbuilder等java开发工具;熟悉JAVA+STRUTS体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的学习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神。

薪酬参考

据智联招聘上对上海java工程师的薪资据说显示,截止到2012年6月13日,java工程师的平均水平已达6435。根据现在移动互联网中安卓市场的份额,相信这一职业的工资水平会一直上升。

就业前景

Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言。这可以概括JAVA有着自己独特的优势:语言简单、是一个面向对象、分布式应用并且安全、体系结构中立并且可移植,最重要,它是一个动态语言。

权威统计机构统计——在所有软件开发类人才的需求中,对 JAVA工程师的需求达到全部需求量的60%~70%。JAVA工程师的薪水相对较高,通常来说,具有3~5年开发经验的工程师,拥有年薪 10万元是很正常的一个薪酬水平。

JAVA发展方向

一是成为管理人员,例如产品研发经理,技术经理,项目经理等继续;二是他的技术工作之路,成为高级软件工程师、需求工程师等。

还是看看IDC Java工程师的薪水相对较高。 Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。

JAVA就业方向:可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。

既然程序员的位置很紧俏,有很多人可以编写代码,但是为什么程序员还是这么缺呢

除了需求之外,还有一个原因是真正合格的程序员很少。回龙观IT培训认为想要成为一个合格的程序员,我们需要满足以下几点要求:

一、细心

对于很多程序员来说,写出来的代码可能这里因为不小心漏了什么,那里因为不小心没有测试到一个大Bug,因为马虎而出现的问题不在少数。

所以,细心,能够很有效的减少开发周期,为整个项目的推进起到良性的作用。

二、胆大

大多数时候,我们知道在业务逻辑中存在一个问题,也许是因为我们害怕冒犯别人,因为我们认为问题不应该由我们自己提出。

实际上,无论在任何时候,只要你有一个问题,你应该直接指出问题,然后每个人再讨论,整个场景的时间可能是激烈的,但是如果你认为你是对的,另一方没有有效的理由说服你,那么你应该大胆的坚持自己的意见。当然,如果你觉得你的逻辑是有缺陷的,你应该勇敢地承认它,不要一直抵赖。

三、脸皮厚

如果你是一个人在家里做实验,没有人能给你提供帮助,你这样做当然是没啥问题的,但是如果你是在公司里,项目组里,你的周围都是人,求助才是你的第一选择,别不要意思,谁还不会遇到问题啊,可能你遇到的问题,在别人眼里只是一个小case呢,你花了4小时,别人花了4分钟,就效率来说,你4分钟就学习到了4小时的经验,并且解决了问题,何乐而不为呢。

脸皮薄是程序员的特点,当程序员遇到问题时,他们会去百度和谷歌找到答案,找到问题的原因需要很长时间。

如果你是一个人在家里做实验,没有人可以帮助你,你这样做,当然是没有问题,但是如果你在公司,在项目团队里,你周围的人才是帮助你的第一选择,别害羞,谁也会遇到问题,可能你遇到的问题,在别人的眼里只是一个小case,你花了4个小时,别人花了四分钟,在效率方面,你可以学习4分钟到四小时的经验,解决了这个问题,为什么不这样做。

当然,上面的都是对程序员的软性要求,即使你做不到,你也可以成为程序员,只是水平高低。

程序员必备的七种素质\x0d\1:团队精神和协作能力 \x0d\把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。任何个人的力量都是有限的,即便如linus这样的 天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。一旦进入系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人是不合格的。 \x0d\\x0d\2:文档习惯 \x0d\说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要 高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。 \x0d\\x0d\3:规范化,标准化的代码编写习惯 \x0d\代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术 人员之间的协作。有些codingfans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。没有规范化和标准化的代码习惯,研发之间的协作是绝对不可想的。 \x0d\\x0d\4:需求理解能力 \x0d\程序员需要理解一个模块的需求,很多程序员写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件, *** 作系统和开发环境上,而忽视了本身代码的性能考 虑,性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险 和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。 \x0d\\x0d\5:复用性,模块化思维能力 \x0d\经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。 \x0d\复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个 系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每 一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。 \x0d\一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在很多软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力,这是我们应当刻意克服的弊病。 \x0d\6:测试习惯 \x0d\作为一些正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要 的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对 整体系统建设的效率和可靠性就有了最大的保证。 \x0d\测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定 性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。 \x0d\当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。 \x0d\\x0d\7:学习和总结的能力 \x0d\程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。 \x0d\但是学习也要找对目标,善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。

有点难,学编程脑子都要转得比轮胎还快的。不过,我给你提供的都是真正优秀的程序员必备条件:

1、超凡的学习能力。在软件技术领域,技术的更新日新月异,所以作为程序员必须学习不断涌现的技术,掌握尽可能多的技能。优秀的开发人员是渴望学习的人。善于学习的人才能在这一领域立于不败之地。也是程序员必备的条件之一。

2、坚持到底,善始善终。其实开发软件是一件非常辛苦的工作,所以一旦认定目标,就要朝向最终目标努力努力再努力,始终朝向最终目标。这其实也是非常重要的能力。特别是在与一些人面谈工作时,你要寻找的一件事情就是在小组已经交付的产品上他实际参与的工作。具备这种能力是作为一个优秀程序员的必备条件。

3、有团队合作精神,能善于和别人相处。一般开发工作都是以小组进行的,所以一定要与小组成员友好相处,软件开发是小组成员协调努力的结果。不要把功劳归结为某个人,同时也不要把错误看作是别人的错误。

4、有预见性,知道未知因素。看到别人看不到的未知因素,并且提前做好预备工作,这说明你至少是个有经验的程序员。你的前途可以说是一片光明。

5、努力工作。作为一个优秀的程序员是充满热情和努力工作的,要具有很强的组织性,而且讲究方法,要有能力将事情结构化。此外,大多数程序员勤奋工作的热情是令人难以置信的。要呕心沥血,不眠不休就是为了最后的胜利,如果你也具备这种精神,那么你就算半个合格的程序员。

6、认真负责,少犯错误(这是特别特别特别特别要注意的)。软件很可能会因为一个细小的错误而不能正常运行,所以说不要在软件中放入错误,优秀的程序员不在他们的代码中放入错误。尽量精准的设计,会让你的工作事半功倍。

7、踏实的工作态度。低承诺,高实现。

希望我的回答对你有帮助,望采纳,谢谢!

编码是软件开发人员的必备方面。在每个团队中,每个开发人员必须被同一技术面试过程雇用。因此,我们可以推断编程器或更少才能具有类似的编程技巧。在这种情况下,一个人如何成为一个好程序员?如果他们做与同龄人的努力做了什么,他们可以做些什么?如果你正在考虑这个问题,证明你已经超过了他人的团队,你知道你想在专业领域拥有长期的发展,并编程效率不好。成为一个优秀的软件开发人员必须拥有的技能。您可以编写一个干净整洁的代码来确定您是否是优秀软件开发人员的标准之一。通过查看代码结构,人们可以轻松判断您是一个能力的程序员。

只要您了解编程语言的基础,任何人都可以编写代码。但不是每个人都可以在没有适当的练习的情况下编写清洁代码。对于任何应用程序,编写清洁代码是最需要的需求之一。没有它,该应用程序将很快变得不可接受。很难在可以理解的代码上进行错误修复。我看到人们经常需要几个小时才能在以前的实现中有错误或请求更改时了解自己的代码。这反映了这种开发人员的能力。因此,一定要学习如何编写易于阅读的清洁代码。每个开发人员都需要在项目实现的某个阶段依赖搜索引擎,这可能是学习新事物或找到问题解决方案。当人们要求我帮助他们的问题时,有时我可以做到。在他们面前打开Google寻找解决方案。当我开始时,我很惊讶为什么人们找不到搜索引擎很容易找到一些东西。随着时间的推移,我明白每个人都不擅长在谷歌搜索。谷歌根据您在搜索框中输入的内容给出了结果。输入搜索字词以获得最相关的搜索条款是一种技能。

您需要了解您手中的问题,接下来,有一个好主意对这个问题有一个解决方案。一旦这两点清晰,您需要在Google中使用最相关的搜索查询。这听起来非常好,但实际上没有,值得一提的是不要选择第一个解决方案跳上搜索引擎,尝试几个不同的关键字来查找最佳解决方案。所谓的煮熟的能量,尝试尝试几次,你会发现大多数问题都可以通过自己找到答案。了解如何让您的言语技能给人留下深刻印象,我认为这是每个软件开发人员的基本技能之一。软件开发类似于演讲,可以更好地表明自己,增长越快。在团队中,假设有两个具有类似编码技能的开发人员。然而,开发人员擅长表达,另一个是表达的不是很好。通过这种方式,前者开发人员将主导他们的职业发展,因为它们可以获得更多的曝光率。

如果您觉得您的表达不是很好,我会建议您参加一些在线课程。你在职业生涯中长大的越多,你就越有机会向更高的管理表现出来。在您职业生涯的阶段后,您的表达将确定您的增长速度。你可以写得很好,但你能快速找到问题的根本原因吗?你知道在哪里找到导致错误的代码吗?只要有足够的时间,几乎所有的团队成员都能了解这个功能可以找到问题的根本原因,但可以让你脱颖而出,你解决问题有多快。无论团队,经理和团队成员都会欣赏开发人员,这些开发人员能够更快地找到问题的根源,这些人也被称为团队中的关键人物,这为职业发展的发展提供了巨大的杠杆作用。

您必须考虑为什么软件开发人员需要知道如何谈判?软件工程师是否谈判?大多数开发人员认为他们只需要编写代码和修复错误,他们可以成为一个优秀的软件工程师。当然,这可能适用于您职业生涯的前几年。但随着您在专业成长中增长,您需要直接与客户或团队合作。客户可能会与您的应用程序发生冲突,在这种情况下,您需要解决冲突,并以友好的方式解决问题。在您的职业生涯中,您不想与客户或其他团队发生冲突。但你不能总是接受他们的要求。此时,您的谈判技能将确定您是否可以以最佳方式解决问题。需要遵守和实践谈判技能。当您开始时,您可以观察到您的前任和架构师将如何指导解决方案讨论,想象,如果您将执行,以及您将所做的更改可以实现双赢的结果。

解决问题的技能是软件开发人员的最需要技能之一,而是也是罕见的技能之一。这是最快的开发技能之一,可以在您的职业生涯中获得最快的发展。在决定解决方案时,您必须考虑团队的环境,可用工具,并为特定解决方案实施管理愿望。有一种正确的方法来实现需求,也存在最可行的方法来实现需求。在许多情况下,两者可能不会共存。如果你的解决方案过于死亡,那么球队会认为你太顽固而且不切实际,如果你对每个解决方案都满意,或者你不考虑它。然后球队会认为你是一个没有想法的人。无论是上述情况,你都不会被视为一个在团队中贡献价值的人,所以学习以最佳方式解决问题的技能是非常重要的。

只要有足够的时间,大多数开发人员都可以完成交付,但不幸的是,在软件行业中,时间是最有价值的东西,如果你公司在一个激烈的市场环境中,如果公司不能先进入市场或者与竞争对手同时进入市场,它将失去市场份额,这是至关重要的。因此,软件开发人员需要有效地管理他们的时间。为此,您需要知道如何准确评估您的时间效率。当你第一次时,你会在评估中犯错误,但它是正常的,每个人都会产生类似的错误,但聪明的开发人员应该能够来自他们。课程是学习和改进的。软件开发专业是激烈的竞争。开发人员的熟练程度可能有所不同,但每个软件开发人员都知道如何以一种或多种编程语言编写代码。在软件行业中,依靠编码技能来实现指数增长是不够的。不要让你的职业生长在几年内。在您职业生涯的每个阶段,实现您想要的目标,实现上面提到的七种技能,成为一个优秀的软件开发人员。

01、吃透一门编程语言

这个技能看起来似乎没有必要强调,但就怕“贪心”,不要学过时的编程语言,并且吃透他,很关键。

02、整洁的代码

当你学会一门编程语言之后,接下来要考虑的事情就是让你编写的代码变得更整洁,更易于理解,更富有艺术。Elliot Chance 曾表达过这样一个观点,他说:“要分辨两个程序员的优劣,就是给他们一样的时间,越好的程序员写出来的代码越少(当然是可以运行的)。”

03、算法与数据结构

敲代码的过程中经常遇到一些实际的问题,由于无法充分利用数据结构将数据之间的关系通过合适的算法策略进行有效地存储转换,就导致程序的性能很低。多投入一点到数据结构和算法上面去,它决定了我们的技术高度。数据结构和算法是重要的基础知识,学习它们的过程就像是在打地基。

04、基本的数据库知识

虽然软件开发人员更应该专注于程序设计而非编写和优化 SQL(应该交给专业的数据库管理员负责),但在我们国内,只有顶尖的企业才会有数据库专家。如果你想要在软件开发这条道路上走得更高更远,懂一些基本的数据库知识是必须的,比如说:

如何将业务中的对象属性转化为数据库字段;

如何从数据库中检索数据,并将数据集拼接在一起;

如何往数据库中插入、修改、删除数据;

索引的数据结构及原理;

SQL 语句的优化;

等等。

05、技术框架

技术框架是一组通用类库的集合,它帮助我们让编程任务变得更简单,毕竟轮子替我们造好了。假如说没有技术框架的话,我们就好像坐着马车前行,而不是飞机、高铁和汽车,开发效率就要大大降低了。

06、源代码管理工具

每天上班的时候先从服务器获取最新的代码,然后开始一天的工作,下班走之前切记要提交一次代码,否则就很容易耽搁团队其他成员的开发进度。

07、测试

测试是一项非常重要的工作,占用的时间比代码编写的时间多多了。从单元测试到集成测试,所有的测试结果都要整理成册,所有的边界条件都要测试到,哪怕你觉得完全没有必要。但正是这种一丝不苟的态度,成就了日企软件高质量的美誉。一个优秀的开发人员绝不允许他的代码在交给别人之前不经测试。

08、调试

解决 bug 的难度要比创造 bug 难得多。

调试是为了让你弄清楚代码不能正常运行的真正原因,如果你的调试技巧不过关的话,甚至有可能会被表象蒙骗,从错误的角度去修改 bug,从而引发更多、更大的问题。

程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类

岗位职责

1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。

2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。

3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。

4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。

5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。

6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。

7、负责相关技术文档的拟订。

8、负责对业务领域内的技术发展动态进行分析研究。

职业要求

一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。

大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。

对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。

做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

熟知数据库

为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。

了解 *** 作系统

当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/>

以上就是关于一个高级java工程师需要具备什么能力和技术全部的内容,包括:一个高级java工程师需要具备什么能力和技术、高薪Java程序员,要具备哪些能力、一名优秀的程序员必备的素质是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9446931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存