0731-88720118
当前位置: 首页 资讯中心 Java开发八年的经验分享,送给迷茫中的你

Java开发八年的经验分享,送给迷茫中的你

Java开发八年的经验分享,送给迷茫中的你


选择合适的工具

JAVA、C#、PHP、C++、VB……计算机语音种类繁多,哪一种最有发展潜力呢?其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要学到一定程度,转而学习另一种语言也会比较轻松。

开发语言重点分为三大类:

1. 网络开发

网络已经成为世界通讯的一座巨大桥梁,Javascript、PHP、Ruby这几类开发语言大多是用在网络开发方面。

2. 企业软件开发

JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,大多用于企业系统的开发。

3. 系统软件

C语言、C++、Object-C、汇编语言这些软件更多的是用在系统软件开发,嵌入式开发的方面。

当然,这并不是绝对的,像JAVA、C#、VB有时候也会用于动态网站开发。很多开发项目都会选择集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。所以在刚入门的时候,可以先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。

明确发展方向



当对某种开发语言已经有了一定的了解,觉得自己像个开发工具一样的时候,就可以重新明确一下自己的发展方向了。


1. 从技术向业务过渡

在国外,很多发达国家都很重视人才,一个高级的程序员与一个Project Manager收入相差一般不超过15%。但中国人口众多,所以造成了国内人才滥用的情况。一个小公司的开发部里面经常会见到新面孔,但PM却不会常换。因为老板对技术一窍不通,在他们看来有了一位衷心的PM,那么技术方面似乎不用再担心了,至于技术部要换人,他们不会在意。所以从一个技术员过渡到一个PM是向前发展的一个重要过程,但要成为一个PM不仅仅是只有技术,还要有足够的管理能力。一个PM的工作内容大概就是组织团队,控制成本,管理业务,控制项目进度,与客户进行沟通,协调工作,定期进行工作报告等。所以要成为一个优秀的PM,组织能力尤为重要,PM必须能提高团队的积极性,发挥团队所长,在有限的开发资源下为公司谋得最大的利润。成为一个PM后,通常不用直接接触技术,着重管理的是业务发展。但要成为一个成功PM除了管理能力,对技术也得有足够的了解,因为这是与团队成员沟通的桥梁,只有这样才能与团队成员紧密结合,让他们感觉到自己存在的意义,从而调动团队的积极性。技术并非成为一个成功PM的充分条件但却是必要条件!
技术要能达到PM的水平,肯定是需要熟练掌握技能和充分了解一些底层原理的。

2. 从程序员向技术管理发展

其实一个Team Leader的职责与Project Manager相像,Team Leader更着重于技术开发方面,通常一个大型项目都会有一两个开发团队由Team Leader带领,负责开发核心部分,而其它部分分派给不同开发小组或者分派给外包公司。在网上常看到几句话,贴切地形容了PM与TL的区别:“技术人员乐于被领导;但他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受,被告知要做什么和该如何做。领导是引领、引导,它激励人们达成目标。领导力是带有强烈个人感情色彩的,它不是你能命令的,也不是你能测量评估和测试的。”

无论是PM与TL,对业务与技术都要有深入的了解,只是PM更侧重于业务的管理,盈利的多少,风险的大小等等,而TL则侧重于项目的成本,开发的难度,软件的架构等技术方面的问题。只要及时提升自己对技术与管理的认识,不断地向深一层发展,要从程序员提升到技术管理人员只是时间的问题。打个比方,一个普通的.NET程序员,开始可能限制于ASP.NET的页面开发,但一旦他有了发展之心,他自然会对ASP.NET MVC、Silverlight、WinForm、WPF这些UI的开发手法感到兴趣,学习不需要多少时间,他可能就会认识这些UI开发只不过是一些工具,其实在开发原理上没什么区别。接着他就会向深一层的通讯模式进行了解,认识TCP/IP、Web Service、WCF、Remoting这些常用到的通讯方式,这时候他可能已经感觉到自己对开发技术有了进一步的了解。进而向工作流、设计模式、面向对象设计、领域驱动设计、面向服务开发等高层次进发,最后成为技术的领导者。上面只是一个比喻,但要注意的是,在学习的时期必须注意的是与同事之间沟通,很多的开发人员喜欢独来独往,开发的项目总想一个人搞定,不受外界的干扰。但要明白,就算你有天大的本事,一项大型的项目也不可能由你一个人全扛着。所以团队的合作性与同事间的沟通是必要的,这也是一个成功TL的必要条件。

3. 单方面向技术发展

很多从事开发的人都会认为,业务总会带着“金钱的味道”,老板从来不管开发是否合符开发原则,有否经过必要测试,他们只会在客户面前无尽地吹嘘,项目到期能成功交货,只要不出什么大问题那这个项目就算成功了。其实我们也要明白:开发项目最终目标是为了赚钱,在开发过程中对项目成本的限制和效率的控制这也是必须,所以这才需要管理人员对项目进行管理。但开发人员也很想避开这“金钱的尘嚣”,全情投入到技术的世界的当中。所以对技术有着浓厚兴趣的人,往往会深入地研究某一项技术,成为技术上的精英。要想成为尖端的开发者,必须对C、C++、汇编语言、嵌入式开发、Windows API、Linux API这些底层技术有着深入的了解。要知道解JAVA、.NET……等这些之所以称为高级开发语言,并不是指它们比C、C++、汇编语言更高级,而是指它们封装了C、C++等等的功能,更适合用于企业软件的开发,使开发变得简单。但如果要开发一些底层的软件,大型的系统的时候,就必须用到C、C++、汇编等开发语言,这是成功尖端人才的一个条件。

确定未来的目标

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

1.自立门户,勇敢创业

快30岁了,很多人会认为要想真正赚得了钱,就应该自立门户,为自己创业建立一个基础。在生活压力之下,大多数开发人员的目标都是自主创业,想要达到这个目标,就应该更多地把业务作为重点。所以想要创业的人需要与合作伙伴保持互利互动的模式,这将有利于日后事业的发展。

2. 急流勇退,退居二线

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

3. 不懈努力,更进一步

无论你是一个Project Manager或者是Team Leader,如果你想继续晋升一级,那还是会两极分化的。从一个PM到一间公司的管理层,那所面对的事件会有很多变化。一个公司的总经理,要管理的不再是一到两个项目的成本,而是整个部门的运作,整间公司的业务流程,所以要肩负的任务的会更重。高级管理层平常只会在某些会议上轻轻地亮下相,说两句讲词,平常的公司运作与业务管理都不需要他直接执行。这并不是说一个作为管理层很清闲,因为他们要面对的是更多的社会关系,与公司合作企业的联系上。这跟一个PM的工作的很大的区别,所以要从一个PM晋升到管理层,那可是要负出更多的努力与汗水。

如果要从Team Leader上升为一个技术总监,那工作的方向也有所改变。像之前所说:一个TL可能更重视的是技术层面,讲求与团队之间的互动合作性,更注重的是开发的完善。而一个技术总监就无需要直接参加某个项目的开发,而注意的是开发的效率与成果,如何合理使用有限的开发资源,控制开发的风险和可能带来的效果。


整理:玲琅

来源:知乎@爱敲代码的老男孩

每期开班座位有限,预约报名可优先享有占座特权

温馨提示:请保持手机畅通,咨询老师 将为您提供专属的一对一报名服务。

欧柏泰克-湖南计算机学校-长沙it软件编程学校-男生学什么专业-互联网专修学院

微信公众号

咨询QQ:3173829317 联系电话: 0731-88720118
地址: 湖南省长沙普瑞西路139号欧柏泰克互联网科技园
湘ICP备16017645号 公网安备案号 : 430112020004401

信息有误

学校会尽快与您联系,请保持手机畅通。