【分享】熟练的Java程序员应该掌握哪些技术?
Java程序员应该掌握哪些能力才能算是脱离菜鸟达到熟练的程度?
1、语法:Java程序员必须比较熟悉语法,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息 知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java 实际上还很不了解。
3、工具 :必须至少熟练使用一种IDE的开发工具,例如Eclipse、MyEclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是Java程序员必须熟悉的,否则不可能熟练的运用Java。
5、测试 :必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:Java程序员必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。
9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。
10、博学:Java程序员除了精通Java意外,还要掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索 引擎优化、缓存系统设计、网站负载均衡、系统性能调优等。
11、学习能力:现在技术升级更新很快,新技术不断的出现,作为一个合格的Java程序员,需要不断的学习这些技术,这叫要求我们程序员有一个好的学习能力。
12、待定...
还有其他的吗?欢迎提供...
引用:
原帖由 breakyang2011 于 2013-9-25 10:45 发表
我的经验不多,但是希望我的回答能够帮助你。
首先楼主的问题 ---熟练的java程序员应该掌握哪些技术。对于这个问题本身,我想说明一下,JAVA语言已经有十多年的历史,现在已经发展出自己的一套开发平台,包括JAVA开发语言,虚拟机平台,开发框架,公共程序库等一系列复杂的体系。从大的方面分:第一个方向是java开发的桌面程序(这类软件相当于C++开发的桌面软件如QQ等。)第二个方向是java 企业级开发,这个也是java最重要的发展方向,无论是业绩的支持,还是程序员的选择,都是三个方向中的热门。企业级开发简单的说就为企业客户定制符合公司业务的软件系统,帮助企业实现信息化管理。第三个方向java的嵌入式方向,前几年是J2ME,现在java
的嵌入式方向基本代表着Android手机开发,现在移动开发是一个热门,如果楼主是学生的话可以选择从事这个方向。介绍了这么多,说一下我的观点:对于java语言的掌握,java基础的语法,集合框架,IO系统,线程操作自然要知道,或者会写简单的程序。但是下一步,就要根据你要从事的技术方向,如上面提到的三个方向。对于任何一个方向,需要的java语言的内容都是整个java语言的子集。比如我从事的企业级开发,很少用到线程的代码(我的经验也不多)。其他的方向也是一样,都有各自的子集。
下面对你写的每一点做回答:
1 语法:基础语法自然不用说,必须掌握。对于程序报错信息,可以通过搜索引擎(建议Google)去搜索,慢慢就会总结出规律。
2 命令:我的经验不多,在工作过程中,很少用到命令,因为都是在IDE下工作,但是如果你是在学习,当然知道越多越好。这个都是逐步丰富的去学,建议楼主不要想着一下子学到低,编程语言的学习是渐进式的,在学习一段时间后,运用,慢慢理解了,再去学更多的东西。不可能一下子把某一个方向学通,比如你想把所有命令都能记住,熟练掌握,虽然好,但是有的命令不常用,反而浪费精力。
3 工具:在学习时候,可以自己用命令编译些小程序,但是要是想做点成规模的东西,IDE还是一个必要的选择。IDE选择一种,一直用下去,不要总是图新鲜总换,推荐Eclipse,因为是免费的,毕竟咱们是程序员,用盗版开发工具也是对同行的辛苦的不体谅,Eclipse同时也是一个很好的开发工具,可以满足需求。
4 API:API的却很多,还是根据你选择防线去学习对应的API,基础的API,java se中包涵的都是基本的api,你可以学习那些。但时间上并不用那么多。学习一些常用类,然后慢慢在实践中丰富。切记不要像学书本一样,一定要学习一些用一些。
5 测试:Junit 需要掌握一下,但是在团队开发时候才会大量用,学习时候不会那么用。
6 管理:ant用过一点,的确不错。但是在学习过程中不用太重视这个,这个都是用于开发团队的管理才用到。而且如果你的团队采用ant,你现学都是没有问题的。普通的代码,打包Eclipse都可以完成。
7 排错:排错完全靠积累,错多了,自然就知道。排错也是学习的好方法。
8 思想:这么说吧,思想是不能直接学来的,你只有在用的过程中,去慢慢体会,直接去学OOP思想,不如去打一局LOL
9 规范:代码规范选择自己喜欢的,都行。团队开发,就看你老大定什么规范了,大公司都有代码规范,不要在这个上浪费时间。
10博学:其实你说的博学,就是我说的方向,你选定方向,去学对应的技术,你列举的都是企业级开发的框架,如果你选择这个方向,自然要学习,如果不是,是浪费时间。人的精力有限,你不可能学会所有。
11 学习能力:说一个我的观点,我天天看技术新闻,今天来个新语言,明天来个新版本,但是其实在实际工作中,这种更新是很慢的,起码在企业级开发领域。起码是已年为单位的。因为架构不是说换就换的,技术风险等等,软件工程更多的是编程之外的事情。所以不要着急,像我以前一样。另外升级都是根据之前的基础,所以你打好基础,自然不会是坏事。
最后 编程这条路挺艰辛,如果热爱,希望能坚持。
【分享】熟练的Java程序员应该掌握哪些技术?的更多相关文章
- 腾讯架构师分享的Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- 分享下对JAVA程序员成长之路的总结<转>
我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,手痒来给新人分享下从新手成长为老鸟的已见. 首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set ...
- 【Java分享客栈】Java程序员为争一口气熬夜硬刚CSS实现掘金首页
前言 如果我做不了最厉害的Java工程师,那我就做Java工程师中最厉害的前端工程师. 前段时间,我默默给自己又喂了这碗心灵鸡汤-- 我不是很厉害的Java工程师,哪怕我已经工作八年,我依然觉得自己和 ...
- 要做Java程序员 需要知道那些技术 重点有那些
一.Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 ...
- 月薪3万Java程序员要达到的技术层次
要达到月薪3万,一般要在北上广深杭知名的互联网公司,同时要在某一个知识领域达到专家级别,而不是简单的掌握SSH那么简单.虽然对部分人有点难,但目标还是要有的,万一实现呢? 首先三万的月薪在BAT实在太 ...
- “大话架构”阿里架构师分享的Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- “大话架构”阿里架构师分享Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- java程序员需要掌握些什么知识
java程序员需要掌握些什么知识 合格的程序员应具有实际开发能力的Java和J2EE.如今的IT企业需求量大,但人才紧缺的.企业需要大量掌握Java/JEE/Oracle/WebLogic/Websp ...
随机推荐
- 在SQL Server中使用CLR调用.NET类库中的方法 (转载)
在SQL Server中调用 .NET 类库的方法要分为下面几步来实现: 在.NET中新建一个类库项目,并在这个项目中添加一个类文件,并把要被SQL Server调用的方法定义为公有的,静态的方法. ...
- 转:C# lock用法
lock 的目的很明确:就是不想让别人使用这段代码,体现在多线程情况下,只允许当前线程执行该代码区域,其他线程等待直到该线程执行结束:这样可以多线程避免同时使用某一方法造成数据混乱. 一般定义如下: ...
- shell變量和數組
我們要知道shell是一個很重要的腳本能幫助我們完成很多事情 shell語言其實和很多的語言的語法是差不多的 變量: 變量的定義很簡單的,但是等號兩邊是不可以有空格的(不能有空格) 命名只能使用英文字 ...
- Android开发中使用七牛云存储进行图片上传下载
Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...
- 49_分析代理类的作用与原理及AOP概念
生活中的代理 武汉人从武汉的代理商手中买联想电脑和直接跑到北京传智播客旁边来找联想总部买电脑,你觉得最终的主体业务目标有什么区别吗?基本上一样吧,都解决了核心问题,但是,一点区别都没有吗?从代理商那里 ...
- Linux系统优化之设置swappiness值提高MySQL查询性能
对MySQL来说,操作系统层面的优化也可以值得考虑一下:就是swappiness. swappiness的大小主要对如何使用swap分区有着密切的联系. 来看一下: [root@chaofeng ~] ...
- SQL server 数据库基本插入、删除命令
一.实验素材: 附加学生信息表(student) 二.实验要求: 1. 查询student表中所有学生的信息 select * from student 2. 查询student表中“姓名”“ ...
- November 13th, 2017 Week 46th Monday
Don't undermine your worth by comparing yourself with others. 别拿自己和他人比较,这只会降低你原有的价值. Honestly, I don ...
- FZU Monthly-201903 tutorial
FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. D ...
- SVG绘制图形
一.SVG介绍 1.SVG指可伸缩矢量图片 2.SVG用来定义用于网络的基于矢量的图形 3.SVG使用XML格式定义图形 4.SVG图像在放大或改变尺寸的情况下其图形质量不会有损失 5.SVG是万维网 ...