怎样才是一个基本水平的java程序员?

  • 熟悉常用的数据结构,包括数组,链表,树,哈希表等。
  • 熟悉结构化编程和面向对象编程。
  • 能够阅读UML设计图,根据UML语义进行编码
  • 了解RDBMS和SQL的使用,包括DDL和DML,理解数据库事务(ACID),锁和死锁。
  • 熟悉Java语法特性,正确理解多线程,同步,临界区,线程安全,异常,泛型等。
  • 了解常用的Java库,比如java.lang,http://java.iohttp://java.net,java.util,java.sql,javax.xml,
  • 能够看懂中英文javadoc,快速上手新的类库和框架。
  • 熟悉Java Web编程,如Servlet,Spring,以及ORM框架。
  • 熟练使用Java IDE如eclipse,尤其是能够调试错误。
  • 会使用构建工具如Ant,Maven构建项目。
  • 会使用JUnit开发单元测试用例,能够使用代码覆盖率工具如EMMA检查测试的覆盖率
  • 如果能够使用代码调优工具提升代码性能更好
  • 如果能够使用静态检查工具如PMD检查代码中的问题会更好
  • 如果能够了解JVM的机制,如垃圾回收,类加载会更好

怎样才是一个进阶水平的Java程序员呢?

  • 掌握面向对象的需求分析和设计
  • 理解SOLID原则,理解常用设计模式,熟练掌握重构
  • 理解面向服务的架构
  • 理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,命名管道,Unix Domain Socket,
  • 熟悉Linux下命令行工具。
  • 深入理解进程,线程。
  • 了解Java内存模型
  • 了解Java的并发包,如锁,读写锁,Barrier,Executer和Future
  • 了解Java 8的Lambda表达式和Streaming API
  • 理解TCP/IP协议族
  • 理解HTTP协议和REST API
  • 理解多路复用和非阻塞IO
  • 熟悉Socket编程,能够使用网络框架如netty开发服务端程序
  • 掌握RPC框架的使用,比如RMI,Thrift,Dubbo
  • 掌握消息队列的使用,如JMS,ActiveMQ等
  • 掌握分布式缓存如memcache,Redis的使用
  • 了解代理和负载均衡如Nginx的使用
  • 熟悉分布式KV存储如zookeeper,etcd等,理解选主和分布式锁
  • 会使用Mock框架进行单元测试
  • 了解性能方面的知识,如吞吐量和时延。
  • 能够进行执行性能测试,收集性能数据并进行分析。
  • 了解安全性相关的知识,比如私密性(加密和解密),完整性(消息认证),不可否认性(签名和验签),身份认证,授权,传输层安全(如SSL/TLS),数字证书和PKI体系
  • 了解可用性相关的知识(,如可用性指标,如MTBF,MTTR,和高可用的实现,如主备。双活,负载均衡
  • 了解容错性,容灾和故障转移

怎样才是一个基本水平的java程序员?的更多相关文章

  1. 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿

    惟楚有材,于斯为盛 本文有感于2019长沙互联网求职招聘大会,内容比较多,但都是我自己的一些所见.所感和所愿. 2019年3月的最后一天,参加2019长沙互联网求职招聘大会,看到了很多的招聘企业,也看 ...

  2. 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波

    注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...

  3. Java程序员月薪三万,需要技术达到什么水平?

    最近跟朋友在一起聚会的时候,提了一个问题,说 Java 程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的 ...

  4. 猿灯塔:Java程序员月薪三万,需要技术达到什么水平?

    最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的不太 ...

  5. 转载:java程序员如何拿到2万月薪

    作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. Java程序员到架构师的推荐阅读书籍

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  7. 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  8. Java架构师之路:JAVA程序员必看的15本书

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  9. 10招让你成为杰出的Java程序员(转)

    如果你是一个热衷于技术的 Java 程序员, 那么下面的 10 个要点可以让你在众多 Java 开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Ob ...

随机推荐

  1. SQLServer2008 有用的判断函数

    ISNULL(参数1,参数2) 若参数1为空,则返回参数2 NULLIF(参数1,参数2) 若参数1和参数2不等,则返回参数1 若参数1和参数2相等,则返回NULL 例子:ISNULL(NULLIF( ...

  2. 安卓学习之学生签到APP(一)

    一.学生定位签到页面 具体实现步骤: 1.1 高德地图申请key 1.创建新应用 进入高德地图api控制台,创建一个新应用.如果您之前已经创建过应用,可直接跳过这个步骤. 2.添加新Key 在创建的应 ...

  3. MacOS 升级后pod 出现的问题

    -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad ...

  4. Assembly之instruction之CMP

    CMP[.W]  Compare source and destinationCMP.B  Compare source and destination Syntax  CMP src,dst or ...

  5. yar 调用rpc方法

    <?php class RpcController extends Yaf_Controller_Abstract { //RPC入口 public function indexAction($ ...

  6. Centos6.6 编译安装nginx

    一.基本环境 nginx 1.9版以后增加了一些新的特性,支持tcp负载均衡,不过这次还是用1.8.0,这里面有个memcached的代理模块,有时间再测试下 1.centos6.6 2.nginx1 ...

  7. 用Python来实现斐波那契数列.

    1).递归 def fib_recur(n): assert n >= 0, "n > 0" if n <= 1: return n return fib_rec ...

  8. SP1825 FTOUR2 - Free tour II 点分治+启发式合并+未调完

    题意翻译 给定一棵n个点的树,树上有m个黑点,求出一条路径,使得这条路径经过的黑点数小于等于k,且路径长度最大 Code: #include <bits/stdc++.h> using n ...

  9. 复习MySQL③导入数据、检查及修改

    导入数据: 用insert into语句为表插入数据: - insert into 表名(字段1,字段2,…) values …… 导入外部文本文件: - 导入外部txt文件(导入CSV文件分隔符为' ...

  10. 【剑指Offer】22、从上往下打印二叉树

      题目描述:   从上往下打印出二叉树的每个节点,同层节点从左至右打印.   解题思路:   本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列.同样我们可以通过 ...