`
dcj3sjt126com
  • 浏览: 1871257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个程序员分享8年的开发经验

 
阅读更多

 

在中国有很多人都认为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++、Objective-C这些软件更多是用在系统软件开发,嵌入式开发的方面。

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

明确发展方向

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

平常在公司,您可以看到做UI层的开发人员大多数都有20多岁,他们充满干劲,而且没有家庭负担,在两年前ASP.NET MVC 、Silverlight等刚出现的时候,他们可以在晚上回家的时候买几本书或者直接上网看看,研究三五个星期以后,对需要用到的技术就已经有一定的了解 了。而年过30的人多数是已经成家了,他们每天9:00点上班唯一的希望就是快些到6:00点,能回家吃饭。吃完饭只想陪孩子玩一下,看看孩子的功课,对 新增的技术缺乏了学习的欲望。所以很多接近30岁的程序员都有着一种逼迫感(包括30岁时候的我自己),再过几年应该怎么办?这时候,您就更应该明确一下 目标,努力向自己的发展方向前进了。归纳一下,可从下面几项里选择适合自己的一条道路:

1. 从技术向业务过渡 互联网的一些事

在国外,很多发达国家都很重视人才,一个高级的程序员与一个Project Manager收入相差一般不超过15%。但中国是世界上人口最多的国家,国内人才众多,所以人才滥用的情况经常可以看到。一个小公司的开发部里面经常会 见到新面孔,但PM却不会常换。因为做老板的对技术是一窍不通,依他们看来只到拉住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万~4万元/平方米左右,而在一家普通的IT公司当上一个项目经理,基本收入一般都在1.5万~3万之间(除非在大型的跨国企业内工作,那另当别论), 要买一间100平方米左右的房子,就算不吃不喝也几乎要10年的年薪,所以选择自主创业,是很多IT开发人员的一个未来目标,想要达到这个目标,就应该更 多地把业务作为重点。不可否认的一件事,在中国社会里很多时候讲的是“关系”,即使这30年的改革开放使中国的经济蓬勃地发展起来,但几千年来留下的歪风 还是不能完全的磨灭。所以想要创业的人事建议你要多跟客户打好关系,与合作伙伴保持互利互动的模式,这将有利于日后事业的发展。

2. 急流勇退,退居二线

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

3. 不懈努力,更进一步

无论你是一个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询问项目的进度,所以只有晋升到这个层次,才有机会进 一步提升管理能力,让自己有上升的空间。至于要成为一个技术总监,那要求就不再单单是对单个项目的管理,而应该更则重于新兴技术的引用,开发资源的合理利 用,对开发项目敏捷性的处理等等,对此在下也在试探当中,未敢多言。

分享到:
评论

相关推荐

    分享8年开发经验,浅谈程序员职业规划共1页.pdf.zip

    标题和描述中提到的"分享8年开发经验,浅谈程序员职业规划",这显然是一份由有经验的程序员总结的关于个人职业发展的资料,旨在指导新手或正在成长中的开发者如何在IT领域稳健前行。下面我们将围绕这个主题,探讨...

    雷军 我的十年程序员生涯.doc

    雷军在《我的十年程序员生涯》中回顾了自己的编程生涯,分享了自己的编程经验和感悟。以下是雷军分享的知识点: 1. 编程热爱:雷军认为,编程需要热爱写程序,热爱电脑世界的美妙。只有热爱写程序的人,才能把事情...

    2009年程序员杂志第一期

    8. **职业发展**:对于程序员的职业规划、技能提升、团队协作等方面,杂志可能会提供一些建议和经验分享,帮助读者提升职业生涯。 9. **专家访谈**:每一期杂志通常会邀请行业内的知名人士进行访谈,分享他们的见解...

    程序员2006年第8期PDF.rar

    《程序员2006年第8期》是一本专注于IT技术和软件开发的专业杂志,该期PDF文档包含了丰富的技术文章、行业动态以及专家访谈等内容。作为2006年的期刊,它反映了当时的主流技术趋势和程序员的关注点,对于了解那个时期...

    程序员杂志2010年第8期

    《程序员杂志2010年第8期》是一本专注于IT技术与编程领域的专业期刊,它在当时的科技领域中扮演了重要角色,为程序员们提供了丰富的学习资源和行业动态。这期杂志的好找程度反映了其在程序员社区中的受欢迎程度和...

    2006程序员第五期

    6. **移动开发**:2006年是移动设备市场开始蓬勃发展的时期,可能会有对早期智能手机平台如Symbian、BlackBerry的开发经验分享,或者对Android和iOS的前瞻分析。 7. **安全与加密**:讨论了网络安全的重要性和常见...

    《程序员》杂志

    总的来说,《程序员》杂志2012年第8期的内容可能涉及了编程语言的演进、开发工具的使用、软件工程的最佳实践、新兴技术的探索以及程序员个人成长的建议。这些内容对于当时的程序员来说具有很高的参考价值,也为后来...

    分享几个程序员的简历模板

    例如,“Java开发工程师,精通Spring Boot框架,拥有3年Web应用开发经验,致力于构建高可用、高性能的系统。” 3. **技能列表**:列出具备的技术能力,如编程语言(Java、Python、C++等)、框架(React、Vue、...

    《程序员》杂志2011年第06期(PDF)

    2011年第06期的期刊,无疑是对当年信息技术发展的一次精彩回顾,其中包含了丰富的技术文章、专家访谈、行业动态和实践经验分享。 这期杂志可能涵盖以下几个关键知识点: 1. **编程语言趋势**:2011年是编程语言...

    程序员怎么选择发展方向

    从高级程序员到专家的转变,则是一个更加漫长的过程,可能需要5-8年的时间。在这个阶段,除了继续学习之外,还需要不断地尝试新事物,勇于接受挑战。通过不断地尝试和坚持,才能找到最适合自己的发展道路。 #### ...

    Java程序员年中、年终述职报告PPT模板

    Java程序员在年中或年终述职报告中,通常需要展示过去一段时间内的工作成果、技术提升、项目经验以及未来规划。这份“Java程序员年中、年终述职报告PPT模板”旨在帮助他们高效地准备这类报告,通过专业且有条理的...

    十年总结 靳雄飞 程序员编程经验

    ### 十年总结 靳雄飞 程序员编程经验 #### 重要知识点概览 1. **职业生涯反思**:靳雄飞通过十年的职业生涯反思,分享了他的成长历程和对未来规划的思考。 2. **工作与自信**:探讨了工作中如何建立自信的重要性,...

    <程序员>电子杂志PDF

    《程序员》杂志是IT行业中备受关注的一本专业期刊,它主要面向软件开发人员、系统架构师、项目经理等技术人群,提供了丰富的技术资讯、行业动态、深度分析和实战经验分享。2009年第一期的《程序员》杂志,以PDF电子...

    《程序员》2012年第12期.

    8. 产品和图书推荐:文中提到了2012年十大产品和十大图书目录,这反映了那一年软件产品和出版物的趋势和亮点,为IT专业人士提供了学习和参考的方向。 9. 云计算:云计算作为现代IT架构的重要组成部分,文中提及了...

    2006程序员第一期

    【标题】"2006程序员第一期"的这一期刊主要涵盖了2006年初中国IT行业特别是软件开发领域的前沿技术和实践经验。这是一份面向广大程序员的读物,旨在分享编程技巧、行业动态以及新兴技术的介绍。 【描述】"2006...

    程序员2006年第7期PDF.rar

    《程序员2006年第7期》是一本专注于IT技术和软件开发的专业杂志,该期PDF文件包含了一系列关于编程、软件工程、系统架构、项目管理以及技术趋势的文章和报道。这期杂志是程序员们获取最新技术资讯、提升专业技能的...

    程序员年度总结模板,沉稳大气!

    本资源是一个程序员年度总结模板,旨在帮助程序员总结过去一年的工作经验和成果。该模板涵盖了程序员在项目管理、性能优化、技术支持、技术学习和发展、团队合作和沟通、专业技能提升等多个方面的成果和经验。 1. ...

Global site tag (gtag.js) - Google Analytics