【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“程序员成长路线图--从入门到优秀 - 计算机理论”一文,供大家参考学习
关注程序员的技术成长与心理成长 探讨程序员关注的热点、重点、难点问题 系统揭示程序员成长阶段的各种问题 以随笔形式、促膝交谈的方式易产生共鸣 内容简介 《程序员成长路线图--从入门到优秀》既不是纯技术文章也不是纯个人传记而是采用随笔形式以促膝交谈的方式系统地讲解程序员成长过程希望与读者产生共鸣无论是新手还是成熟的程序员都可以受益。
阅读本书轻松中不乏经验之谈随意中不乏中肯之言。
本书以程序员的技术成长和心理成长为叙述的两条主线希望成为程序员成长的良师益友。
作为IT人谁不曾心怀梦想谁不曾充满激情 谁不曾遭遇编程时的各种痛苦 谁不曾品尝过程序编成的喜悦 不曾遇到跳槽或留守等各种十字路口的抉择 谁不曾想尽快摆脱新手变成高手以实现自身价值的最大化 ???? 显示全部信息 作者简介 N216原名倪燕农目前在某国有银行省分行信息科技部工作从事项目开发和管理工作。
1982年毕业于东南大学软件专业曾在江苏无线电厂、某国有银行长期从事计算机软件开发和管理工作。
他擅长汇编语言、C、VFP、
VB、C等开发语言从事过操作系统级程序开发、各种应用系统开发特别擅长开发管理信息系统。
1990之前他曾在省级及国家级公开刊物上发表过7篇
论文。
主持开发过几十个大小项目开发过公安人口信息系统、报表中心系统等大型软件系统涉及公安、金融等多个行业。
他提出了IASG交互式软件自动生成器、EOM企业经营模型、NSS软件新构架等创新概念。
目前他计划编写有关软件设计师、软件项目经理、软件公司、企业信息化管理、EOM专著等系列丛书。
博客http://n216.cnblogs.com/E-mailn216hotmail.com 张磊毕业于南京邮电学院硕士研究生现在某国有银行省级分行信息科技部任助理技术经理曾负责开发过国际结算部MIS系统。
吉阳毕业于东南大学现工作于某国有银行省级分行信息科技部曾负责开发计划财务部MIS系统。
目录 前言 引言我的程序员成长之路 第一部分 入门篇 1.1 程序员的梦想——中国的比尔盖茨 1.2 谈谈程序员的基知识 1.3 语言选择与就业方向 1.4 新手如何学习一门新的语言 1.5 理性看待考证热 1.6 选择大公司还是小公司 1.7 新手面试常见问题与对策 1.8 薪水的苦恼 1.9 求书、求网还是求人 1.10 新手看高手 1.11 新手应该具备的基本素质 第二部分 成长篇 显示全部信息 在线试读部分章节 前言 只要在编程序就应该被称之为程序员。
以这个标准来衡量我可能是中国从事程编程工作时间最长的程序员之一。
几十年前的我是一名程序员几十年后的今天依然是程序员未来几十年还会是程序员。
2008年我提出了EOM企业经营模型理论并把EOM系列文章发表到博客园网站上也许EOM对于普通的程序员显得过于理论和抽象没有丰富的工作经历和一定的编程技术一般人就很难理解网上反应平平。
2009年年末为了让程序员能够通俗地了解EOM于是我从程序员所关心的热门话题开始由浅入深地发表了几十篇博文最终让大家看到了EOM是程序员成长中的一个重要的结果是和程序员成长密切相关的。
没想到这些文章一上网就引起网友得热议无论是点击率回帖数还是作者网友之间交锋激烈程度都很高而且转载甚多。
我的朋友、同事、家人甚至出版社见此状况都极力建议我出书让更多的程序员能够分享这种成长。
于是我在2010年5月正式和出版社签约开始进行《程序员成长路线图--从入门到优秀》的撰写工作。
在写作过程中我和我的合作者对网上发表过的文章进行了整理并根据本书的编写大纲增写了很多新文章把这些文章按照程序员的成长阶段分为入门篇、成长篇、成熟篇和优秀篇形成了程序员成长的一个完整的“路线图”。
在这个过程中我重新回到了我成长的每个阶段每个阶段的故事依然让我感到鲜活、感动和不忘。
我努力地去发现程序员最关注的问题努力地去分析这个问题后面的原因力地去给出解决问题的建议。
我想我的努力会给读者带来不一般的体会。
本书适用于各层次的程序员有刚出校门寻找工作的新手有在工作岗位年限不长的程序员有工作多年成长成为的项目经理、技术高手有在编程事业中表现突出优秀人物。
各层次的程序员都可以从中找到自己想要看的要点例如新手想知道如何找工作、如何面试、工资待遇、掌握什么语言、编程的前途如何等等一些经验和观点。
成长期中的程序员关注的如何面对加班、如何提高自己的编程能力如何确定自己的编程水平等等。
优秀程序员可能关注优秀程序员应该具备哪些素其具备哪些技术水平如何来证实优秀软件发展方向是什么自己事业未来发展方向是什么如何实现自己价值等。
每个程序员成长之路各不相同都会经历很多大大小小的成功和坎坷很多人在这个过程中迷茫而不知所措希望这本书能写成程序员成长的“圣经”打破那种程序员只看技术类书籍就能提高就能成长的狭隘想法希望程序员能多多看到其他程序员成长的经历这些经历不但是技术上的而且是在心理上的、职场上的、事业上的、梦想上的。
程序员可以从中能学到很多成功的经验避免常见的问题使得程序员能够更快、更综合地长起来更好地在这个职业中有所发展。
在此我要感谢我的合作者张磊、吉阳同事我要感谢我的朋友、同事、编辑、家人给我的每一次的鼓励。
他们中很多人都是我文章的第一读者在我写作过程中给我提出了许多有益的建议。
没有他们的鼓励和支持我可能无法完成这项工作。
我还要特别感谢远在英国的女儿倪好她的鼓励如同我给予她的鼓励一样本书将是我给她的一件礼物这份礼物伴随她快乐成长。
除了本书之外我还打算在近期开始编写有关软件设计师、项目经理、EOM、NSS等方面的系列书籍。
我想通过这些系列书籍与对于有志于我国软件业发展的各位同仁分享自己的经验和观点。
由于篇幅有限话题广度和深度也不可能拓展太多请有兴趣的读者访问我的博客参与讨论程序员以及软件业相关话题。
博客http://n216.cnblogs.com/ 邮箱eom_n216hotmail.com N216 2011/11/15 引言我的程序员成长之路 程序员的成长经历往往是相似的大部分的人走过了最前面的相同一段路而有的人则走的更远。
回首自己这些年来走过的历程也许能让年轻的程序员少走一些弯路成长的更快或许更好一些能让大家从中得到一些启发早日进入优秀的程序员阶段回归梦想释放激情。
第一阶段最初是在学校里学习计算机基础知识学习经典的程序设计语言编写测试用的小程序。
这段时间可以说是对计算机和程序设计的入门阶段。
这个阶段主要是培养了自己对计算机软件的兴趣打下了良好的计算机知识的基础。
第二阶段而后参加工作从事计算机软件开发工作按照工作要求边学边编终于可以让自己的程序投入运行了。
这个阶段突然感觉到了自己的价值感觉到软件的神奇软件成了实用产品。
这个阶段实现了学习到生产的过渡。
第三阶段随着工作的增加开始编写各种程序开发各种系统这个时候忙于编程知识的积累和应用。
应该说这个阶段自我感到很充实有做不完的事还属于程序设计的语言级阶段。
第四阶段随着编程技巧有了一定积累后我开始想这样的问题我是不是最好的程序员我能否编写出最好的程序这个阶段是一个反思的阶段。
我对自己的要求是不但要会编程序而且要编好程序从数量开始转向了质量。
第五阶段开始在提高自己的软件水平上做文章。
经过各种系统开发尤其是大系统的开发发现了软件中有许多功能是重复的。
因此有一段时间把精力花在编制各种库函数上通过不同系统调用相同的函数来减少重复开发实现功能共享。
当时比较得意的是库函数不是我一个人在调用而是整个项目小组都在调用甚至不同的系统也能调用从而体会到编写库函数特别有价值。
这个阶段的标志是库函数程序员水平上升到库函数那一级。
第六阶段到了库函数那个层次后很快就发现单单实现程序函数级的调用是远远不够的。
当你做了很多项目包括大项目和小项目尤其是跨行业的项目之后你就会把库函数的共享思想用于项目开发。
你就会想一个问题为什么一个项目能有相同的构架如果有相同的构架那么开发就有了相对的标准我们就有可能通过配置的方法实现相同构架的系统。
于是我提出了IASG交互式软件自动生成器思想并在C语言和其他一些语言实现IASG实例。
记得最快的一次编写一个系统公安自行车信息管理系统主要用于丢失自行车信息登记只用了3个小时从需求到安装盘。
这个思想对我影响很大。
这个阶段是上了一个很大的台阶从程序上升到软件。
核心思想就从库函数共享上升到软件共享。
具体过程是建立一个系统的构架构架中有许多共同的功能例如参数设置用户权限管理库表管理等等。
另外还提供信息建立查询开发模板通过配置和特殊功能的编制就很快形成了一个系统。
现在想起来IASG离我已经有20年了。
第七阶段到了IASG阶段后我发现无论技术如何提高都无法改变开发落后于需求的现实。
通俗地说就是程序员水平再高仅仅是拉车水平高但是应该在什么路上拉车程序员并不知道。
如果这条路是一条光明的路则程序员越拉越有劲有奔头如果这条路是条死路则程序员拉功尽费如果这条路是条漫长的路不知明不知暗则程序员可能要拉死为止。
现实中程序员水平低、收入低、被称之“IT农民工”系统需求不明确系统开发周期一拖再拖系统重复开发多信息甚至不能在一个企业中实现共享更不用说在企业之间行业之间实现共享了各种企业级的软件ERP、CRM、BI层出不穷也没有哪个能满足中国的市场各种新技术新概念也在不断出现也没有哪种技术概念能真正发挥其内在价值还是处于被学习被运用的下场。
这个阶段是程序员脱离了技术本身开始思索开始求源的阶段。
这个阶段是程序员的思想上有了飞跃。
以前光拉车不看路现在要抬头看路了。
第八阶段有了抬头看路的想法于是我踏上寻路之途。
我首先看一下我们脚下的路是什么路为什么这条路是那么不平坦、不宽广从软件生命周期来看软件主要由用户需求发起的用户需求是软件生存的根本理由。
由于企业的不同、用户的不同导致不同的需求这种大量的无序的需求这种需求驱动方式必然造成了我前面说的各种现象。
这个阶段是寻找根源阶段找到了根源我们就可以有机会去解决问题。
这个过程相对比较困难这不仅需要编程技术还需要很多方面的知识要了解这个根源就迫使你去学习和积累更多程序以外的知识。
第九阶段当我找到软件是需求驱动方式之后我就开始去考虑什么是用户需求用户为什么要提出这些需求我们可以更深入地分析用户需求产生的根源我们能否让无序需求变成有序需求呢当然这些问题我们都进行了深入分析其过程也很难在这里进行展开说明。
我只是说最后结论是用户的需求来源于企业的经营。
很多人思考问题还是就需求而需求并没有站在企业经营角度上去考虑问题。
千万不要小看这个变化这个变化最终会导致一个理论的产生。
于是我们尽可能地站在企业经营角度上看待企业经营方式、企业管理、企业信息化等。
但是我们最终要解决企业经营这个概念问题如果我们都不能明确企业经营这个概念或者我们不能科学地定义企业经营这个概念那我们的一切基于企业经营的各种具体现象就会如同无本之源无序的泛滥。
就像ERP、CRM等所谓企业信息化产品都没有一个企业经营定义的支撑只能就企业经营的某个方面提出解决方案。
这些产品不缺乏需求的支持缺乏的是最最基本的企业经营定义的支持。
而这个概念就是EOM。
EOM是从定义企业经营角度入手把我们今后要开展的各种研究和开发活动都放在一个理论可支持的基础之上。
有了企业经营定义之后我们才有可能来分析我们需要什么软件我们的软件采用什么技术才能实现企业经营的目标。
而程序员则通过EOM了解到企业经营需要什么样的软件这个软件有多大的价值这个软件采用什么技术才能实现自己要提高什么方面的技术水平才能获得更大的价值。
这个阶段就是EOM阶段通过EOM了解软件的根源和有价值的软件所在进而选择自己的未来的方向。
第十阶段当我建立了EOM之后我便开始了EOM实现阶段。
这个实现阶段分两个部分通过两个部分的结合我们就可以逐步地看到EOM软件产品的实例看到EOM的真正价值所在。
第一部分是EOM的业务实现。
当我们明确了EOM之后我们就可以根据EOM来重新规划企业信息化的整体构架我们可以细分这个构架中的各种平台产品、各种通用产品、各种专业产品、可以细分出这个构架实现的各种技术构架和实现手段可以细分出这个构架中的各种标准功能和标准信息。
这样我们的程序员就可以根据自己的特长和爱好以及价值的判断来选择其中的软件产品和技术。
在明确目标看好大路的情形下通过自己的努力不断提高自己的各种技能水平让自己的价值和业经营价值有机的结合在一起实现自己的理想。
第二部分是EOM的技术实现。
有了EOM并根据EOM理论构建了企业信息化的构架后我们就必须从技术上来实现这个构架否则这个构架永远停留在理论上的存在不具有可行性。
我们可以采用现有的各种技术来实现这个构架但是现有的技术都是基于原有的业务需求而建立和发展的它适用于原来的应用对象。
现在EOM是一个全新的企业经营理念因此我们必须建立一种新的软件构架来适应这个理念来最好的实现这个理念。
有幸的是我们找到了称作 NSSNEW Software Structure软件新构架技术这个技术体现了适应企业经营发展方向将软件合理分层用最新的软件技术按照构架的方式规范软件开发的模式实现最大范围的功能共享实现软件的可扩展性。
这个阶段可让程序员在软件产品业务设计上也可以在软件产品技术实现上等多个方面进行深入钻研成为领域专家。
这和我们平时涉及的简单的需求分析和简单的技术实现有着本质的区别。
从我程序员经历可以看出程序员成长是无止境的只要有的放矢地去努力就会一个台阶、一个台阶登高向上的。
我认为程序员成长经历主要有三大阶段通用技术阶段、市场阶、专业技术阶段。
1通用技术阶段是程序员专注编程水平提高的阶段也就是说“只拉车不看路”阶段。
这个程序员能做的那个程序员也能做程序员的替代性很强程序员市场价值相对较低程序员只关注编程技术本身。
2市场阶段是程序员跳开技术层面开始考虑为什么要开发这个软件这个软件有什么价值程序员开始不甘于“农民工”作为通过求软件之源来重新认知自己的方向。
3专用技术阶段是程序员认知了这个软件和技术有很大的市场价值全身心投入到这个领域中去使得程序员在这个领域成为专家。
程序员不但要懂技术更要懂客户业务技术和业务变得不可比这种稀缺性造就了程序员极大的价值。
这三个阶段其实就是三个过程每一个过程都是一次飞跃。
程序员知道自己可以飞到多高那是程序员的学习和眼界程序员能飞到哪里那就要靠程序员自身的努力。
一个程序员可以没有能力但是不可以没有眼界。