干货系列2:看看Java桌面应用开发的职业发展空间与必备技能

导读:
   我前面两篇文章分别写了java软件开发和java互联网开发工程师的职业发展和技能要素,今天说一说Java桌面应用开发的程序员,他们一般来说对未来发展尤为困惑,确实,用Java可以创建出桌面应用,但只要我们想开发真正的富桌面应用,还需要使用JNI、C/C++等等技能。所有,也许了解如何系统的建立自己的知识体系,是你困惑的的根本原因。

  所以,如果你正在(或未来)做Java桌面应用开发,并且对你未来的职业道路感到迷茫和不知所措。跟我来,我将就java桌面应用的发展路线和所需要的技能一一说明,或许对你会有所帮助。

简单了解一下java桌面工程师:

首先,告诉你,Java桌面开发很强大:
Java桌面应用也有很多很成功的产品,比如eclipse,lutos notes,lotus sametime,DB2的管理控制工具,凡是IBM和oracle的桌面工具大部分都是Java写的,不同点就在于有的是swing写的,而IBM一般用SWT。

Java互联网开发工程师的主要岗位职责(真的有人不知道):
从事软件架构设计及编码工作,参与系统的设计、测试以及部分开发工作。

言归正传--发展:


职业发展道路基本有两条:技术专精路线、技术转产品路线

1.技术专精--晋升轨迹基本是这样:
第一条路线:初级Java开发---中级开发--高级开发---软件架构师--系统架构师---项目经理----系统分析师

2.技术转产品--晋升轨迹基本是这样:
第二条路线:初级Java开发---中级开发--高级开发---软件架构师--系统架构师--产品经理---产品总监


具体分析--晋升需要的技能要素:

第一条路线:技术专精路线
第一阶段:初级--中级开发工程师(公司基层)

需要掌握的基本技能有:

  • Java常用框架
  • 了解Java版本区别
  • Java程序设计基础知识
  • 常用团队协作开发工具
  • Java GUI程序设计
  • Java常用框架(Struts MVC、Spring、Hibernate框架)
  • UML建模语言
  • TCP/IP协议原理与应用
  • Java se技术

  以上是入门和提高的阶段需要的技能,然后再学习基本的Windows内核原理 、Linux内核编程技术,一般来说,坚持学习一年,就可以成为一名中级开发工程师。
  初级阶段是最迷茫的,工作很杂,还要学习技能,是很辛苦,容易让人放弃,我的办法是制定季度学习计划,然后是执行和坚持,持之以恒(唉,我知道这里面说起来容易做起来难,只能看个人的修为了)。
  加快技能提高的方法通常有:看专业书,搜集资料,看源码,多在网上讨论和回答问题。
我在学习专业书的一些习惯:

  • 书一本本的看,贪多嚼不烂,在基础章节多下功夫,高深部分在初期先不看。这样学习进度可以保障,也有成就感。

  • 记笔记
  • 多做题,不光书上的题,还有网上的资源,也包括回答问题。

第二阶段:成长为高级开发工程师晋升目标Java项目经理(公司中层)
需要再学习的技能有:

  • 编译原理

  • 数据建模
  • 需求分析设计
  • 数据结构
  • 设计模式
  • 软件架构和系统架构相关知识

(别怕,6座网上有技能对应的学习资源,如:图书、免费公开课)

从高级开发工程师到项目经理还要学习。

  • Linux内核编程
  • UNIX/Linux 系统管理
  • 软件项目风险管理
  • 常用算法
  • 软件性能测试
  • socket套接字网络编程
  • 软件工程系统知识

项目经理作为一名中层管理者还需要学习些锦上添花的知识,比如:流程管理、团队运营管理。

第三阶段:系统分析师向首席技术官发展(公司高层)
系统分析师工作会用到技能:

  • 项目管理系统方法

  • 软件工程系统知识
  • 网络安全技术与解决方案(Cisco)
  • 可行性分析以及建模

系统分析师工作中会经常就项目与行业专家、用户沟通,通过他们的意见,分析得出该项目所具备的特点、成本、风险等,最终给公司和客户一个相对可靠的确定性结论或实施方案模型。
   因此,系统分析师经常在各种方案中进行抉择,这时,是考验你的判断和分析能力,当然,这些能力都源自你的技术体系是否完备,还有就是经验的累积了,这个职位没有积累是不行的。
图:

互联网的圈子不大,做Java桌面应用开发的圈子更小,只要你热爱编程,肯努力,不断的坚持,一定有一天会体会到“莫愁前路无知己,天下谁人不识君”的感觉。

第二路线:技术转产品专精路线

   因为Java桌面应用开发多以技术外包或产品出售为目的,所以,即便要转型到产品经理,也需要很扎实的技术根基才能把工作做好。

第一阶段:选择最佳转型时机
  当你有转型的想法的时候,严格意义上不叫转型,应该叫转岗。因此,在我的职业发展规划建议是,当你完成初级初级到高级Java工程师,最好到了系统架构师的水平再转到产品经理的角色上去,这样,技术不会丢,项目经验也积累了不少,做起产品经理会更加得心应手。(第一阶段主攻技能,同第一条线路的第一阶段一样)

第二阶段:转型产品经理,目标向产品总监发展
做产品经理,你需要补充的技能有:

  • 需求分析设计

  • 用户心理体验
  • 快速原型设计工具
  • 网站信息架构
  • 界面交互式系统设计

 还有就是人际关系的处理,你会同时和内外部人做各种协调。多看看团队沟通与协作方面的书。

第三阶段:产品总监---公司副总
你的知识体系将发生变化,主要需要补充带团队和管理方面的技能:

  • 管理学

  • 商业心理学
  • 经济学原理
  • 数据分析
  • 预算管理

  选择产品--管理这条路线除了技术,同时还考验你的综合管理素质,这时的你将要管理几个项目团队,乃至运营整个公司。

图:

最后,再回顾一下周鸿祎的话:如果说有天赋,那只是在漫长的过程中不断经历痛苦,不断尝试失败,不断学习从而培养起来的。所以,不要听那些有用的废话。为自己的职业生涯负责,做规划、选方向、定学习计划,然后,去执行、去坚持。除此,没有捷径。(强调一下,我不喜欢周的做事风格,但他说的话和做的产品还是很靠谱的)

完整发展路线图:

  这篇文章内容参考了6座网的《Java桌面应用开发工程师职业规划图》,在6座网上有很详尽的发展路线和技能、学习资源的介绍。

java干货系列文章:

干货:从技能角度谈--Java软件开发工程师的自我修养与晋升(B/S结构)(图文详解)

干货系列1:Java互联网网站开发工程师 的技术提高与晋升路线(技术专精)

干货系列2:看看Java桌面应用开发的职业发展空间与必备技能

时间: 2024-10-06 11:56:28

干货系列2:看看Java桌面应用开发的职业发展空间与必备技能的相关文章

干货系列1:Java互联网网站开发工程师 的技术提高与晋升路线(技术专精)

前几天写了自己对于Java软件开发工程师职业发展规划方面的一些感悟,陆续收到一些反馈,希望我能再就Java工程师不同的开发(职责)方向谈谈职业发展问题.(上一篇:Java软件开发工程师的自我修养与晋升(B/S结构)下面就具体谈谈Java程序员的另一个职责方向:Java互联网开发工程师 Java互联网开发工程师的主要岗位职责是: 负责网站平台的系统设计.数据库设计.代码开发,以及技术攻关的工作. 职业发展道路基本有3条: 第一条路线(技术专精): 初级Java开发---中级--高级---项目主管-

java高并发系列 - 第15天:JUC中的Semaphore,最简单的限流工具类,必备技能

这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能允许一个线程访问一个资源,而信号量可以控制有多少个线程可以访问特定的资源. Semaphore常用场景:限流 举个例子: 比如有个停车场,有5个空位,门口有个门卫,手中5把钥匙分别对应5个车位上面的锁,来一辆车,门卫会给司机一把钥匙,然后进去找到对应的车位停下来,出去的时候司机将钥匙归还给门卫.停车

CSDN日报20170511 ——《开发人员的必备技能》

[程序人生]开发人员的必备技能 作者:葡萄城控件技术团队 对于刚开始学习软件开发的新人来说,"必备技能"往往意味着一个长长的.标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增. 本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径. 点击阅读全文 [物联网]JavaScript -- 下一代物联网全栈开发 作者:CSDN物联网开发 当下这个物联网大热的时代,JavaScript 支持 HTTP 和 JSON.支持函数式编程.可

开发人员的必备技能

对于刚开始学习软件开发的新人来说,"必备技能"往往意味着一个长长的.标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增. 本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一个比较明确的学习重点和路径. 深入学习一门编程语言 没有掌握任何一门编程语言,就不可能成为一名编程人员. 许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要.虽然我认为开发人员最终会学习多种编程语言,  但建议不要在开始时这样做.  因为同时学习多种语

[转]Java多线程干货系列—(一)Java多线程基础

Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境 2 进程:执行中的程序一个进程至少包含一个线程 3 单线程:程序中只存在一个线程,实际上主方法就是一个主线程 4

Spring Boot干货系列:(五)开发Web应用JSP篇

Spring Boot干货系列:(五)开发Web应用JSP篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度有点大,但是玩起来还是蛮有意思的. 正文 先来看看整体的框架结构,跟前面介绍Thymeleaf的时候差不多,只是多了webapp这个用来存放jsp的目录,静态资源还是放在resources的static下面. 引入依赖 使用内嵌的to

nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Windows程序员的事实). 操作系统 API.操作系统发展到今日,几乎桌面应用的所有功能,都是基于系统API构建的.调用API和语言及技术无关,哪怕是使用汇编.例如(代码来源于网络,本地重新编译): ;我的第一个win32汇编程序 ;一个经典的hello world !程序 ;>>>>&

Spring Boot干货系列:(二)配置文件解析

Spring Boot:配置文件解析   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties. 正文 Spring Boot使用了一个全局的配置文件applicat

Spring Boot干货系列:(一)优雅的入门篇

Spring Boot干货系列:(一)优雅的入门篇http://www.cnblogs.com/zheting/p/6707032.html  全篇参考:http://www.cnblogs.com/zheting/category/966890.html 前言 Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备.   正文 首先声明,Spring Boot不是一门新技术,所以不用紧张.从本质上来说,