一、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等 。
二、熟悉基于JSP和Servlet的JavaWeb开发 , 对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行JavaWeb项目开发的经验 。
三、对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,熟练的使用Spring进行事务、日志、安全性等的管理,有使用SpringMVC作为表示层技术以及使用Spring提供的持久化支持进行Web项目开发的经验,熟悉Spring对其他框架的整合 。
四、熟练的使用Hibernate、MyBatis等ORM框架 , 熟悉Hibernate和MyBatis的核心API,对Hibernate的关联映射、继承映射、组件映射、缓存机制、事务管理以及性能调优等有深入的理解 。
五、熟练的使用HTML、CSS和Javascript进行Web前端开发,熟悉jQuery和Bootstrap,对Ajax技术在Web项目中的应用有深入理解,有使用前端MVC框架(AngularJS)和Javascript模板引擎(HandleBars)进行项目开发的经验 。
六、熟悉常用的关系型数据库产品(MySQL、Oracle),熟练的使用SQL和PL/SQL进行数据库编程 。
七、熟悉面向对象的设计原则,对GoF设计模式和企业应用架构模式有深入的了解和实际开发的相关经验,熟练的使用UML进行面向对象的分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)的经验 。
八、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器和应用服务器的使用 , 熟悉多种服务器整合、集群和负载均衡的配置 。
九、熟练的使用产品原型工具Axure,熟练的使用设计建模工具PowerDesigner和EnterpriseArchitect , 熟练的使用Java开发环境Eclipse和IntelliJ,熟练的使用前端开发环境WebStorm,熟练的使用软件版本控制工具SVN和Git,熟练的使用项目构建和管理工具Maven和Gradle 。
01、吃透一门编程语言
这个技能看起来似乎没有必要强调,但就怕“贪心”,不要学过时的编程语言,并且吃透他,很关键 。
02、整洁的代码
当你学会一门编程语言之后,接下来要考虑的事情就是让你编写的代码变得更整洁,更易于理解,更富有艺术 。Elliot Chance 曾表达过这样一个观点,他说:“要分辨两个程序员的优劣,就是给他们一样的时间,越好的程序员写出来的代码越少(当然是可以运行的) 。”
03、算法与数据结构
敲代码的过程中经常遇到一些实际的问题,由于无法充分利用数据结构将数据之间的关系通过合适的算法策略进行有效地存储转换,就导致程序的性能很低 。多投入一点到数据结构和算法上面去,它决定了我们的技术高度 。数据结构和算法是重要的基础知识,学习它们的过程就像是在打地基 。
04、基本的数据库知识
虽然软件开发人员更应该专注于程序设计而非编写和优化 SQL(应该交给专业的数据库管理员负责),但在我们国内,只有顶尖的企业才会有数据库专家 。如果你想要在软件开发这条道路上走得更高更远,懂一些基本的数据库知识是必须的,比如说:
如何将业务中的对象属性转化为数据库字段;
如何从数据库中检索数据 , 并将数据集拼接在一起;
如何往数据库中插入、修改、删除数据;
索引的数据结构及原理;
SQL 语句的优化;
等等 。
05、技术框架
技术框架是一组通用类库的集合,它帮助我们让编程任务变得更简单,毕竟轮子替我们造好了 。假如说没有技术框架的话,我们就好像坐着马车前行 , 而不是飞机、高铁和汽车,开发效率就要大大降低了 。
06、源代码管理工具
每天上班的时候先从服务器获取最新的代码,然后开始一天的工作,下班走之前切记要提交一次代码 , 否则就很容易耽搁团队其他成员的开发进度 。
07、测试
【现在的程序员应该重点掌握什么技术呢】
测试是一项非常重要的工作,占用的时间比代码编写的时间多多了 。从单元测试到集成测试,所有的测试结果都要整理成册,所有的边界条件都要测试到 , 哪怕你觉得完全没有必要 。但正是这种一丝不苟的态度,成就了日企软件高质量的美誉 。一个优秀的开发人员绝不允许他的代码在交给别人之前不经测试 。
08、调试
解决 bug 的难度要比创造 bug 难得多 。
调试是为了让你弄清楚代码不能正常运行的真正原因,如果你的调试技巧不过关的话,甚至有可能会被表象蒙骗 , 从错误的角度去修改 bug,从而引发更多、更大的问题 。