怎样成为一个好的程序员

2023-11-04

1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class,object,interaction以及statediagrams。

2.你需要学习Java语言的基础知识以及它的核心类库(collections,serialization,streams,networking,?multithreading,reflection,event,handling,NIO,localization,以及其他)。  3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。

4.如果你将要写客户端程序,你需要学习Web的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT,?SWT。你还应该对UI部件的JavaBEAN组件模式有所了解。JavaBEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。

5.你需要学习Java数据库技术,并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO,?CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。

6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如racle,mysql,mssqlserver。

7.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。

8.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。

9.你需要学习如何使用及管理Web服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护Web程序。

10.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。

11.你需要掌握各种流行中间件技术标准和与Java结合实现,比如Tuxedo、CROBA,当然也包括JavaEE本身。

12.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

13.你应该学习如何利用Java的API和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ?(SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging),?JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

14.你需要学习一门轻量级应用程序框架,例如Spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。

15.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS?(JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX?(JavaManagementeXtensions),以及JavaMail。  16.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean-?ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者?Message-DrivenBeans(MDB)。

17.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。

18.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流Java规格和执行。例如AspectJ和AspectWerkz。

19.你需要熟悉对不同有用的API和framework等来为你服务。例如Log4J(logging/tracing),Quartz?(scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching),?Lucene(full-textsearch),JakartaCommons等等。

20.你应该熟练掌握一种JavaIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)

21.Java(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet。

22.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。

23.你需要熟悉一些在Java开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。

24.你还需要紧跟Java发展的步伐,比如现在可以深入的学习Webwork2.0

25.你必需要对实际项目的开发流程有所了解,至少要有两个有实际应用价值的项目,而不是练习项目!因为现在企业看重的是你有没有实际的开发经验,真正开发经验的体现就是你做的项目,也就是有实际应用的项目!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎样成为一个好的程序员 的相关文章

随机推荐

  • 一套简单的基本生活财富自由方案

    前言 之前一直觉得财富自由似乎遥不可及 但今年学习理财以来 至今已有一年的样子了 读完了100本书 再加上实操经验 发现虽然成为富豪依然遥不可及 但一些基本的财富自由方案已经可以实现了 试算了一下 按照保守收益估计 其实是完全可以实现的 经
  • hadoop支持lzo完整过程

    简介 部署 安装lzop native library 安装hadoop lzo 配置hadoop环境变量 验证lzo通过hive测试 创建lzo表 导入数据 索引LZO文件 利用hive执行mr任务 修改使用中hive表的输入输出格式 简
  • .\Objects\new project.axf: Error: L6200E: Symbol __asm___17_system_mb9bf40x_等5个报错的原因

    不知道有没有人遇到我这种问题 二十分钟才大概把错误原因的范围锁定在device那里 这是所有的报错 如果你遇到了这样的错误 那么接下来就可以解决这个问题了 提示重复定义了后面的 这里无论你用的什么芯片 只要报错的前部分信息一样 我想解决办法
  • Python发送Post请求及解析响应结果

    一 Post请求 1 使用python发送一个Post请求 有时候遇到请求url中有很多参数 1 1 示例1 accounts和pwd请到http shop xo hctestedu com 注册 import requests 请求体 d
  • 父组件监听子组件声明周期的方法

    父组件 hook mounted watchChild watchChild写监听到子组件生命周期触发后 要走的逻辑
  • 【Confluence】创建分级文件目录

    需求 在confluence文档中构建如下图所示的分级目录文件 解决 首先在该目录下创建一个文件 确定好位置 创建好之后 在该创建好的文件下在重复创建文件即可
  • 【Python基础】Matplotlib如何绘制多个子图的几种方法

    作者 雪山飞猪 博客地址 https www cnblogs com chenqionghe p 12355018 html 说明 本文经作者授权转载 禁止二次转载 Matplotlib是Python的底层绘图工具 可定制性很强 很多人刚开
  • Redis分布式锁的实现方式、实现原理

    目录 一 分布式锁的重要性与挑战 1 1 分布式系统中的并发问题 竞态条件 数据不一致 死锁 二 分布式锁的基本原理与实现方式 2 1 分布式锁的基本概念 2 2 基于数据库的分布式锁 原理与实现方式 优缺点 2 3 基于缓存的分布式锁 原
  • flutter视频播放videoplayer与chewie

    在Flutter中虽然官方提供了video player来播放视频 video player官网链接 video player Flutter Package 但是video player只有单纯的播放功能 进度条 全屏这些功能只能自己实现
  • 04_使用决策树对银行贷款进行建模

    使用决策树对银行贷款进行建模 1 实验描述 使用Python编程 输入为自定义数据集 分别为贷款对象的四个属性 年龄 是否有房 是否有工作 信用情况计算所有可能的特征的信息增益 选择最优的特征值划分数据集 进而递归地构建决策树 其中为了更加
  • Infinite Sequence

    Description Vasya likes everything infinite Now he is studying the properties of a sequence s such that its first elemen
  • IPv6 Scope:Link连接问题

    Linux中设置的IPv6地址有两种类型 一种是Scope Global 另一种为Scope Link 后者是有MAC地址通过一定的格式转换出来的全球唯一的本地链路地址 ifconfig eth0 Link encap Ethernet H
  • 【华为OD机试真题2023B卷 JAVA&JS】阿里巴巴找黄金宝箱(II)

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 阿里巴巴找黄金宝箱 II 知识点数组哈希表优先级队列 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地
  • 【2019最新原创,持续更新】树莓派3B/B+ windows10 ARM(完整win10桌面系统 非iot)安装教程-Raspberry Pi

    原标题 树莓派3B windows10ARM SD卡完美2分钟启动镜像 现全新改为教程帖 目前发帖时间在19年2月以前的教程基本已经失效或安装成功后非常不稳定 本教程无需手动输入一条命令 无需dg 完全图形化部署且系统可稳定运行 之前因为个
  • linux更改网关没有生效,linux服务器网关配了不立即生效

    弹性云服务器 ECS 弹性云服务器 Elastic Cloud Server 是一种可随时自助获取 可弹性伸缩的云服务器 帮助用户打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率 三年低至5折 多种配置可选了解详情
  • React生命周期中有哪些坑?如何避免?

    在讨论React 的生命周期的时候 一定是在讨论类组件 因为函数组件并没有生命周期的概念 它本身就是一个函数 只会从头执行到尾巴 其实生命周期只是一个抽象的概念 大部分人看到生命周期想到的往往都componentDidMount compo
  • Linux——进程间通信的常见方法(管道、信号、共享映射区、本地套接字)、管道的了解与简单用法

    进程间通信IPC的原理 常见的进程间通信方式有 管道 使用最简单 信号 开销最小 共享映射区 无血缘关系 本地套接字 最稳定 二 管道的特质与基本用法 内核借助环形队列机制 使用内核缓冲区实现 血缘关系间进程可用 创建并打开管道 int p
  • 数组指针和指针数组的区别

    数组指针 也称行指针 定义 int p n 优先级高 首先说明p是一个指针 指向一个整型的一维数组 这个一维数组的长度是n 也可以说是p的步长 也就是说执行p 1时 p要跨过n个整型数据的长度 如要将二维数组赋给一指针 应这样赋值 int
  • 通用视觉框架OpenMMLab实践,MMEditing工具包,windows10配置

    活动地址 CSDN21天学习挑战赛 1 MMEditing 面向图像编辑的工具包 支持图像修复 图像转译 图像修补 图像超分任务 2 检查自己pytorch的版本 pytorch和cuda安装配置可以参考这里 在python中输入 impo
  • 怎样成为一个好的程序员

    1 你需要精通面向对象分析与设计 OOA OOD 涉及模式 GOF J2EEDP 以及综合模式 你应该了解UML 尤其是class object interaction以及statediagrams 2 你需要学习Java语言的基础知识以及