世间唯变化永恒...分享 http://blog.sciencenet.cn/u/zlhua 世间唯变化永恒,以开朗的心简洁地生活...

博文

【信息系统项目开发实例】31天学会CRM项目开发.第1天

已有 2053 次阅读 2018-12-11 16:11 |个人分类:管理信息系统建设|系统分类:科研笔记

第一部分 需求篇

了解程序员职业需求、CRM项目需求及解决方案

第1天 程序员职业及其发展

【问题】你想成为一名程序员吗?

在回答这个问题前,我们有必要先来了解并讨论下到底什么是程序员,比便对程序员这个职业认知达成基本共识。

程序员职业的诞生

计算机编程的起源至少可追溯到19世纪。当时英国数学家查尔斯.巴贝奇正致力于解决分析机的计算问题。分析机现在被看作现代计算机的概念化雏形。今天,我们可以将查尔斯.巴贝奇当时想做的这件事称之为编程。而最早做这项工作的则是他的一位女助手来辅助他完成的。(拓展阅读世界上第一位程序员:Ada Lovelace)

什么是编程?编程中最基本的概念是算法,即执行某种操作的一组指令,或者说是计算的方法。(如果要继续追根朔源的话,算法(algorithm)最早出现在巴比伦,传说与一个写过一篇关于代数方法的专著的波斯学者(Muhammad ibn Musa al-Khwarizmi)有关。)

直到第二次世界大战之前,由于电子技术还相对比较落后,人类尚未开发出理想的计算机,因此那时大家的注意力都还集中在计算机硬件上,硬件被认为是真正的科学和工程,而早期的编程只是硬件开发后期任务的附属工作,属于机器的设置的范畴,是由技术人员来完成的比较繁琐的劳动。

1946年开发成功的ENIAC(Electronic Numerical Integrator and Computer)被认为是人类开启数字电子计算时代的标志。这台存放在宾夕法尼亚大学的机器需要技术人员对其进行手动设置,拔插各种让人眼花缭乱的线缆,并把一排一排的开关放到正确的位置。由于采用的是硬接线方式,每解决一个新问题似乎都要重建机器,因此,不得不雇佣了一些具备数学技能的年轻女士,并对她们进行培训,并将她们称为计算员(Computer)。(这个词可以追溯到18世纪,专门指那些为绘制地图或航海图而编制统计表的计算者)

对ENIAC进行编程,使其计算出火炮的弹道轨迹,这在当时是一项艰难的工作,但却是美国国防部指定的任务。为此,这些女程序员想出了一些技巧来简化流程。她们现在纸上画出详尽的图表,并标出在这台机器上可以解决问题的最有效方法。然后,她们再对机器进行手动设置。她们需要清楚地知道如何设置每一条线和每一个开关。这种操作可能会花费好几个星期地时间。不过,正是由于她们的努力,ENIAC的公开演示才获得了巨大成功:一条炮弹轨迹用很短的时间就能计算出来,比炮弹本身的飞行速度还快。

人工的“计算员”(Computer)变成了“编码员”(Coder),再势不可挡的被程序员(Programmer)取代,主要源于英国从业者的贡献。很明显,新称谓听起来更有身份,也更具文学气息。作为软件方面的领军任务,格蕾丝.霍普从1944年开始就在哈佛MarkI上从事战备方程式的计算,她一直认为,用“编程”(Programming)这个词来形容初期的工作并不太贴切,她认为,书写机器代码的过程就是编码,而编程这一个词是用来描述更高一级的工作。但是,后来从英国传过来的程序员一词,比编码员要好听很多,于是很多人都想被称为程序员。再加上计算机硬件设计上的突破,更高一级的编程很快就成为了现实。

          表2 程序员职业发展一览表(欢迎指正)

时间

职业称谓

主要工作

备注

二战

计算员

对计算机裸机进行手动设置,采用硬接线的方式拔插让人眼花缭乱的线缆。

具备数学技能的年轻女士,现在纸上画出详尽的图表,并标出再这台机器上可以解决问题的最有效方法。然后再对机器进行手动设置。

二战后

编码员


书写机器代码


程序员


编写高级语言程序代码。FORTRAN被称为第一个高级语言,它是公式转换系统(FORmula TRANslating)的缩写。


软件工程师


1958年,在《美国数学月刊》上,软件作为计算机术语首次在出版物上使用。

 

1954年11月10日,FORTRAN项目组撰写了一份描述FORTRAN语言及其目标的报告,报告名为“初步报告:IBM数学公式转换系统规范”,报告共有29页,全都是关于FORTRAN语言的数学解释及其使用规则。按照现代商务的标准来看,它就是一份“愿景陈述”,详细描述了巴克斯对FORTRAN项目的计划和希望,以及对其影响力的乐观预测。报告重申了关于手工编程经济性的论断,即巴克斯在1953年向赫德指出的手工编程成本日益高昂的问题,也是FORTRAN项目得以启动的原因。报告预言,FORTRAN不仅能提高编程效率,而且还将让更多人具备编程能力,这正是当时正处于萌芽状态的软件界梦寐以求的目标。

在计算机科学中,一个很棘手的问题是如何让及机器分发挥作用帮助人类解决难题。面对问题,这个年轻、聪明而且紧密团结的集体,充满了活力和乐观精神。在某种程度他们把自己视为IBM的局外人,正在一个全新的领域从事一种前所未有的工作,而且几乎没有规则可循。FORTRAN团队最初称为“编程研究小组”,在位于纽约麦迪逊大道590号的IBM总部大楼附楼第19层的办公室里工作,他们都喜欢埋头工作,不分昼夜,当然,不仅仅是工作,他们可能还会在办公室里打雪仗,弹药就是从窗台上挖的雪球,每天他们都会休息一会儿,喝点咖啡,吃点点心,围坐在角落里边吃边聊,吃午餐时还喜欢玩Kriegspiel游戏,这是一种盲棋,玩的时候两名选手并排坐着,每人都有一块棋盘,中间有隔离物挡着,看不到对方的棋盘。每位选手依次走棋,并尽力想象对手的棋路。还有一名裁判,负责提供线索,当一枚棋子被成功吃掉时,或者一方由于对方的棋子阻挡道路而无法移动棋子时,裁判就会提醒他们。他们就是在玩智力游戏的过程中让大脑进行休息。巴克斯采用蜂窝状的架构来组织工作,每个小组都由1-3人组成,每个小组都是一个有自主权的单元,可以自由选用最有利于他们完成工作的任何技术,但每个小组必须与其他小组就编程规范达成一致,以方便后期软件代码能顺利地衔接配合。也就是各个小组都有不同的任务,同时又需要严密的配合协作。没有人会担心被别人看成笨蛋,或是将代码据为己有,大家都热衷于共同学习。

作为研究小组地主要负责人,巴克斯对当时IBM给出的年度员工考评计划(即绩效提升计划(Performance Improvement Program,简称PIP),PIP和现在大多数考评项目一样,通过公式给出分数和评级。)基本置之不理,因为他认为,PIP体系并不适合评价他的团队表现,他会根据团队成员的具体表现而对其进行灵活的加薪,通常他的团队成员对他的加薪幅度都很满意,还被巴克斯轻描淡写的告知:“要是有人问起来,你就说这是你的PIP”。

FORTRAN首次面世于1957年2月,在洛杉矶召开的西部计算机联席会议上,参会的SHARE会员主要有来自飞机制造商、大生产商以及政府实验室的管理人员和科学家,会员之间可以随意分享信息、抱怨,甚至程序,因此该组织被命名为SHARE。那时,软件还不是一个独立的行业,因此人们认为编程技术是应该分享的有用知识,而不是被保护的知识产权。

在洛杉矶会议上,IBM预先安排了一场关于FORTRAN的公开演示,也就是今天业界所熟知的Demo。会议开始前不久,IBM请几位客户提出现实中遇到的繁琐计算问题,诸如喷气机翼设计中的气流计算等。针对提出的问题,汇编语言程序员编写代码,同时也用FORTRAN写出代码。当汇编程序员完成之后,这两种程序分别输入704中,一个由手工编写,另一个由FORTRAN编译,结果证明,FORTRAN程序的运行效率接近汇编程序,有时与汇编程序一样。也就是说,在解决一个标准问题时,FORTRAN程序耗用的机器时间并不比手动编码程序多,因此向世人证明之前那些怀疑者是错误的。

1958年,纽约大学丹尼尔.麦克拉肯第一次接触FORTRAN,当时他已经有7年的编程经验,主要为通用电气工作,他试着用FORTRAN编写计算液态的热流,发现他能近似真实地反映出要解决地数学问题,并迅速地编写出程序,而不必过于关注为机器编码。慢慢他发现,像他这样的熟练程序员,用FORTRAN编程地速度比用汇编语言至少快5倍,当时他就意识到这将为更多的人开启计算之门。后来他以斯蒂芬.金这个笔名,于1961年出版了介绍如何编程的系列丛书《FORTRAN编程指南》,销量达30万册,这也成为他第一本获得大奖的图书。

FORTRAN的成功证明了高级语言是可能的和实用的,他的出现开启了软件领域后来的持续不断的创新,那些在20世纪50年代从事过计算的人们,仍然对FORTRAN的影响力有很高的评价,约翰.麦卡锡作为颇具影响力的Lisp编程语言的创建者,一位在20世纪60年代开创分时计算和人工智能领域的专家,他对FORTRAN的印象非常深刻。的确,因为FORTRAN打开了高级语言的大门,才会有了后来目不暇给的各种更高级、更智能的语言诞生。

如果你现在对程序员这一职业已经有了基本了解并确信自己对这个职业充满了兴趣,接下来你需要思考以下一些问题:

【思考】

1、你为什么要成为一名程序员?

2、你认为优秀程序员都具备什么素质?

3、怎样才能成功应聘成为一名的程序员?

4、你打算如何成长为一名优秀的程序员?

参考文献

1、代前杰等编著 31天学会CRM项目开发 北京:机械工业出版社 2015.12

2、【美】史蒂夫.洛尔著 张沛玄 译 软件故事:谁发明了那些经典的编程语言 北京:人民邮电出版社 2014.7



https://wap.sciencenet.cn/blog-520919-1151018.html

上一篇:【信息系统项目开发实例】31天就能学会开发CRM系统?
下一篇:【EISA.食品安全智能甄别系统】鸭子的甄别
收藏 IP: 112.44.72.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-30 02:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部