如何才能成为一名合格的 JAVA 程序员?

简介:

在过去几年中,我们一直在努力使“Geek”再次酷起来。总统和总理提倡计算机程序设计成为学校课程的一部分。今天,除了政治,成为一个合格的程序员比以往任何时候都更具挑战性。只是一个内向的天才不再合格。

公司和组织正在寻找有认知能力的人来增加他们的技术能力。这很难用数字表示,因为它非常依赖于公司,但可以在这里应用70/30规则。意即人们应该拥有大约70%的技术技能和30%的软(认知)技能。如果他/她缺乏所需的软技能,那么“硬核”开发人员几乎进不了管理阶段。我曾跨越多个垂直领域管理过许多团队,开发了一些被若干世界上最大的公司所使用的职位描述和职业发展路径。让我们总结一下在公司招聘或晋升时,看上去有点像模式的几个方面。

image

技术能力

嗯,这是一件明摆着的事;技术技能才能让你得到面试机会。当招聘一个Java开发人员时,公司会考虑若干因素。

基础

对Java编程语言基础的理解。

知道如何编写代码是很好的,但是知道代码背后的推理和/或所选择的算法将使你从人群中脱颖而出。

主流编程工具

今天,事实是,你不能成为一个样样都懂的人(杂而不精)。你必须选择你要掌握的工具。有时这是由工作的环境决定的,但是按照下面说的去做也是一个很好的选择:

构建工具:Maven或Gradle。

SCM:Git(不是GitHub。大不相同)。

构建自动化:Jenkins。

IDE:Netbeans或Eclipse——不仅用于编写代码,而且还从IDE中重构和调试代码。我遇到了很多没有如何从他们最喜欢的IDE调试的开发人员。

Bug跟踪:Bugzilla或Jira。

主流编程框架

Spring MVC用于Web开发

JSF的知识

应用程序服务器

所有Java开发人员应该知道如何在Apache Tomcat中部署。

当Glassfish开发停止时,下一个最好的事情是JBoss WildFly。

云开发

在Amazon EC或PaaS上获取免费帐户。

Amazon的另一个选择是Red Hat OpenShift。

认知技能

对Java编程语言和各种工具有深入的了解自然是一件好事,但你的雇主/客户也会从以下方面对你进行评估。

沟通

沟通是我们做好一切事情的关键。我们必须与我们周围的环境互动,无论是在我们的私人还是职业生活中。这不仅仅是把字词放到一起的能力,也包括如何沟通我们面临的问题,或者提出这些问题的解决方案。一个伟大的沟通者知道如何在各种团体前面表达自己;记住,对你来说显而易见的东西,从让他人的角度来看可能并非如此。

问题解决

开发人员是问题解决者,也是哲学家和思想家。不要做那种只会写代码,不参与讨论如何解决问题的程序猿。不要成为那种只会说“告诉我要创建什么,我就创建什么,不要问我这是否为最佳方法”的程序猿。

有团队精神

无论是结对编程还是大型项目,所有开发人员都是作为团队的一部分在工作。你需要致力于团队的目的和目标。帮助指导初级成员,或帮助苦苦挣扎的团队成员克服障碍。不要有那种“我在这里只要做好我的工作,然后就可以回家了”的态度。成为团队的一部分。你不需要成为“团队小丑”或总是出去参与团队活动,但要成为团队的一员。

自学

这是一个非常重要的技能;在你自己的时间学习新技能的能力。不要总是等待公司为你提供培训。你需要自己去学习新技术,提升自己在相关领域的水平。从前端开发到架构模式,总是有一些新生事情值得学习。阅读博客和文章,尝试加入本地聚会小组。你学到的东西可以为你的事业开辟新的顶点。

文章转载自 开源中国社区 [http://www.oschina.net]

目录
相关文章
|
8月前
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
836 35
|
8月前
|
Java 程序员 应用服务中间件
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
144 0
|
8月前
|
存储 缓存 Java
【高薪程序员必看】万字长文拆解Java并发编程!(5):深入理解JMM:Java内存模型的三大特性与volatile底层原理
JMM,Java Memory Model,Java内存模型,定义了主内存,工作内存,确保Java在不同平台上的正确运行主内存Main Memory:所有线程共享的内存区域,所有的变量都存储在主存中工作内存Working Memory:每个线程拥有自己的工作内存,用于保存变量的副本.线程执行过程中先将主内存中的变量读到工作内存中,对变量进行操作之后再将变量写入主内存,jvm概念说明主内存所有线程共享的内存区域,存储原始变量(堆内存中的对象实例和静态变量)工作内存。
264 0
|
8月前
|
设计模式 缓存 安全
【高薪程序员必看】万字长文拆解Java并发编程!(8):设计模式-享元模式设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的经典对象复用设计模式-享元模式,废话不多说让我们直接开始。
187 0
|
8月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
159 0
|
8月前
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
311 0
|
8月前
|
存储 监控 算法
Java程序员必学:JVM架构完全解读
Java 虚拟机(JVM)是 Java 编程的核心,深入理解其架构对开发者意义重大。本文详细解读 JVM 架构,涵盖类加载器子系统、运行时数据区等核心组件,剖析类加载机制,包括加载阶段、双亲委派模型等内容。阐述内存管理原理,介绍垃圾回收算法与常见回收器,并结合案例讲解调优策略。还分享 JVM 性能瓶颈识别与调优方法,分析 Java 语言特性对性能的影响,给出数据结构选择、I/O 操作及并发同步处理的优化技巧,同时探讨 JVM 安全模型与错误处理机制,助力开发者提升编程能力与程序性能。
Java程序员必学:JVM架构完全解读
|
9月前
|
人工智能 Java 程序员
Java程序员在AI时代必会的技术:Spring AI
在AI时代,Java程序员需掌握Spring AI技术以提升竞争力。Spring AI是Spring框架在AI领域的延伸,支持自然语言处理、机器学习集成与自动化决策等场景。它简化开发流程,无缝集成Spring生态,并提供对多种AI服务(如OpenAI、阿里云通义千问)的支持。本文介绍Spring AI核心概念、应用场景及开发步骤,含代码示例,助你快速入门并构建智能化应用,把握AI时代的机遇。
1962 61
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
277 9
|
8月前
|
网络协议 Java 大数据
【高薪程序员必看】万字长文拆解Java并发编程!(1)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
140 0