程序员成长路线图

出版时间:2011-5-5  出版社:机械工业出版社华章公司  作者:N216(倪燕农),张磊,吉阳  页数:260  
Tag标签:无  

前言

  只要在编程序就应该称为程序员。若以这个标准来衡量,我可能是国内从事编程工作时间最长的程序员之一。几十年前我是一名程序员,几十年后的今天我依然是一名程序员,未来几十年我还会是一名程序员。  2008年我提出了EOM(EnterpriseOperatingModel,企业经营模型)理论,并把EOM系列文章发表到博客园网站上。也许是EOM对普通的程序员来说显得过于抽象,若没有丰富的工作经历和一定的编程技术,一般人会很难理解,因此网上反应平平。2009年年末,为了让普通程序员能够了解EOM,于是我从程序员关心的热门话题开始,由浅入深地发表了几十篇博文,最终让大家看到了EOM是程序员成长中的一个重要结果,它与程序员的成长密切相关。没想到这些文章一发布到网上就引起网友热议,无论是点击率、回帖数,还是作者与网友之间的辩论,激烈程度都很高,而且转载甚多。我的朋友、同事、家人甚至出版社见此状况都极力建议我将这些写成书,让更多的程序员能够分享这种成长。  于是我在2010年5月正式和出版社签约,开始进行本书的撰写工作。在写作的过程中,我和我的合作者对网上发表过的文章进行了整理,并根据本书的编写大纲增加了很多新文章,把这些文章按照程序员的成长阶段划分为入门篇、成长篇、成熟篇和优秀篇,从而形成了程序员成长的一个完整的“路线图”。在这个过程中我重新回忆了我成长的各个阶段,每个阶段的故事依然让我感到鲜活、感动和难忘。我努力去发现程序员最关注的问题,努力去分析这个问题后面的原因,努力去给出解决问题的建议。我想我的努力会给读者带来不一般的体会。  本书适用于各层次的程序员:有刚出校门寻找工作的新手,有在工作岗位年限不长的程序员,有工作多年的项目经理、技术高手,有在编程事业中表现突出的优秀人物。各层次的程序员都可以从中找到自己想要的看点,例如:新手想知道如何找工作、如何面试、工资待遇、掌握什么语言、编程的前途如何等一些经验和观点;成长期中的程序员关注的是如何面对加班、如何提高自己的编程能力、如何确定自己的编程水平等;优秀的程序员可能关注优秀程序员应该具备哪些素质、哪些技术水平,如何证实其优秀,软件发展方向是什么,自己事业的未来发展方向是什么,如何实现自己的价值等。  每个程序员的成长之路各不相同,但都会经历大大小小的成功和坎坷,很多人在这个过程中会迷茫、会不知所措。希望本书能成为程序员成长的“路标”,打破那种程序员只看技术类书籍就能提高、就能成长的狭隘想法。希望程序员能多了解其他程序员成长的经历,这些经历不仅指技术上的,而且是指在心理上的、职场上的、事业上的和梦想上的。程序员可以从中学到很多成功的经验,避免常见的问题,使得他们能够更快、更全面地成长起来,更好地在这个职业中有所发展。  在此,我要感谢合作者张磊、吉阳两位同事,感谢我的朋友、同事、编辑、家人,谢谢他们给我的每一次鼓励。他们中有很多人都是我的文章的首批读者,在我写作的过程中给予了许多有益的建议。没有他们的鼓励和支持我可能无法完成这项工作。我还要特别感谢远在英国的女儿倪好,她的鼓励如同我给予她的鼓励一样,本书将是我送给她的一件礼物,希望这份礼物伴随她快乐成长。  除了本书之外,我还打算在近期编写有关软件设计师、项目经理、EOM、NSS等方面的系列书籍。我想通过这些系列书籍与那些有志促进我国软件业发展的各位同仁分享自己的经验和观点。  由于篇幅有限,话题广度和深度也不可能拓展太多,请有兴趣的读者访问我的博客,参与讨论程序员以及软件业相关话题。

内容概要

  《程序员成长路线图:从入门到优秀》作者回忆和总结了自己几十年的程序员成长经历,对当前程序员关心的热点、重点、难点问题给出了自己的看法和建议。通过对程序员的成长阶段进行划分,使得各个阶段的程序员都可以“按图索骥”,解决自己所遇到的问题。同时,《程序员成长路线图:从入门到优秀》也能够帮助程序员了解什么是程序员的价值,如何成为优秀程序员,如何实现自身的价值等,从而给程序员提供向上进步的动力。《程序员成长路线图:从入门到优秀》既不是纯技术文章,也不是纯个人传记,而是采用随笔形式,通过问题提出、分析、解答的形式,并辅以个人成长的经,作者对程序员成长的实践与理解。《程序员成长路线图:从入门到优秀》以技术成长和心理成长为两条主线,通过这两方面的结合,展示了程序员应如何实现自己的价值。同时《程序员成长路线图:从入门到优秀》还涉及了“企业经营模型”,据此针对程序员介绍了一些企业经营模型的知识,使得程序员能够看到更高层面的未来。  《程序员成长路线图:从入门到优秀》适合阅读的对象包括程序员、软件设计师、软件项目经理、软件公司(企业内部科技部门)职员、国家政府机关等相关企业信息化部门职员。

作者简介

  N216(原名:倪燕农),目前在某国有银行省分行信息科技部工作,从事项目开发和管理工作。1982年毕业于东南大学软件专业,曾在江苏无线电厂、某国有银行长期从事计算机软件开发和管理工作。他擅长汇编语言、C、VFP、VB、C#等开发语言,从事过操作系统级程序开发、各种应用系统开发,特别擅长开发管理信息系统。1990之前他曾在省级及国家级公开刊物上发表过7篇论文。主持开发过几十个大小项目,开发过公安人口信息系统、报表中心系统等大型软件系统,涉及公安、金融等多个行业。他提出了IASG(交互式软件自动生成器)、EOM(企业经营模型)、NSS(软件新构架)等创新概念。目前他计划编写有关软件设计师、软件项目经理、软件公司、企业信息化管理、EOM专著等系列丛书。  张磊,毕业于南京邮电学院,硕士研究生,现在某国有银行省级分行信息科技部任助理技术经理,曾负责开发过国际结算部MIS系统。  吉阳,毕业于东南大学,现工作于某国有银行省级分行信息科技部,曾负责开发计划财务部MIS系统。

书籍目录

前言引言:我的程序员成长之路第一部分 入门篇1.1 程序员的梦想--中国的比尔?盖茨1.2 谈谈程序员的基础知识1.3 语言选择与就业方向1.4 新手如何学习一门新的语言1.5 理性看待考证热1.6 选择大公司还是小公司1.7 新手面试常见问题与对策1.8 薪水的苦恼1.9 求书、求网还是求人1.10 新手看高手1.11 新手应该具备的基本素质第二部分 成长篇2.1 加班,加班,加班2.2 大量编程带来的快乐和烦恼2.3 需求总是变化,程序总在修改2.4 为什么程序员不愿写文档2.5 为什么编程者总是高估自己低估别人2.6 我?还是我们?2.7 为什么程序员被喻为“IT农民工”2.8 加薪的问题2.9 门门通还是精一门2.10 程序是给自己看的还是给别人看的2.11 程序越长水平越高吗2.12 动手能力强与技术水平低2.13 调试高手和编程高手2.14 如何快速确定自身水平2.15 程序员应该掌握的实用编程技巧第三部分 成熟篇3.1 大项目或小项目都是程序员成熟之道3.2 “顶梁柱”与“螺丝钉”的不同3.3 如何对待新人3.4 有关程序员的性别、年龄、个性、编程方法的话题3.5 程序员的上升空间在哪里3.6 跳槽还是留守3.7 你能当老板吗3.8 动手与动脑的关系3.9 编程语言有高低之分吗3.10 面向过程和面向对象的编程3.11 功能和界面哪个更重要3.12 你考虑过程序的复用问题吗3.13 谈谈程序的参数化3.14 漫谈程序的效率和水平3.15 好的程序像一首诗3.16 如何计算程序员自身的价值3.17 程序员成熟的标志第四部分 优秀篇4.1 成熟到优秀的瓶颈问题4.2 梦想回归4.3 激情!激情!激情!4.4 摆脱技术束缚,拓展业务视野4.5 预测趋势,让你的目光看得更远4.6 有意识才会有行动--谈谈市场意识4.7 制作有价值的软件才是中国程序员内在的目标4.8 从程序制作到架构制作4.9 从定制软件到通用软件4.10 何为EOM4.11 用EOM的眼光批判“我要做全国最好的标准权限组件和通告权限管理软件”14.12 用EOM的眼光批判“我要做全国最好的标准权限组件和通告权限管理软件”24.13 用EOM的眼光批判“我要做全国最好的标准权限组件和通告权限管理软件”34.14 用EOM的眼光批判“我要做全国最好的标准权限组件和通告权限管理软件”44.15 程序员的春天:EOM与程序员4.16 优秀程序员应该具备哪些素质第五部分 附录5.1 创新模型简介5.2 项目简介5.3 作者和网友之间的精彩回帖节选 

章节摘录

  我的程序员成长之路  程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远。总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快;或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情。  第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序。这个过程可以说是对计算机和程序设计的入门阶段。这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识。  第二阶段,而后参加工作,从事计算机软件开发工作。按照工作要求,一边学习,一边编程,终于可以让自己的程序投入运行了。在这个阶段我突然感觉到了自己的价值,感觉到了软件的神奇,并且自己编写的软件成为了实用产品。这个阶段实现了学习到生产的过渡。  第三阶段,随着工作的增加,开始编写各种程序,开发各种系统,这时候忙于编程知识的积累和应用。应该说在这个阶段自我感觉很充实,好像有做不完的事,程序设计水平还处在语言级阶段。  第四阶段,随着积累了一定编程技巧之后,我开始想这样的问题:我是不是最好的程序员?我能否编写出最好的程序?这个过程是一个反思的阶段。我对自己的要求是:不但要会编程序,而且要编好程序,从关注程序数量开始转向关注程序质量。  第五阶段,开始在提高自己的软件开发水平上做文章。经过各种系统开发,尤其是大型系统的开发,发现了软件中有许多功能是重复的。因此,有一段时间把精力花在编制各种库函数上,通过不同系统调用相同的函数,以便减少重复开发,实现功能共享。当时比较得意的是库函数不是我一个人在调用,而是整个项目小组都在调用,甚至不同的系统也能调用,从而体会到编写库函数特别有价值。这个阶段的标志是库函数,程序员水平上升到库函数那一级。  第六阶段,到了库函数那一级后,很快就发现,单单实现程序函数级的调用是远远不够的。当你做了很多项目,包括大项目和小项目,尤其是做过跨行业的项目之后,你就会把库函数的共享思想用于项目开发。你就会想这样一个问题:为什么不同项目不能有相同的架构?如果有相同的架构,那么开发就有了相对的标准,我们就有可能通过配置的方法实现相同架构的系统。于是我提出了IASG(交互式软件自动生成器)思想,并在C语言和其他一些语言中实现了IASG实例。记得最快的一次是编写一个系统(公安部门的自行车信息管理系统,主要用于丢失自行车信息登记)只用了3个小时(从需求到安装盘)。这个事情对我影响很大。我在这个阶段上升了一个很大的台阶,从程序上升到软件。核心思想就从库函数共享上升到软件共享。具体过程是建立一个通用的系统架构,架构中有许多共同的功能,例如,参数设置、用户权限管理、库表管理等。另外还提供信息建立查询开发模板,通过配置和特殊功能的编制就能很快完成了一个系统的开发。现在想起来IASG距离我已经有20年了。  第七阶段,到了IASG阶段后,我发现无论技术如何提高,都无法改变开发落后于需求的现实。通俗地说就是:程序员水平再高,仅仅是拉车水平高,但是,应该在什么路上拉车程序员并不知道。如果这条路是一条光明的路,则程序员越拉越有劲,有前途;如果这是一条死胡同,则程序员白费工夫;如果这是一条漫长的路,前途不明,则程序员可能要累倒在路上。现实中程序员水平低、收入低;系统需求不明确,系统开发周期一拖再拖;系统重复开发多,信息甚至不能在一个企业内实现共享,更不用说在企业之间、行业之间实现共享了;各种企业级的软件ERP、CRM、BI层出不穷,也没有哪个能满足中国的市场;各种新技术、新概念不断出现,却没有哪种技术或概念能真正发挥其内在价值,最终还是处于被学习、被运用的阶段。  这个过程是程序员脱离技术本身,开始思索、开始求源的阶段。在这个阶段的程序员的思想有了质的飞跃。以前光拉车不看路,现在要抬头看路了。  第八阶段,有了抬头看路的想法,于是我踏上寻路征程。我首先弄明白了我们脚下的路是什么样的,为什么这条路那么不平坦、不宽广。从软件生命周期来看,软件主要由用户需求发起,用户需求是软件生存的根本理由。由于企业、用户的不同而导致不同的需求——大量的无序的需求,这种需求驱动方式必然造成了我前面介绍的各种现象。这个阶段是寻找根源的阶段。只要我们找到了根源,就可以有机会解决问题。这个过程相对来说比较困难,这不仅需要编程技术,还需要很多方面的知识。若要了解这个根源,就迫使你学习和积累更多程序以外的知识。  第九阶段,当我找到软件是需求驱动方式之后,就开始考虑什么是用户需求?用户为什么要提出这些需求?我们可以更深入地分析用户需求产生的根源,我们能否让无序需求变成有序需求呢?当然针对这些问题我们都进行了深入分析,其过程也很难在这里展开说明。我只能说,最后结论是用户的需求来源于企业的经营。很多人思考问题还是就需求而论,并没有站在企业经营角度去考虑问题。千万不要小看这个变化,这个变化最终会产生一个理论。于是我们尽可能地站在企业经营角度看待企业经营方式、企业管理、企业信息化等。但是,我们最终要解决企业经营这个概念问题,如果我们都不能明确企业经营这个概念,或者我们不能科学地定义企业经营这个概念,那一切基于企业经营的各种具体现象就如同无本之源一样无序泛滥。就像ERP、CRM等所谓企业信息化产品一样,由于没有一个企业经营定义的支撑,只能就企业经营的某个方面提出解决方案。这些产品不缺乏需求的支持,缺乏的是最基本的企业经营定义的支持。而这个概念就是EOM。  EOM是从定义企业经营角度入手,把我们今后要开展的各种研究和开发活动都放在一个理论可支持的基础上。只有定义了企业经营之后,我们才有可能分析我们需要什么软件,我们的软件采用什么技术才能实现企业经营的目标。而程序员则通过EOM了解到企业经营需要什么样的软件,这个软件有多大的价值,这个软件采用什么技术才能实现,自己要提高哪方面的技术水平才能获得更大的价值。  这个过程就是EOM阶段,通过EOM了解软件的根源和有价值的软件所在,进而选择自己未来的方向。  第十阶段,当我建立了EOM之后,便开始了EOM实现阶段。这个实现阶段分为两部分,通过这两部分的结合,我们就可以逐步看到EOM软件产品的实例,看到EOM的真正价值。  第一部分是EOM的业务实现。当我们明确了EOM之后,就可以根据EOM来重新规划企业信息化的整体架构,可以细分这个架构中的各种平台产品、通用产品、专业产品,可以细分出这个架构实现的各种技术架构和实现手段,可以细分出这个架构中的各种标准功能和标准信息。通过这样的分析,我们的程序员就可以根据自己的特长和爱好以及价值的判断来选择其中的软件产品和技术。在明确目标和方向的情形下,通过自己的努力,不断提高自己的各种技能水平,让自己的价值和企业经营价值有机地结合在一起,从而实现自己的理想。  第二部分是EOM的技术实现。有了EOM并根据EOM理论构建企业信息化的架构后,我们就必须从技术上实现这个架构,否则这个架构将永远停留在理论阶段,不具有可行性。我们可以采用现有的各种技术来实现这个架构,但是,现有的技术都是基于原有的业务需求而建立和发展的,它适用于原来的应用对象。目前的EOM是一个全新的企业经营理念,因此,我们必须建立一种新的软件架构来适应和最好地实现这个理念。幸运的是,我们找到了称作NSS(New Software Structure)软件新架构的技术,该技术体现了适应企业经营发展方向,将软件合理分层,用最新的软件技术按照架构的方式规范软件开发的模式,可以实现最大范围的功能共享,实现软件的可扩展性。  这个阶段可以让程序员在软件产品业务设计或软件产品技术实现上等多个方面进行深入钻研,并且成为领域专家。这和我们平时涉及的简单的需求分析和简单的技术实现有着本质区别。  从我的程序员经历可以看出,程序员的成长是无止境的,只要有的放矢地努力,就会一步步登高向上。我认为程序员成长经历主要有三大阶段,即通用技术阶段、市场阶段、专业技术阶段。  1)通用技术阶段是程序员专注编程水平提高的阶段,也就是说“只拉车不看路”阶段。这个程序员能做的事情那个程序员也能做,程序员的替代性很强,程序员市场价值相对较低,程序员只关注编程技术本身。  2)市场阶段是程序员跳离技术层面开始考虑为什么要开发这个软件,这个软件有什么价值的阶段,通过求软件之源来重新认知自己的方向。  3)专用技术阶段是程序员认知了这个软件和技术有很大的市场价值,全身心投入到这个领域中去,并在这个领域成为专家的阶段。程序员不但要懂技术,更要懂得客户业务,不同的程序员的技术和业务变得没有可比性,这种稀缺性造就了程序员极大的价值。  这三个阶段其实就是三个过程,每一个过程都是一次飞跃。程序员知道自己可以飞多高,依靠的是程序员的学习和眼界;而程序员能飞到哪里,那就要靠程序员自身的努力。一个程序员可以没有能力,但是不可以没有眼界。  ……

编辑推荐

  《程序员成长路线图:从入门到优秀》关注程序员的技术成长与心理成长,《程序员成长路线图:从入门到优秀》探讨程序员关注的热点、重点、难点问题,《程序员成长路线图:从入门到优秀》系统揭示程序员成长阶段的各种问题,《程序员成长路线图:从入门到优秀》以随笔形式、促膝交谈的方式,易产生共鸣。

图书封面

图书标签Tags

评论、评分、阅读与下载


    程序员成长路线图 PDF格式下载


用户评论 (总计7条)

 
 

  •   慢慢品读中。。。
  •   读了,有点体会
  •   质量蛮不错的
  •   物美价廉,值得推荐!!!
  •   职业生涯有点迷茫,需要方向指导一下
  •   还不错,就是送贷有点迟
  •   程序员的成长
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7