1、一门编程语言(C、C、Java、PHP、Python、Html等),
2、熟悉一种 *** 作系统(Windows、Unix、Linux/类Linux、Android、IOS等),
3、简单的算法和数据结构。
先确定你学习完软件开发后想从事的工作,比如游戏开发(LOL,吃鸡,手游等);前端开发(网页、微信小游戏、Android/IOSAPP等);后台服务器,数据库(支撑前端运行的技术和数据);嵌入式(驱动、单片机等)。
确定方向后,再选择相应的编程语言,如游戏开发(C为主);网站,小游戏(H5/CSS/js等)、Android(Java为主);IOS(Objective-C、switch);后台服务器(Java、Python等);数据库(MySQL、Oracle、SQLServer等);嵌入式(C、汇编等)
世界上第一个程序是1842年写的,恰好在第一个能被称为计算机的真正机器。这段代码的作者是AdaAugusta,被封为Lovelace女伯爵,就是大家所知道的AdaLovelace。作为世界上第一个计算机程序的作者,她被广泛地认为是有史以来第一位程序员。
当把Ada称为一位程序员的时候,很容易忘记世界上第一段代码产生的年代就是塞缪尔·莫尔斯首次展示电话、阿姆斯达号上的黑奴在反抗和美国正处于三十年代、奥斯曼帝国和波斯帝国时期、穆斯林国家的奴隶正和埃及争夺中东地区的年代。计算机这个词在那时候仍然表示一个人做了100多年的计算工作的意思。那都是很久以前的事情了。
世界上第一段代码是为查尔斯·巴贝奇的分析机写的,这个机器从来没有真正建成过,虽然有这个可能。AdaLovelace看到了巴贝奇机器的潜力,产生了可编程的计算机的念头。她为泰勒的科学回忆录翻译了一位意大利数学家LuigiMenabrea的名为“分析机的概念图”的论文,并通过“翻译者的附注(她自己注释的)”把这篇论文弄懂了,那个注释里主要写了查尔斯·巴贝奇分析机都能干些什么。在附注G的开篇,就提到了世界上第一个计算机程序,举例说明了Lovelace意识到巴贝奇的设计是多么的意义深远,但还保持着她做科学的平静。
“防止夸大源于分析机的能量的想法是有必要的。”
Lovelace在她根本没有办法夸大一个包含现代计算机的主要部分的设计的本质。巴贝奇拒绝公布这台分析机的很多内容,使得Lovelace的注释对未来的发展起到了重要影响,最显著的影响便是促使阿兰·图灵产生通用程序存储计算机的想法。这一点Ada并没有看到,她36岁去世,前面提到的注释成了她唯一的出版物。如果她再能多活几年多工作几年,计算机会不会又是另一个样子呢?
让大家回到这个问题上来:如果巴贝奇有足够的资源建好分析机并能让Lovelace在上面跑程序的话,世界上第一个计算机程序是干嘛用的呢?这个程序让巴贝奇分析机计算了伯努利数字序列。接着她描述了怎么把大量的巴贝奇分析机的穿孔卡片作为输入实现这个程序。在她的实现方法中Lovelace设定了伯努利数序列的第一个数字(B0=1,B1=-),然后开始从B2(第一个非正规伯努利数)开始计算整个序列,她把这里的B2标记为B1。
现代重写的Javascript版本的Ada的大量穿孔卡片上的堆栈看起来可能是这个样子。这个重写的版本不是Ada的代码在巴贝奇分析机上的模拟,只是Ada曾经使用过的算法的另一种实现。
顺便提一下,到目前为止从没有人能从Ada的伯努利数计算代码里发现任何bug。尽管她发明了编程,但她显然并没有发明bug。
注:AdaLovelaceDay是一个国际性的庆祝妇女在科学,科技,工程和数学领域取得成就的节日。
最早的程序直接写的是二进制机器代码,没有编译器
将编好的代码通过读卡机读如机器,直接执行。
然后出现的是汇编语言,通过二进制的机器代码来实现汇编的编译连接工作,
然后在用汇编语言完善优化汇编语言;
接着才是高级语言,使用汇编语言编译
逐渐实现高级语言编译高级语言
19世纪之前
一、机械计算机时代的拓荒者
在西欧,由中世纪进入文艺复兴时期的社会大变革,大大促进了自然科学技术的发展,人们长期被神权压抑的创造力得到空前释放。其中制造一台能帮助人进行计算的机器,就是最耀眼的思想火花之一。从那时起,一个又一个科学家为把这一思想火花变成引导人类进入自由王国的火炬而不懈努力。但限于当时的科技总体水平,大都失败了,这就是拓荒者的共同命运:往往见不到丰硕的果实。后人在享用这甜美的时候,应该能从中品出一些汗水与泪水的滋味
1614:苏格兰人JohnNapier(1550-1617)发表了一篇论文,其中提到他发明了一种可以计算四则运算和方根运算的精巧装置。
1623:WilhelmSchickard(1592-1635)制作了一个能进行六位以内数加减法,并能通过铃声输出答案的'计算钟'。通过转动齿轮来进行 *** 作。
1625:WilliamOughtred(1575-1660)发明计算尺
1642:法国数学家Pascal在WILLIAMOughtred计算尺的基础上将计算尺加以改进,能进行八位计算。并且还卖出了许多,成为一种时髦的商品。
1668:英国人SamuelMorl和(1625-1695)制作了一个非十进制的加法装置,适宜计算钱币。
1671:德国数学家GottfriedLeibniz设计了一架可以进行乘法,最终答案可以最大达到16位。
1775:英国Charles制作成功了一台与Leibniz's的计算机类似的机器。但更先进一些。
1776:德国人MathieusHahn成功的制作了一台乘法器。
1801:Joseph-MaireJacuard开发了一台能用穿孔卡片控制的自动织布机。
1820:法国人CharlesXavierThomasdeColmar(1785-1870),制作成功第一台成品计算机,非常的可靠,可以放在桌面上,在后来的90多年间一直在市场上出售。
1822:英国人CharlesBabbage(1792-1871)设计了差分机和分析机,其中设计的理论非常的超前,类似于百年后的电子计算机,特别是利用卡片输入程序和数据的设计被后人所采用。
1832:Babbage和JosephClement制成了一个差分机的成品,开始可以进行6位数的运算。后来发展到20位、30位,尺寸将近一个房子那么大。结果以穿孔的形式输出。但限于当时的制造技术,他们的设计难以制成。
1834:斯德哥尔摩的GeorgeScheutz用木头做了一台差分机。
1834:Babbage设想制造一台通用的分析机,在只读存储器(穿孔卡片)中存储程序和数据,Babbage在以后的时间继续他的研究工作,并于1840年将 *** 作数提高到了40位,并基本实现了控制中心(CPU)和存储程序的设想,而且程序可以根据条件进行跳转,能在几秒内作出一般的加法,几分钟内作出乘除法。
1842:Babbage的差分机项目因为研制费用昂贵,被政府取消。但他自己仍花费大量的时间和精力于他的分析机研究。
1843:Scheutz和他的儿子EdvardScheutz制造了一台差分机,瑞典政府同意继续支持他们的研究工作。
1847:Babbage花两年时间设计了一台较简易的、31位的差分机,但没有人感兴趣并支持他造出这台机器。但后来伦敦科学博物馆用现代技术复制出这台机器后发现,它确实能准确的工作。
1848:英国数学家GeorgeBoole创立二进制代数学。提前差不多一个世纪为现代二进制计算机铺平了道路。
1853:令Babbage感到高兴的是,Scheutzes制造成功了真正意义上的比例差分机,能进行15位数的运算。象Babbage所设想的那样输出结果。后来伦敦的BrianDonkin又造出了更可靠的第二台。
1858:第一台制表机被Albany的Dudley天文台买走。第二台被英国政府买走。但天文台并没有将其充分利用,后来被送进了博物馆。而第二台却被幸运的使用了很长时间。
1871:Babbage制造了分析机的部分部件和印表机。
1878:纽约的西班牙人RamonVerea,制造成功桌面计算器。比前面提到的都要快。但他对将其推向市场不感兴趣,只是想表明,西班牙人可以比美国人做的更好。
1879:一个调查委员会开始研究分析机是否可行,最后他们的结论是:分析机根本不可能工作。此时Babbage已经去世了。调查之后,人们将他的分析机彻底遗忘了。但HowardAiken例外。
1885:这时期更多的计算机涌现出来。如美国、俄国、瑞典等。他们开始用有槽的圆柱代替易出故障的齿轮。
1886:芝加哥的DorrEFelt(1862-1930),制造了第一台用按键 *** 作的计算器,而且速度非常快,按键抬起,结果也就出来了。
1889:Felt推出桌面印表计算器。
1890:1890美国人口普查。1880年的普查人工用了7年的时间进行统计。这意味着1890年的统计将会超过10年。美国人口普查部门希望能得到一台机器帮助提高普查的效率。HermanHollerith,建立制表机公司的那个人,后来他的公司发展成了IBM公司。借鉴了Babbage的发明,用穿孔卡片存储数据,并设计了机器。结果仅仅用了6个周就得出了准确的数据(62622250人)。HermanHollerith大发其财。
1892:圣多美和普林西比的WilliamSBurroughs(1857-1898),制作成功了一台比Felt的功能更强的机器,真正开创了办公自动化工业。
1896:HermanHollerith创办了IBM公司的前身。1900~1910
1906:HenryBabbage,CharlesBabbage的儿子,在RWMunro的支持下,完成了父亲设计的分析机,但也仅能证明它能工作,而没有将其作为产品推出。
二、电子计算机最初的日子里
在这之前的计算机,都是基于机械运行方式,尽管有个别产品开始引入一些电学内容,却都是从属与机械的,还没有进入计算机的灵活:逻辑运算领域。而在这之后,随着电子技术的飞速发展,计算机就开始了由机械向电子时代的过渡,电子越来越成为计算机的主体,机械越来越成为从属,二者的地位发生了变化,计算机也开始了质的转变。下面就是这一过渡时期的主要事件:
1906:美国的LeeDeForest发明了电子管。在这之前造出数字电子计算机是不可能的。这为电子计算机的发展奠定了基础。
1920~1930
1924年2月:IBM,一个具有划时代意义的公司成立
1930~1940
1935:IBM推出IBM601机。这是一台能在一秒钟算出乘法的穿孔卡片计算机。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。
1937:英国剑桥大学的AlanMTuring(1912-1954)出版了他的论文,并提出了被后人称之为'图灵机'的数学模型。
1937:BELL试验室的GeorgeStibitz展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是第一台二进制电子计算机。
1938:ClaudeEShannon发表了用继电器进行逻辑表示的论文。
1938:柏林的KonradZuse和他的助手们完成了一个机械可编程二进制形式的计算机,其理论基础是Boolean代数。后来命名为Z1。它的功能比较强大,用类似**胶片的东西作为存储介质。可以运算七位指数和16位小数。可以用一个键盘输入数字,用灯泡显示结果。
19391月1日:加利福尼亚的DavidHewlet和WilliamPackard在他们的车库里造出了Hewlett-Packard计算机。名字是两人用投硬币的方式决定的。包括两人名字的一部分。
1939年11月:美国JohnVAtanasoff和他的学生CliffordBerry完成了一台16位的加法器,这是第一台真空管计算机。
1939:二次世界大战的开始,军事需要大大促进了计算机技术的发展。
1939:Zuse和Schreyer开始在他们的Z1计算机的基础上发展Z2计算机。并用继电器改进它的存储和计算单元。但这个项目因为Zuse服兵役被中断了一年。
1939/1940:Schreyer利用真空管完成了一个10位的加法器,并使用了氖灯做存储装置。
1940~1950
1940年1月:Bell实验室的SamuelWilliams和Stibitz制造成功了一个能进行复杂运算的计算机。大量使用了继电器,并借鉴了一些电话技术,采用了先进的编码技术。
1941夏季:Atanasoff和学生Berry完成了能解线性代数方程的计算机,取名叫'ABC'(Atanasoff-BerryComputer),用电容作存储器,用穿孔卡片作辅助存储器,那些孔实际上是'烧'上的。时钟频率是60HZ,完成一次加法运算用时一秒。
1941年12月:德国Zuse制作完成了Z3计算机的研制。这是第一台可编程的电子计算机。可处理7位指数、14位小数。使用了大量的真空管。每秒种能作3到4次加法运算。一次乘法需要3到5秒。
1943:1943年到1959年时期的计算机通常被称作第一代计算机。使用真空管,所有的程序都是用机器码编写,使用穿孔卡片。典型的机器就是:UNIVAC。
1943年1月:MarkI,自动顺序控制计算机在美国研制成功。整个机器有51英尺长,重5吨,75万个零部件,使用了3304个继电器,60个开关作为机械只读存储器。程序存储在纸带上,数据可以来自纸带或卡片阅读器。被用来为美国海军计算d道火力表。
1943年4月:MaxNewman、Wynn-Williams和他们的研究小组研制成功'HeathRobinson',这是一台密码破译机,严格说不是一台计算机。但是其使用了一些逻辑部件和真空管,其光学装置每秒钟能读入2000个字符。同样具有划时代的意义。
1943年9月:Williams和Stibitz完成了'RelayInterpolator',后来命名为'ModelIIRelayCalculator'。这是一台可编程计算机。同样使用纸带输入程序和数据。其运行更可靠,每个数用7个继电器表示,可进行浮点运算。
1943年12月:最早的可编程计算机在英国推出,包括2400个真空管,目的是为了破译德国的密码,每秒能翻译大约5000个字符,但使用完后不久就遭到了毁坏。据说是因为在翻译俄语的时候出现了错误。
1946:ENIAC(ElectronicNumericalIntegrator和Computer):第一台真正意义上的数字电子计算机。开始研制于1943年,完成于1946年。负责人是JohnWMauchly和JPresperEckert。重30吨,18000个电子管,功率25千瓦。主要用于计算d道和氢d的研制。
三、晶体管计算机的发展
真空管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点,一发而不可收
1947:Bell实验室的WilliamBShockley、JohnBardeen和WalterHBrattain发明了晶体管,开辟了电子时代新纪元。
1949:EDSAC:剑桥大学的Wilkes和他的小组建成了一台存储程序的计算机。输入输出设备仍是纸带。
1949:EDVAC(electronicdiscretevariablecomputer):第一台使用磁带的计算机。这是一个突破,可以多次在其上存储程序。这台机器是JohnvonNeumann提议建造的。
1949:'未来的计算机不会超过15吨。'这是当时科学杂志的大胆预测。
1950~1960
1950:软磁盘由东京帝国大学的YoshiroNakamats发明。其销售权由IBM公司获得。开创存储时代新纪元。
1950:英国数学家和计算机先驱AlanTuring说:计算机将会具有人的智慧,如果一个人和一台机器对话,对于提出和回答的问题,这个人不能区别到底对话的是机器还是人,那么这台机器就具有了人的智能。
1951:GraceMurrayHopper完成了高级语言编译器。
1951:Whirlwind:美国空军的第一个计算机控制实时防御系统研制完成。
1951:UNIVAC-1:第一台商用计算机系统。设计者:JPresperEckert和JohnMauchly。被美国人口普查部门用于人口普查,标志着计算机的应用进入了一个新的、商业应用的时代。
1952:EDVAC(ElectronicDiscreteVariableComputer):由VonNeumann领导设计并完成。取名:电子离散变量计算机。
1953:此时世界上大约有100台计算机在运转。
1953:磁芯存储器被开发出来。
1954:IBM的JohnBackus和他的研究小组开始开发FORTRAN(FORmulaTRANslation),1957年完成。是一种适合科学研究使用的计算机高级语言。
1956:第一次有关人工智能的会议在Dartmouth学院召开。
1957:IBM开发成功第一台点阵打印机。
1957:FORTRAN高级语言开发成功。
四、集成电路,现代计算机插上腾飞的翅膀
尽管晶体管的采用大大缩小了计算机的体积、降低了其价格,减少了故障。但离人们的要求仍差很远,而且各行业对计算机也产生了较大的需求,生产更能更强、更轻便、更便宜的机器成了当务之急,而集成电路的发明正如\"及时雨\",当春乃发生。其高度的集成性,不仅仅使体积得以减小,更使速度加快,故障减少。人们开始制造革命性的微处理器。计算机技术经过多年的积累,终于驶上了用硅铺就的高速公路。
1958年9月12日:在RobertNoyce(INTEL公司的创始人)的领导下,发明了集成电路。不久又推出了微处理器。但因为在发明微处理器时借鉴了日本公司的技术,所以日本对其专利不承认,因为日本没有得到应有的利益。过了30年,日本才承认,这样日本公司可以从中得到一部分利润了。但到2001年,这个专利也就失效了。
1959:1959年到1964年间设计的计算机一般被称为第二代计算机。大量采用了晶体管和印刷电路。计算机体积不断缩小,功能不断增强,可以运行FORTRAN和COBOL,接收英文字符命令。出现大量应用软件。
1959:GraceMurrayHopper开始开发COBOL(COmmonBusiness-OrientatedLanguage)语言,完成于1961年。
1960~1970
1960:ALGOL:第一个结构化程序设计语言推出。
1961:IBM的KennthIverson推出APL编程语言。
1963:PDP-8:DEC公司推出第一台小型计算机。
1964:1964年到1972年的计算机一般被称为第三代计算机。大量使用集成电路,典型的机型是IBM360系列。
1964:IBM发布PL/1编程语言。
1964:发布IBM360首套系列兼容机。
1964:DEC发布PDB-8小型计算机。
1965:摩尔定律发表,处理器的性能每年提高一倍。后来其内容又发生了改变。
1965:LoftiZadeh创立模糊逻辑,用来处理近似值问题。
1965:ThomasEKurtz和JohnKemeny完成BASIC(BeginnersAllPurposeSymbolicInstructionCode)语言的开发。特别适合计算机教育和初学者使用,得到了广泛的推广。
1965:DouglasEnglebart提出鼠标器的设想,但没有进一步的研究。直到1983年被苹果电脑公司大量采用。
1965:第一台超级计算机CD6600开发成功。
1967:NiklausWirth开始开发PASCAL语言,1971年完成。
1968:RobertNoyce和他的几个朋友创办了INTEL公司。
1968:SeymourPaper和他的研究小组在MIT开发了LOGO语言。
1969:ARPANET计划开始启动,这是现代INTERNET的雏形。
1969年4月7日:第一个网络协议标准RFC推出。
1969:EIA(ElectronicIndustriesAssocia
1970~1980
1970:第一块RAM芯片由INTEL推出,容量1K。
1970:KenThomson和DennisRitchie开始开发UNIX *** 作系统。
1970:Forth编程语言开发完成。
1970:Internet的雏形ARPAnet(AdvancedResearchProjectsAgencynetwork)基本完成。开始向非军用部门开放,许多大学和商业部门开始接入。
1971年11月15日:MarcianEHoff在INTEL公司开发成功第一块微处理器4004,含2300个晶体管,是个4位系统,时钟频率108KHz,每秒执行6万条指令。
在后来的日子里,处理器发展主要指标一览:
处理器主频每秒百万条指令
4004108KHz006
80802MHz05
680008MHz07
80868MHz08
6800016MHz13
6802016MHz26
8028612MHz27
6803016MHz39
386SX20MHz6
6803025MHz63
6803040MHz10
386DX33MHz10
486DX25MHz20
486DX2-5050MHz35
486DX4/100100MHz60
Pentium66MHz100
Pentium133MHz240
Pentium233MHzMMX435
PentiumPro200MHz440
PentiumII233MHz560
PentiumII333MHz770
1971:PASCAL语言开发完成。
1972:1972年以后的计算机习惯上被称为第四代计算机。基于大规模集成电路,及后来的超大规模集成电路。计算机功能更强,体积更小。人们开始怀疑计算机能否继续缩小,特别是发热量问题能否解决?人们开始探讨第五代计算机的开发。
1972:C语言的开发完成。其主要设计者是UNIX系统的开发者之一DennisRitche。这是一个非常强大的语言,开发系统软件,特别受人喜爱。
1972:Hewlett-Packard发明了第一个手持计算器。
1972年4月1日:INTEL推出8008微处理器。
1972:ARPANET开始走向世界,INTERNET革命拉开序幕。
1973:街机游戏Pong发布,得到广泛的欢迎。发明者NolanBushnell,后来Atari的创立者。
1974:第一个具有并行计算机体系结构的CLIP-4推出。
五、计算机技术渐入辉煌
在这之前,计算机技术主要集中在大型机和小型机领域发展,但随着超大规模集
1、确定干部选拔的标准和条件。通过干部选拔流程,明确干部选拔的标准和条件,建立起公正、公开的选拔标准,确保干部选拔工作的公正性和合理性。
2、确保干部选拔的程序合法。通过干部选拔流程,规范干部选拔的程序,保证干部选拔工作的合法性和科学性,避免人为干扰和不正当行为的出现。
3、选拔优秀干部。通过干部选拔流程,选拔具有良好素质和能力的优秀干部,为组织和社会培养出更多的优秀领导干部,提高组织的凝聚力和战斗力。
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢?
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。没有这些特殊的指令,就不能执行预期的任务。计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于 *** 作系统中,因此我们不必担心它们工作,他们都是由处理器和 *** 作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。因此我们要通过程序的方式来让计算机为我们“效劳”。而这个过程就是我们“编”出来的。编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件 *** 作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的 *** 作用命令的形式写出来。
汇编程序的每一句指令只能对应实际 *** 作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的 *** 作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体 *** 作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来当然是由我们编写出来了。或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有可能就是你所需要的。但是,就好比去买衣服,虽然卖衣服的到处都是,但是哪一件是为你“量身定做”的呢!
程序还能够做很多事情不同的程序可以完成不同的事情。从大的方面到管理国家的财务,小的方面管理家庭的帐务。
又如,如果你想要你的计算机能播放动画,那么你的计算机中也要有相应的动画播放程序,下面所示的就是一个F1ssh动画播放器。我们将会在后面的章节具体讲述这个程序的编制过程。
随着计算机的飞速发展,总会有那么一天将不会编程的人列为“文盲”。你不希望吧那么就好好的学习一种程序设计语言吧。
编程会过时吗
编程会过时吗这个问题,让我先问你一个问题:计算机会消失吗这两者答案是一样的。知道了计算机会不会消失,就知道了编程会不会过时。
编程工具会过时,而编程却不会过时
计算机系统由可以看见的硬倒:系统和看不见的软件系统组成。要使计算机能够正常的工作,仅仅有硬件系统是不行的,没有软倒系统(即没有程序)的计算机可以说只是—堆废铁,什么事情都干不了。例如当你撰写—篇文章的时候,你需要在 *** 作系统中用文字编辑软件来实现文字的输入,但如果没有这些文字输入软件的话,你是否想过如何向计算机中输入文章呢很难想象出如何在一个没有任何软件的计算机(我们称之为裸机)上进行文字的输入。而这些软件其实就是通常我们所说的程序。
编程会过时吗我们从另一个角度来考虑这个问题,计算机有——天会消失吗如果有一天当世界上所有的事情处理都用不到计算机了,那么计算机将会很快的消失,那时编程不仅过时了,而且也会随之消失了。但是计算机会消失吗当然不会,如今计算机应用到每一领域,为人类的发展做出了不可估量的贡献。试想一下如果有一天全世界的计算机突然消失了,那么这个世界将变成什么样子,或许和全世界都停电了一样恐怖,甚至还会有更大的损失。计算机的存在必须要有软件系统来维持。因此编程永远不会、也不可能会过时。
计算机程序设计语言发展到今天,已经从最原始的机器语言发展到如今可视化的集成开发环境,甚至集多种语言在同一开发平台上,像微软的NET平台。回头看看程序设计语言的发展史,不难看出对于编程来说,只会出现编程工具的过时,不会出现编程本身的过时。
不断变化的技术需要不断变化的程序员
从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。计算机的硬件发展速度遵循“摩尔定律”每十八个月速度翻一倍(实际现在已超过了这个速度)。软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的程序员,例如,如今Visual Basic可以快速构Windows下的应用程序,程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当面向对象的思想被提出后,出现了C++,微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要程序员也要不断的更新自己的技术。
计算机科学与别的学科很不一样,不像语言学、历史学那样,几乎是永久不变的东西。计算机科学要求不断的更新自己的知识,否则很快就会被淘汰,即便是编程亦是如此。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。
总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。
我们一起来编程
面对摆在面前的计算机该如何 *** 作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的!
选择适合自己的程序语言的必要性
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择 Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
坚定自己学习编写程序的信心
编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。
三、我可以编程吗
随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。
总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。
四、我们一起来编程
面对摆在面前的计算机该如何 *** 作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的!
选择适合自己的程序语言的必要性
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择 Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
坚定自己学习编写程序的信心
编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。
一、计算机语言的发展过程
到目前为止,世界上公布的程序设计语言有上千种之多,常用的也有三十来种,为了有21于正确选择和使用它们,下面我们做一个简单介绍。
(1)汇编语言:
它是依赖于具体计算机的语言,用它编写出的程序,执行效率高,但是只在一些特殊要求或特殊的场合才使用它。
(2)高级语言:
大家可能都听过使用高级语言进行程序设计,但由于对其并不了解,所以总认为这些是很高深的东西。其实并非如此,学习了后面的章节,相信同学会产生编程原来不过如此。
但计算机是不懂得自然语言的(可以理解为高级语言),而高级语言设计出来的程序如何让计算机去执行呢其实很简单,看了下图后相信大家会明白许多。
现在我们就向大家介绍几种常见的高级语言:
Fortran语言是科学和工程计算中使用的主要编程语言。目前国内使用版本多数是Fortran 66和Fortran77两种。Fortran语言的主要缺点是不能直接支持结构化编程。
Cob0l语言是商业数据处理中广泛使用的语言。由于它本身结构上的特点,使得它能有效的支持与商业处理有关的、范围广泛的过程技术。它的缺点是不简洁。
Algol语言是所有结构化语言的先驱,具有丰富的过程和数据结构。但是,这种语言并没有被广泛采用,主要是由于它本身的历史原因所造成的。
Basic语言是一种解释执行的会话语言。由于它简单易学的特点,它被广泛应用在微型计算机系统中。
PL//1语言是一个用途广泛的语言。能支持通常的科学工程和商业应用,能描述复杂的数据结构、多重任务处理、复杂的输入输出和表格处理等。
Pascal语言是70年代初期发展起来的结构化程序设计语言,具有特别丰富的数据结构类型。它自问世后,得到了众人的赞赏,也得到了软件开发者的广泛支持。Pascal语言已用于科学、工程和系统程序设计中。我们教育部计算机专业教育会议曾把Pascal语言定为计算机专业程序设计语言。
C语言是作为UNIX *** 作系统的主要使用语言。由于UNIX *** 作系统的成功,现在C语言也得到了广泛的使用。C语言是有经验的软件工程师设计的,它具有很强的功能,以及高度的灵活性。它和其他的结构化语言一样,能提供丰富的数据类型、广泛使用的指针以及—组很丰富的计算和数据处理使用的运算符。
C++语言是C语言的扩充。在1980年,贝尔实验室的Bjarne Strotstrup博士及其同事开始对C语言进行改进和扩充,最初被称为“带类的C”,1983年才取名为C++。以及不断完善和发展,成为目前的C+ +语言。一方面,它将C语言作为它的子集,使它能够与C语言兼容。使许多C语言代码不经修改就可以为C++语言所用以及用C语言编写的众多库函数和和实用软件可以直接用于C++语言中;另一方面。C++语言支持面向对象的程序设计这是它对C语言最重要的改进。
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢?
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。没有这些特殊的指令,就不能执行预期的任务。计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于 *** 作系统中,因此我们不必担心它们工作,他们都是由处理器和 *** 作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。因此我们要通过程序的方式来让计算机为我们“效劳”。而这个过程就是我们“编”出来的。编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件 *** 作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的 *** 作用命令的形式写出来。
汇编程序的每一句指令只能对应实际 *** 作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的 *** 作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体 *** 作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来当然是由我们编写出来了。或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有可能就是你所需要的。但是,就好比去买衣服,虽然卖衣服的到处都是,但是哪一件是为你“量身定做”的呢!
程序还能够做很多事情不同的程序可以完成不同的事情。从大的方面到管理国家的财务,小的方面管理家庭的帐务。
又如,如果你想要你的计算机能播放动画,那么你的计算机中也要有相应的动画播放程序,下面所示的就是一个F1ssh动画播放器。我们将会在后面的章节具体讲述这个程序的编制过程。
随着计算机的飞速发展,总会有那么一天将不会编程的人列为“文盲”。你不希望吧那么就好好的学习一种程序设计语言吧。
编程会过时吗
编程会过时吗这个问题,让我先问你一个问题:计算机会消失吗这两者答案是一样的。知道了计算机会不会消失,就知道了编程会不会过时。
编程工具会过时,而编程却不会过时
计算机系统由可以看见的硬倒:系统和看不见的软件系统组成。要使计算机能够正常的工作,仅仅有硬件系统是不行的,没有软倒系统(即没有程序)的计算机可以说只是—堆废铁,什么事情都干不了。例如当你撰写—篇文章的时候,你需要在 *** 作系统中用文字编辑软件来实现文字的输入,但如果没有这些文字输入软件的话,你是否想过如何向计算机中输入文章呢很难想象出如何在一个没有任何软件的计算机(我们称之为裸机)上进行文字的输入。而这些软件其实就是通常我们所说的程序。
编程会过时吗我们从另一个角度来考虑这个问题,计算机有——天会消失吗如果有一天当世界上所有的事情处理都用不到计算机了,那么计算机将会很快的消失,那时编程不仅过时了,而且也会随之消失了。但是计算机会消失吗当然不会,如今计算机应用到每一领域,为人类的发展做出了不可估量的贡献。试想一下如果有一天全世界的计算机突然消失了,那么这个世界将变成什么样子,或许和全世界都停电了一样恐怖,甚至还会有更大的损失。计算机的存在必须要有软件系统来维持。因此编程永远不会、也不可能会过时。
计算机程序设计语言发展到今天,已经从最原始的机器语言发展到如今可视化的集成开发环境,甚至集多种语言在同一开发平台上,像微软的NET平台。回头看看程序设计语言的发展史,不难看出对于编程来说,只会出现编程工具的过时,不会出现编程本身的过时。
不断变化的技术需要不断变化的程序员
从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。计算机的硬件发展速度遵循“摩尔定律”每十八个月速度翻一倍(实际现在已超过了这个速度)。 软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小 的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的程序员,例如,如今Visual Basic可以快速构Windows下的应用程序,程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当面向对象的思想被提出后,出现了C++,微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要程序员也要不断的更新自己的技术。
计算机科学与别的学科很不一样,不像语言学、历史学那样,几乎是永久不变的东西。计算机科学要求不断的更新自己的知识,否则很快就会被淘汰,即便是编程亦是如此。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。
总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。
我们一起来编程
面对摆在面前的计算机该如何 *** 作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的!
选择适合自己的程序语言的必要性
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
坚定自己学习编写程序的信心
编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。
三、我可以编程吗
随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。
编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。
编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。
总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。
四、我们一起来编程
面对摆在面前的计算机该如何 *** 作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的!
选择适合自己的程序语言的必要性
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
坚定自己学习编写程序的信心
编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。
一、计算机语言的发展过程
到目前为止,世界上公布的程序设计语言有上千种之多,常用的也有三十来种,为了有21于正确选择和使用它们,下面我们做一个简单介绍。
(1)汇编语言:
它是依赖于具体计算机的语言,用它编写出的程序,执行效率高,但是只在一些特殊要求或特殊的场合才使用它。
(2)高级语言:
大家可能都听过使用高级语言进行程序设计,但由于对其并不了解,所以总认为这些是很高深的东西。其实并非如此,学习了后面的章节,相信同学会产生编程原来不过如此。
但计算机是不懂得自然语言的(可以理解为高级语言),而高级语言设计出来的程序如何让计算机去执行呢其实很简单,看了下图后相信大家会明白许多。
现在我们就向大家介绍几种常见的高级语言:
Fortran语言是科学和工程计算中使用的主要编程语言。目前国内使用版本多数是Fortran 66和Fortran77两种。Fortran语言的主要缺点是不能直接支持结构化编程。
Cob0l语言是商业数据处理中广泛使用的语言。由于它本身结构上的特点,使得它能有效的支持与商业处理有关的、范围广泛的过程技术。它的缺点是不简洁。
Algol语言是所有结构化语言的先驱,具有丰富的过程和数据结构。但是,这种语言并没有被广泛采用,主要是由于它本身的历史原因所造成的。
Basic语言是一种解释执行的会话语言。由于它简单易学的特点,它被广泛应用在微型计算机系统中。
PL//1语言是一个用途广泛的语言。能支持通常的科学工程和商业应用,能描述复杂的数据结构、多重任务处理、复杂的输入输出和表格处理等。
Pascal语言是70年代初期发展起来的结构化程序设计语言,具有特别丰富的数据结构类型。它自问世后,得到了众人的赞赏,也得到了软件开发者的广泛支持。Pascal语言已用于科学、工程和系统程序设计中。我们教育部计算机专业教育会议曾把Pascal语言定为计算机专业程序设计语言。
C语言是作为UNIX *** 作系统的主要使用语言。由于UNIX *** 作系统的成功,现在C语言也得到了广泛的使用。C语言是有经验的软件工程师设计的,它具有很强的功能,以及高度的灵活性。它和其他的结构化语言一样,能提供丰富的数据类型、广泛使用的指针以及—组很丰富的计算和数据处理使用的运算符。
C++语言是C语言的扩充。在1980年,贝尔实验室的Bjarne Strotstrup博士及其同事开始对C语言进行改进和扩充,最初被称为“带类的C”,1983年才取名为C++。以及不断完善和发展,成为目前的C++语言。一方面,它将C语言作为它的子集,使它能够与C语言兼容。使许多C语言代码不经修改就可以为C++语言所用以及用C语言编写的众多库函数和和实用软件可以直接用于C++语言中;另一方面。C++语言支持面向对象的程序设计这是它对C语言最重要的改进。
以下的虽然有点长,但是希望你能耐心的看完
当好一名合格的程序员不仅要有扎实的基础知识,还要多思考,多实践,勤看书,更要有团队合作精神,平时多和别人交流,俗话说:“三人行必有我师”,多上网看看一些资料,看看别人对同一问题的看发会有很大的启发,要知道不是你一个人在写程序而是和大家一起写程序,注重团队的力量!编程是一种艺术,要好好的发挥团队的力量把它做的漂亮,完美。
勤奋联系,多写一些程序,然后在根据程序代码多想想用多种方法去测试运行它`实习基地给我们提供了实际做一些项目的机会`我会借这个机会多学习`多思考,多实践。多看一些相关的书,不断提高自己。
我觉得做一名程序员是很难的,特别是做一名合格的程序员就更要严格要求自己,增加团队合作能力,不断提高自身水平。
11 程序≠软件
现在很多人以为程序就是软件,软件就是程序。事实上,软件和程序在20世纪80年代时,还可以说是等同的,或者说,在非pc领域里它们可能还会是等同的,比如说某个嵌入式软件领域,软件和程序可能是等同的。但是,在pc这个领域内,现在的程序已不等于软件了。这是什么意思呢?
1 软件发展简述
在20世纪80年代的时候,pc刚诞生,这时国内还没有几个人会写程序。那么,如果你写个程序,别人就可以拿来用。这时候的程序就能产生价值,这个程序就直接等同于软件。
但软件行业发展到现在,这里以中国的情况为例(美国在20世纪80年代,程序已经不等同于软件了),程序也不等同于软件了。因为现在会写程序很容易,但是你的这个程序很难产生什么样的商业意义,也不能产生什么价值,这就很难直接变成软件。要使一个程序直接变成软件,中间就面临着很高的门槛问题。这个门槛问题来自于整个行业的形成。
现在,你写了一个程序以后,要面临商业化的过程。你要宣传,你要让用户知道,你要建立经销渠道,可能你还要花很多的时间去说服别人用你的东西。这是程序到软件的一个过程。这门槛已比较高了。
我们在和国内的大经销商的销售渠道的人聊天时,他们的老板说,这几年做软件的门槛挺高的,如果你没有五、六百万做软件,那是“玩”不起来的。我说:“你们就使门槛很高了。”他说:“那肯定是的。如果你写个“烂”程序,明天你倒闭了,你的东西还占了我的库房,我还不知道找谁退去呢。我的库房是要钱的呀!现在的软件又是那么多!”
所以,如果你没有一定的资产的话,经销商都不理你。实际情况也是这样的,如果你的公司比较小,且没什么名气,你的产品放到经销商库房,那么他最多给你暂收,产品销不动的话,一般两周绝对会退货。因为现在经销商可选择的余地已很多了,所谓的软件也已经很多了。而程序则更多,程序都想变成软件,谁都说自己的是“金子”。但只有经受住用户的检验,才能成为真正的“金子”。
这就是美国为什么在20世纪90年代几乎没有什么新的软件公司产生的原因。只是原来80年代的大的软件公司互相兼并,我吞你,你吃我。但是,写程序的人很多,美国的程序变软件的门槛可能比我们还高,所以很多人写了程序就丢在网上,就形成了共享软件。
2 共享软件
共享软件是避开商业渠道的一种方法。它避开了商业的门槛,因为这个行业的门槛发展很高以后就轻易进不去了。我写个程序丢在网上,你下载就可以用,这时候程序又等于软件。共享软件是这样产生的,是因为没有办法中的办法。如果说程序直接等于软件的话,谁也不会轻易把程序丢到网上去。
开始做共享软件的人并不认为做它能赚钱,只是后来用的人多了,有人付钱给他了。共享软件使得程序和软件的距离缩短了,但是它与商业软件的距离会进一步拉大。商业软件的功能和所要达到的目标就不是一个人能“玩”得起来的了。这时的软件也已不是几个人、一个小组就能做出来的了。这就是在美国新的软件公司没法产生的原因。比如netscape网景是在1995~1996年产生的新软件公司,但是,两三年后它就不见了。
111 商业软件门槛的形成
1 商业软件门槛的形成
商业软件门槛的形成是整个行业发展的必然结果。任何一个行业初始阶段时的门槛都非常低,但是,只要发展到一定的阶段后,它的门槛就必然抬高。比如,现在国内生产小汽车很困难,但在20世纪50年代~60年代的时候,你装4个轮子,再加上柴油机等就形成汽车。那时的莱特兄弟装个螺旋桨,加两个机翼,就能做飞机。整个行业还没有形成的时候,绝对可以这样做,但是,到整个行业形成时,你就做不了了。所有的行业都是这样的。
为什么网站一出来时那么多人去挤着做?这也是因为一开始的时候,看起来门槛非常低,人人都可以做。只要有一个服务器,架根网线,就能做网站。这个行业处于初始阶段时,情况就是这样的。但这个行业形成后,你就轻易地“玩”不了了。
国内的软件发展也是如此。国内的软件自从软件经销商形成以后,这个行业才真正地形成。有没有一个渠道是判断一个行业是否形成的很重要的环节。任何一个行业都会有一个经销渠道,如果渠道形成了,那么这个行业也就形成了。第一名的经销商是1994年~1995年成立的,也就是说,中国软件行业大概也就是在1995年形成的,至今才经历8年时间的发展。
有一种浮躁的思想认为,中国软件产业应该很快就能赶上美国。美国软件行业是上世纪80年代形成的,到现在已经发展了20多年了。中国软件行业才8年,8年才是一个懵懂的小孩,20多岁是一个强壮的青年,那么他们的力量是不对等的。但也要看到,当8岁变成15岁的时候,它真正的能量才会反映出来。
2 软件门槛对程序员的影响
现在中国软件行业正在形成。所以,现在做一个程序员一定要有耐心,因为现在已经不等于以前了。你一定要把所有的问题搞清楚,然后再去做程序。
对于程序员来说,最好的工作环境是在现有的或者初始要成立的公司里面,这是最容易成功的。个人单q匹马闯天下已经很困难了。即使现在偶尔做两个共享软件放在网上能成名,但是也已经比较困难了。因为现在做软件的人已经很多了。这也说明软件已经不等于程序了,程序也不等于软件。
程序要变成软件,这中间是一个商业化的过程。没有门槛以前,它没有这个商业过程,现在有这个行业了,它中间就有商业化的过程。这个商业的过程就不是一个人能“玩”的。
如果你开始做某一类软件的时候,别人已经做成了,这时你再决定花力气去做,那么你就要花双倍的力气去赶上别人。
现在的商业软件往往是由很多模块组成的,模块是整个系统的一部分。个人要完整地写一个商业系统几乎是不可能的。软件进入windows平台后,它已经很复杂了,不像在dos的时候,你写两行程序就能卖,做个zip也能卖。事实上,美国的商业编译器也不是一个人能“玩”的。现在你可能觉得它是很简单的,甚至linux还带了一个gcc,且源程序还在。你可以把它改一改,做个vc试一试,看它会有人用吗?它能变成软件吗?即使你再做个界面,它也还是一个gcc,绝对不会成为visual c++那样能商业化的软件。
可见,国外软件行业的门槛要比中国的高很多了。我觉得我们中国即使再去做这样的东西,也没有多大的意义了。这个门槛你是追不过来的。不仅要花双倍的力气,而且在这么短的时间内,你还要完成别人已经完成过的工作,包括别人所做的测试工作。只有这样,才能做到你的软件与别人有竞争力,能与它做比较。
112 认清自己的发展
如果连以上认识都不清楚,很可能就以为去书店买一本mfc高手速成之类的书,编两个程序就能成为软件高手。就好像这些书是“黄金”,我学两下,学会了vc、mfc,就能做一个软件拿出去卖了。这种想法也不是不行,最后一定能行,但要有耐心,还要有机遇。机遇是从耐心中产生的,越有耐心,就越有机遇。你得非常努力,要花很多的精力,可能还要走很多的弯路。
如果你是从mfc入手的,或是从vb入手的,则如要做出一个真正的能应用个人领域的通用软件,就会走非常多的弯路。直接的捷径绝对不是走这两条路。这两条路看起来很快,而且在很多公司里面确实需要这样的东西,比如说我这家公司就是为另一个家公司做系统集成的,那我就需要这样的东西,我不管你具体怎么实现,我只需要达到这个目标就行了。
任何软件的实现都会有n种方法,即使你是用最差的那种方法实现的,也没有问题,最后它还是能运行。即使有问题,再改一改就是。但是,做通用软件就不行了,通用是一对多,你做出来的软件以后要面向全国,如果将来自由贸易通到香港也好,通到国外也好,整个产品能销到全世界的话,这时候,通用软件所有做的工作就不是这么简单了。所以说,正确的入门方法就很关键。
如果你仅仅只是想混口饭吃,找个工作,可能教你成为mfc的高手之类的书对你就足够了。但是,如果你想做一个很好的软件,不仅能满足你谋一碗饭吃,还能使你扬名,最后你的软件还能成为很多人用,甚至你还想把它作为一个事业去经营,那么这第一步就非常关键。这时就绝对不能找一本mfc或找一本vb的书学两下就行,而是要从最底层开始做起,从最基本做起。
12 高手是怎样练成的
121 高手成长的六个阶段
程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。
我认为,一个程序员的成长可分为如下六个阶段。
第一阶段
此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。
第二阶段
此阶段能精通基于某种平台的接口(例如我们现在常用的win 32的api函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。
第三阶段
此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。
第四阶级
此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行vxd或 *** 作系统的内核的修改。
这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想变不过来。
第五阶级
此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是ms word这样的大型软件,只要有充足的时间,也一定会设计出来。
第六阶级
此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。
此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,win 32或linux在你眼里是没有什么差别的。
每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。
要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。
现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。
但是,也还有一大堆处在第一阶段的程序员,他们一般就能玩玩vb,做程序时,去找一堆控件集成一个软件。
现在一种流行的说法是,中国软件人才现在是一个橄榄型的人才结构,有大量的中等水平的程序员,而初级和高级程序员比较少。而我认为,现在中国绝大多数都是初级的程序员,中级程序员很少,高级的就更少了。所以,现在的人才结构是“方塔”形,这是一种断层的不良结构。而真正成熟的软件人才结构应该是平滑的三角形结构。这样,初级、中级、高级程序员才能充分地各施所长。三种人才结构对比如图11所示。
图11 三种人才结构对比
122 初级程序员和高级程序员的区别
一般对于一个问题,初级程序员和高级程序员考虑这个问题的方法绝对是不同的。比如,在初级程序员阶段时,他会觉得vb也能做出应用来,且看起来也不错。
但到了中级程序员时,他可能就不会选择vb了,可能会用mfc,这时,也能做出效果不错的程序。
到高级程序员时,他绝对不是首先选择以上工具,vb也好,vc也好,这些都不是他考虑的问题。这时考虑的绝对是什么才是具有最快效率、最稳定性能的解决问题的方法。
软件和别的产品不同。比如,在软件中要达到某个目标,有n种方法,但是在n种方法中,只有一种方法或两种方法是最好的,其他的都很次。所以,要做一个好的系统,是很需要耐心的。如果没有耐心,就不会有细活,有细活的东西才是好东西。我觉得做软件是这样,做任何事情也是这样的,一定要投入。
程序员到达最高境界的时颍�氲木褪恰拔揖褪浅绦颍�绦蚓褪俏摇薄U馐焙蛭乙�鲆桓鋈砑��换嵊凶约褐鞴鄣乃悸罚��且曰�鞯乃悸防纯悸俏侍猓�簿褪撬担�褪且猿绦虻乃伎挤绞嚼此伎汲绦颍��皇且晕胰ド杓瞥绦虻姆绞饺ニ伎汲绦颉U庖坏闳绻�坏奖冉细叩牟愦问遣荒苊靼椎摹
你设计程序不就是你思考问题,然后按自己的思路去做程序吗?
其实不是的。在我设计这个程序的时候,相当于我“钻”入这个程序里面去了。这时候没有我自己的任何思维,我的所有思维都是这个程序,它这步该怎么走,下步该怎么走,它可能会出现什么情况。我动这个部分的时候,别的部分是否要干扰,也许会动一发而牵全身,它们之间是怎么相互影响的?
也只有到达这个境界,你的程序才能真正地写好,绝对不是做个什么可视化。可视化本身就是“我去设计这个程序”,而真正的程序高手是“我就是程序”,这两种方法绝对是不同的。比如,我要用vb去设计一个程序,和我本身就是一个程序的思维方式,是不一样的。别人也许觉得 *** 作系统很深奥,很复杂,其实,如果你到达高手状态,你就是 *** 作系统,你就能做任何程序。
对待软件要有一个全面的分析方法,光说理论是没有用的。如果你没有经过第一、第二、第三、第四这四个阶段,则永远到达不了高境界。因为空中楼阁的理论没有用,而这些必须是一步一步地去做出来。
一个高级程序员应该具备开放性思维,从里到外的所有的知识都能了解。然后,看到世界最新技术就能马上掌握,马上了解。实际上,技术到达最高的境界后,是没有分别的。任何东西都是相通的,只要你到达这个境界以后,什么问题一看就能明白,一看就能抓住最核心的问题,最根本的根本,而不会被其他的枝叶或表象所迷惑,做到这一步后才算比较成功。
从程序员本身来说,如果它到达这一步以后,他就已经形成了开阔的思维。他有这种开放性思维的话,他就能做战略决策,这对他将来做任何事情都有好处。事实上,会做程序后,就会有一种分析问题的方法,学会怎么样把问题的表象剖开,看到它的本质。这时你碰到任何具体的问题,只要给点时间,都能轻而易举地解决。实际上,对开发计算机软件来说,没有什么做不了的软件,所有的软件都能做,只是看你有没有时间,有没有耐心,有没有资金做支撑。
这几年,尤其是这两三年,估计到2005年前,中国软件这个行业里面大的软件公司就能形成。现在就已经在形成,例如用友,它上市后,地位就更加稳固了。其他大的软件企业会在这几年内迅速长大。这时候,包括流通渠道、经销商的渠道也会迅速长大。也就是说,到2005年以后,中国软件这个行业的门槛比现在还要高很多,与美国不会有太大的差别。此时,中国软件才真正体现出它的威力来。如果你是这些威力中的一员,就已经很厉害了。
别人可能知道比尔•盖茨是个谈判的高手,是卖东西的高手,其实,比尔•盖茨从根本上来说是个程序高手,这是他根本中的根本。他对所有的技术都非常敏感,一眼就看到本质,而且他本身也能做程序,时常在看程序。现在他不做董事长,而做首席设计师,这时他就更加接近程序的本质。因为他本身就有很开阔的思维,又深入到技术的本身,所以他就知道技术的方向。这对于一个公司,对他这样的人来说,是非常重要的。
如果他判断错误一步,那公司以后再回头就很难了。计算机的竞争是非常激烈的,不能走错半步。很多公司以前看上去很火,后来就
销声匿迹了,就是因为它走错一步,然后就不行了。为什么它会走错?因为他不了解技术的本质在哪里,技术的发展方向在哪里。
比尔•盖茨因为父母是学法律的,所以他本身就很能“侃”,很有说服力,而他又是做技术的,就非常清楚技术的方向在哪里,所以他才能把方向把握得很准确,公司越来越大。而别的公司只火一阵子,他却火了还会再火。就算微软再庞大,你如果不把握好软件技术的最前沿,一样也会玩完。就像intel时刻把握着cpu的最新技术,才能保证自己是行业老大。技术决定它的将来。
所以,程序员要能达到这样的目标,就要有非常强的耐心和非常好的机遇才有可能。事实上,现在的机会挺好的,2005年以前机会都非常大,以后机会会比较小。但是,如果有耐心的话,你还是会有机会的,机会都是出在耐心里。我记得有句话说“雄心的一半是耐心”,我认为雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能实现。如果你有野心而没有耐心,那都是胡思乱想,别人一眼就能看穿。最后在竞争中,对手一眼就看到你的意图,那你还有什么可竞争的?
123 程序员是吃青春饭的吗
很多人都认为程序员是三十岁以前的职业,到了三十岁以后,就不应再做程序员了。现在的很多程序员也有这种想法,我觉得这种想法很不对。
在20世纪80年代末到90年代初,那时软件还没有形成行业,程序员不能以此作为谋生的手段时,你必须转行,因为你年轻的时候不用考虑吃饭的问题,天天“玩”都可以,但是以后就不可能了。
据我了解,微软里面的那些高手,几乎都是四五十岁的,而且都是做底层的。他们是上世纪70年代就开始“玩”程序的,所以对于整个计算机,他们是太清楚了。现在有些人主观臆断地希望微软第二天倒闭就好了,但那可能性太小了。因为那些程序员是从cpu是4004的时候开始,玩到现在奔腾iv,没有哪一代东西他们没有经历过。
你知道他们现在正在玩什么吗?现在正在玩64位的cpu。你说你普通的程序员,有这个耐心吗?没有这个耐心,你绝对做不了,你也绝对做不了高手。他为什么能做?因为他不仅是玩过来的,而且他还非常有耐心,每一步技术他都跟得上,所以对他来说,没有任何的难度和压力。
因为计算机技术没有任何时候是突变的。它的今年和去年相差不会很大,但是回过头来看三年以前的情况,和现在的距离就很大。所以说,如果你每年都跟着技术进步的话,你的压力就很小,因为你时刻都能掌握最新的技术。但是,如果你落下来,别说十年,就是三年,你就赶不上了。
如果你一旦赶不上,就会觉得非常吃力;如果你赶不上,你就会迷失方向;如果你迷失了方向,你就觉得计算机没有味道,越做越没劲。当你还只是有个思路的时候,别人的产品都做出来了,因为你的水平跟别人相差太远,人家早就想到的问题,你现在才开始认识。水平越高,他就看得越远,那么他的思维就越开阔;水平越低,想的问题就越窄。
64位cpu是这个十年和下个十年最重要的技术之一,谁抓住这个机会,谁就能抓住未来赚钱的商机。cpu是英特尔设计的,对这一点他肯定清楚。举例来说,如果从64位的角度来看现在的32位,就像从现在的角度去看dos。你说dos很复杂吗?当你在dos年代的时候,你会觉得dos很复杂。你说现在的windows不够复杂吗?windows太复杂了,但是你到了64位的时候再去看windows,就如同现在看dos一样。
整个64位系统的平台和思维方式、思路都比现在更开阔,打个比方说,现在的windows里面能开n个dos窗口,每个dos窗都能运行一个程序。到达64位的时候, *** 作系统事实上能做到开n个x86,开n个windows 98,然后再开n个windows 95都没有问题,系统能做到这一步,甚至你的系统内开n个windows nt都没有关系。这就是64位和32位的差别。所以,微软的那些“老头”,四、五十岁的那几个做核心的人,现在正在玩这些东西。你说微软的技术它能不先进吗?是linux那几个玩家能搞定的吗?
微软的技术非常雄厚,世界计算机的最新技术绝对集中在这几个人手里。而且这几个人的思维模式非常开阔,谁都没有意识到的东西他早就开始做了。现在64位的cpu都出来一二年了,你说有什么人去做这些应用吗?没有,有的就是那几个unix厂商做好后给自己用的。
所以,追求技术的最高境界的时候,实际上是没有年龄限制的。对我来说,现在都三十三了,我从来没有想过退出这行,我觉得我就能玩下去,一直玩到退休都没有问题。我要时刻保持技术的最前端,这样的话对我来说是不困难的,没有任何累的感觉。
很多人说做程序不是人干的事情,是非人的待遇。这样,他们一旦成立一个公司,做出一点成绩,在辉煌的时候马上就考虑退出。因为他们太苦了,每天晚上熬夜,每天晚上烧了两包烟还不够,屋子里面简直就缺氧了,好像还没有解决问题。
白天睡觉,晚上干活,那当然累死了,这是自己折腾自己。所以,做程序员一定要有一种正常的心态,就是说,你做程序的时候,不要把自己的生活搞得颠三倒四的。如果非得搞得晚上烧好多烟才行,这样你肯定折腾不到三十岁,三十岁以后身体就差了。
事实上,我基本上就没有因为做程序而熬夜的。我只经历过三次熬夜,一次是在学校的时候,1986年刚接触计算机时,一天晚上跟一个同桌在计算机室内玩游戏,研究了半天,搞着搞着就到了天亮,这是第一次。然后在毕业之前,在286上做一个程序。还有一次就是超级解霸上市前,那时公司已吹得很大了,那天晚上没法睡觉。
一般来说,我也是十二点钟睡觉,第二天七点就起了。所以说,只有具有正常的生活、正常的节奏,才有正常的心态来做程序员,这样,你的思路才是正常的,只有正常的东西才能长久。搞疲劳战或者是黑白颠倒,时间长久后就玩不转了,玩着玩着就不想玩了。
以上就是关于程序员是干什么的啊全部的内容,包括:程序员是干什么的啊、世界上第一个计算机程序是怎样开发出来的、干部选拔流程的目的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)