8年经验前辈分享程序员职业规划-Java学习


导读
 在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的。一位从事 .NET 及 JAVA 方面的开发有8年的时间的前辈,在这里分享自己的亲身经历,与大家一起探讨一下。

明确入选的目的

很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS。
要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易找到工作,收入比普通的工作还要高一些,所以成为了很多高校毕业生的选择。
如果您只是抱着这样一个心态来入行的话,那阁下可真的要小心。

因为干IT这一行竞争本来就比较激烈,特别是页面设计这方面,能够开发的人很多;

所以为了节省成本在大部分公司都会在需要的时候才招聘这类人员,在没有订单的时候一些小公司还可能找各类的借口或者以降薪的手段去开除这类员工。

而在招聘信息上常常会看到“招聘页面设计师,条件:30岁以下……欢迎应界毕业生前来应聘”这样一条;

因为这一类工员对技术上的要求并不高,找应界生可以节约成本。

所以在下觉得“IT行业是吃青春饭的”这句话只是对着以上这类人所说的。

如果阁下缺乏“进取之心”,而只抱着“收入高,容易找工作”这样的态度而入行,那“IT行业是吃青春饭”将会应验了。

选择合适的工具

JAVA、C#、PHP、C++、VB……10多种热门的开发语言,哪一种最有发展潜力呢?

其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习,到有了一定的熟悉程度的时候,要学习另一种的语言也是轻而易举的事情。

开发语言主要分为三大类:
  1. 网络开发:现在网络已经成为世界通讯的一座桥梁,好像 Javascript、PHP、Ruby 这几类开发语言大部分是用作网络开发方面
  2. 企业软件开发:JAVA、C#、VB 这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发
  3. 系统软件:C 语言、C++、Object-C 这些软件更多是用在系统软件开发,嵌入式开发的方面。当然,这分类不是绝对,像 JAVA、C#、VB 很多时候也用于动态网站的开发。


在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。

但所以在刚入门的时候,建议您先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。

明确发展方向

当您对某种开发语言已经有了一定的了解,开始觉得自己如同“行尸走肉”,成为一个开发工具的时候,那您就应该要明确一下自己的发展方向了。

平常在公司,您可以看到做 UI 层的开发人员大多数都有20多岁,他们充满干劲,而且没有家庭负担。

在几年前 ASP.NET MVC 、Silverlight 等刚出现的时候,他们可以在晚上回家的时候买几本书或者直接上网看看,研究三五个星期以后,对需要用到技术就已经有一定的了解了。

而年过30的人多数是已经成了家了,他们每天9:00点上班唯一的希望就是快些到6:00点,能回家吃饭。

吃完饭只想陪孩子玩一下,看看孩子的功课,对新增的技术缺乏了学习的欲望。

所以很多接近30岁的程序员都有着一种逼迫感(包括30岁时候的我自己),再过几年应该怎么办?

这时候,您就更应该明确一下目标,努力向自己的发展方向前进了。

归纳一下,可从下面几项里选择适合自己的一条道路:

01从技术向业务过渡

在国外,很多发达国家都很重视人才,一个高级的程序员与一个 Project Manager 收入相差一般不超过15%。
但中国是世界上人口最多的国家,国内人才众多,所以人才滥用的情况经常可以看到。
一个小公司的开发部里面经常会见到新面孔,但PM却不会常换。
因为做老板的对技术是一窍不通,依他们看来只到拉住 PM 的心,那技术方面方面就能搞得定,至于技术部要换人,他们根本不需要费力气去管。
所以从一个技术员过渡到一个 PM 是一条向前发展的一个选择,但开发人员也需要知道,要成为一个 PM 不单单是使用技术,而更重要的是对管理方面认识。
一个PM主要的工作是组织团队,控制成本,管理业务,控制项目进度,与客户进行沟通,协调工作,定期进行工作报告等。

要成为一个成功的 PM 更要重视组织能力,PM 必须能提高团队的积极性,发挥团队所长,在有限的开发资源前提下为公司得到最大程度上的利润。

成为一个 PM 后,通常不需要直接接触技术开发,而着重管理的是业务发展,但 PM 对技术也需要有一定的了解。

在这里我还是要强调自己的观点:

要成为一个成功 PM 最重视的是管理能力,但对技术也应该有足够的了解;

因为这是与团队成员沟通的桥梁,只有这样才能与整个团队的成员有着紧密的结合,让团队成员感觉到他们自己存在的意义,从而调动团队的积极性,而不是漠视技术人员的存在。

技术并非成为一个成功 PM 的充分条件但却是必要条件!

02从程序员向技术管理发展

其实一个 Team Leader 的职责与 Project Manager 相像,但 Team Leader 更着重于技术开发方面,通常一个大型项目都会有一两个开发团队由 Team Leader 带领,负责开发核心部分,而其它部分分派给不同开发小组或者分派给外包公司。

03单方面向技术发展

能成功技术开发的尖端人才,这是在下最向往的工作,却也没本事登上这个位置。
很多从事开发的人都会认为,业务总会带着“金钱的味道”,老板从来不管开发是否合符开发原则,有否经过必要测试,他们只会在客户面前无尽地吹嘘,项目到期能成功交货,只要不出什么大问题那这个项目就算成功了。

确定未来的目标

人是从历练中成长的,古人云:三十而立,形容的不是一个人的社会地位,经济来源,而是形容一个人对未来的目标,对人生的意向。
要成为一个成功人,就应该早日为自己定下长期的发展目标,作为一个开发者也当如此。
随着人的性格,取向各有不同,大家为自己所选择的路也有不同:
  • 01自立门户,勇敢创业

快30岁了,很多人会认为要想真正赚得了钱,就应该自立门户,为自己创业建立一个基础。
像北京、上海、广州这些一级城市,要买房子,一手楼基本要在 2万~4万元/平方米左右。
而在一家普通的 IT 公司当上一个项目经理,基本收入一般都在1.5万~3万之间(除非在大型的跨国企业内工作,那另当别论)。
要买一间100平方米左右的房子,就算不吃不喝也几乎要10年的年薪。
所以选择自主创业,是很多 IT 开发人员的一个未来目标,想要达到这个目标,就应该更多地把业务作为重点。
不可否认的一件事,在中国社会里很多时候讲的是“关系”,即使这几十年的改革开放使中国的经济蓬勃地发展起来,但几千年来留下的歪风还是不能完全的磨灭。
所以想要创业的人事建议你要多跟客户打好关系,与合作伙伴保持互利互动的模式,这将有利于日后事业的发展。
  • 02急流勇退,退居二线

这也是不少人的选择。
很多人在有了家庭以后,感觉到压力太大,人的一生并非只有事业,他们想把更多时间用于对亲人的照顾,对孩子的关心上。
所以很多人会选择一份像系统分析、系统维护、高校教师、专业学院讲师这一类的工作。
收入稳定,而且往往没有一线开发人员那么大的压力。
  • 03不懈努力,更进一步

无论你是一个 Project Manager 或者是 Team Leader,如果你想继续晋升一级,那还是会两极分化的。
从一个 PM 到一间公司的管理层,那所面对的事件会有很多变化。
一个公司的总经理,要管理的不再是一到两个项目的成本,而是整个部门的运作,整间公司的业务流程,所以要肩负的任务的会更重。
在下曾经有一位上司彭博士,他是企业的最高领导人,年薪超过三百万,而且在报纸杂志上也曾经亮过相。
平常只会在某些会议上轻轻地亮下相,说两句讲词,平常的公司运作与业务管理都不需要他直接执行。
这并不是说一个作为管理层很清闲,因为他们要面对的是更多的社会关系,与公司合作企业的联系上。
这跟一个 PM 的工作的很大的区别,所以要从一个 PM 晋升到管理层,那可是要负出更多的努力与汗水。
如果要从 Team Leader 上升为一个技术总监,那工作的方向也有所改变。
像之前所说:一个 TL 可能更重视的是技术层面,讲求与团队之间的互动合作性,更注重的是开发的完善。
而一个技术总监就无需要直接参加某个项目的开发,而注意的是开发的效率与成果,如何合理使用有限的开发资源,控制开发的风险和可能带来的效果。

发展感受

经历了8年多时间,在下从一个程序员到一个项目经理,之间经过很多的曲折,但因为每一个人的际遇都有所不同,所走的路也有不同。
正所谓条条大路通罗马,成功的路不止一条,在下也不想令各位误解,而只想为大家说一下我的发展方向。
如果您是一位开发人员
程序员->架构师-> Team Leader (Project Manager)->技术总监
是一条不错路,这也是在下选择的路。

在我国,想要进一步提升自己,无论你想是以技术为重点还是以业务为重点,都离不开管理二字。
在一些大型的企业,一个团队往往会配备一个 PM 与一个架构师,尽管两个人负责的任务各有不同,
但你会看到一个架构师的收入往往不如一个 PM,PM 往往是这个团队的核心领导者,是关键人物。
因为公司能否赚钱,PM 有着重要的作用。
PM 与 TL 并没有绝对的区别,而且在一些中小型企业,一个开发团队只有3~5人,一个 TL 往往会兼备业务处理、成本控件、架构设计、开发管理等多项任务。
所以在下会把 Team Leader 与 Project Manager 定于同一层次,一个公司的老板往往不会知道团队的架构师、程序员是何人,
而只会向 PM 询问项目的进度,所以只有晋升到这个层次,才有机会进一步提升管理能力,让自己有上升的空间。
置于要成为一个技术总监,那要求就不再单单是对单个项目的管理,而应该更则重于新兴技术的引用,开发资源的合理利用,对开发项目敏捷性的处理等等,对此在下也在试探当中,未敢多言。

2 个评论

Mark

--来自移动客户端
那……31岁0基础学习java是不是痴人做梦?

--来自移动客户端

要回复文章请先登录注册

Template error, template file not found