怎样成为一个好的程序员

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(使用前将#替换为@)

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

  • 如何在测试套件中定义 JUnit 方法规则?

    我有一个类 它是 JUnit 测试类的 JUnit 套件 我想定义一个规则on the suite 这是可以做到的 但需要做一些工作 您还需要定义自己的 Suite 运行程序和测试运行程序 然后在测试运行程序中重写 runChild 使用以
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

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

    前言 之前一直觉得财富自由似乎遥不可及 但今年学习理财以来 至今已有一年的样子了 读完了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语言的基础知识以及