首页 > 编程知识 正文

软件工程师和程序员区别,软件工程和编程的区别

时间:2023-05-04 09:32:19 阅读:52936 作者:4366

什么是编程思想? 答案可能很复杂,但简单也可以。 一句话,就是用计算机解决人们实际问题的想法,即编程思想。

我们学习编程语言的最终目的是想用计算机解决我们的实际问题。 学习计算机该怎么做,也是很多初学者的难题。 特别是对不是计算机专家的人来说更是如此。 面对现实有这么多编程语言(例如c、c、JAVA、C# …)和各种各样的应用技术),例如windows编程、linux编程、数据库、网络编程确实头晕,不太清楚。 本文介绍了学习计算机的步骤和编程思想的发展。

一:懂计算机

大家也知道计算机的发展,所以在这里不怎么说话。 现状是我们现在使用的计算机CPU只能识别0和1。 (如果你能发明另一台机器,识别更多的符号,我支持你,衷心希望你能完成。)这一阶段的代表性书籍是《计算机的组成原理》。 这门课的精髓有两点。 第一,计算机由哪个部分组成,每个部分起什么作用,少了一个组件会产生什么结果。 起初,我不太经常读这本书,但读了之后,至少我知道了。 电脑有CPU、主板、内存就能点亮。 插入软驱后,可以运行DOS超级操作系统。 添加光驱、硬盘后,可以将WINDOWS系统放入硬盘中运行。 第二,CPU是如何工作的,CPU做了什么,CPU为什么只能识别0和1,CPU的寻址方法是什么? 我不太了解CPU本人,所以不敢随便卖。 但是,有一件事需要知道。 CPU基础计算只有and、or、no三种。 这三个逻辑门实现了目前所有的计算机程序计算。

2 )过程性编程思想

计算机只能识别0和1,但人不能只靠0,1写程序。 为了程序的易写性,出现了0,1的第一层抽象标签、汇编语言。 组件中的标记直接对应于硬件。 硬件制造商有明确的指令手册。 这些汇编标记可以通过硬件直接识别。 例如,制造CPU、CPU的制造商有(ax、bx、cx )、操作指令标记)、mov )等寄存器的显示。 在驱动程序的编程中经常使用这样的东西。 学习程序集的核心是,必须认识到程序集是过程式编程语言。 而且,现在的CPU只能运行手续型程序。 任何高级语言都必须转换为程序性编程语言,然后交给CPU执行。 组件主要有三个操作。 比较、跳跃(goto )、过程调用)。 值得仔细理解为什么那是过程性编程思想。 请编写几个算法程序(在程序中使用比较、跳转和过程调用),看看汇编器的特点。 我相信你能领悟到。 顺便说一下,如果你对操作系统感兴趣,你也可以看到什么是保护模式。

3 )结构性编程思想

随着人们解决的问题越来越复杂,汇编器当然束缚着计算机软件的发展。 因此,编程思想发生了革命性的变化,出现了结构性的编程方法。 在结构性编程思想的编程语言中,c语言最先出现。 c语言有几个可以表达结构化思想的地方:分支(if )、循环)、for )、结构)和结构。 只要使用这三个,就可以写结构化的程序,但不一定知道什么是结构化的编程方法。 结构化是什么? 为什么goto要破坏程序的结构化? 结构体有什么作用? 结构体有什么好处? 这些都是值得认真体验的地方。 别人的定义不一定全面。 还是自己理解比较靠谱。 结构化编程中最具代表性的书属于《数据结构》。 我不知道具体哪本书好。 好像几乎一样。 要是用c写就好了。 c语言的一些“数据结构”专门用于用结构性编程思想如何解决实际算法问题。 读几章,然后自己找问题,然后用程序来实现。 写很多程序,会很有帮助。 第一次看后,如果看得模糊的话,可以先放一放,过一会儿再看,心情可能会变得开朗起来。 注意,在所有情况下,结构化编程并不是立即确定的。 在某些情况下,结构化编程使程序更复杂。 (例如,在结构化编程中,函数最好只有一个入口和一个出口。 但是,一个出口有时会使程序看起来更繁杂)

四:面向对象的编程思想

现在谈谈面向对象编程吧。 这也是现在使用最多的编程思想。 什么是面向对象,它与结构性思想有何不同? 从程序语法上看,面向对象比结构性程序多两个特性:

1、结构体成员私有化。 在结构化程序中,结构体成员都是公有的。 但是在面向对象的情况下,结构被称为类,成员分为公共和私有两个部分。 由于这一点的不同,产生了接口的概念。 接口不是班级成员的公有部分吗? (回想起来很有趣,本人刚开始知道面向对象的时候,以为只有定义为接口的东西才被称为接口。)

2、班级继承。 由于出现继承,出现了多态性。 但是,由于多态性,出现了例如隐藏、虚函数等概念。 多态性的出现,可以使同一组的数据在不同的阶段、相同的表现、不同的操作。 如果你意识到这一点,你会感叹:“程序能这样写吗?” 由于以上两点的变化,编程思想也发生了很大的变化。 你可以根据人的思维方式写程序。 有很多面向对象的编程语言。 c、JAVA、C#这三个本人都用过。 用我的感觉在这里也说出口,不过是一代

表个人观点。都说C++和JAVA有很大的不同,而JAVA和C#却非常相似,你知道为什么吗?最根本区别就在于垃圾收集器。就是因为JAVA里面有垃圾自动收集功能,所以JAVA不能和C兼容,而且也不能使用指针。在C++中的值类型和引用类型是可以自己定义的。如果对象被定义为值类型,那么当编辑器自动把对象收集走之后,有时自己会一无所知。如果对象被定义为引用类型,那么又要必须记得把它释放掉,不然又会引起什么内存泄漏的问题。在JAVA和C#里面就不一样,在这两种语言里面,自定义的类,初始得到的对象只能是引用类型。并且有垃圾收集器帮你回收垃圾对象。所以就不会出现内存泄漏的问题。

因为C#比JAVA后出来吧,JAVA所具有的特性,C#基本上都有。并且还具有一些JAVA所不具有的特性(但C#目前不能在linux上面运行)。当然在这里不是说哪个语言好,哪个语言坏。其实他们都是来实现面向对象编程的工具。你也可以用C或者汇编写一门支持面向对象的语言出来(如果你想做,本人绝对支持,或者用汇编也行。为中国的软件事业贡献一份力量,免得总说什么什么语言都是他们外国人发明的。)只要它能够实现数据封装,成员私有化,和继承就行了。在面向对象的编程里面,代表性书籍就要属"设计模式"了。不过设计模式这个东西,不是你看书就能看懂的。并且你硬套那些模式,不一定对你有多大的好处。这个东西,只有设计做多了,才能有所领悟,自己得到总结。总结多了,就会发现和书上的那些东西不谋而合,或许可能比书上总结得更好 。     

    
好了,目前编程思想的发展就到这一步了。将来的编程思想的会是一个什么样子,我也不得而知。希望有志之士能够发明一种编程的思想出来,推动软件业的发展,让中国也来引领一下世界软件的发展潮流。如果你是初学者,可以按照上面的顺序来学习计算机。希望在每个环节中能掌握其重点。相信一年之后,你就会有所感悟。         大家都希望学的东西是可以用来赚钱的。而往往能够快速用来赚钱的都是一种应用技术像windows编程,linux编程,WEB开发等等。你掌握了其中的一门技能,就可以谋得一个职位,可能还可以拿到一个不错的薪水。然而如果你掌握了编程思想,那么那些应用技术将一通百通(因为应用技术往往都是对特定的一些函数的调用,通俗一点就是调用API,这些东西到专门的网站上查手册将一目了然,比如windows编程,http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/Windowing/WindowClasses/UsingWindow.asp 这就是一个入门的例子)。 掌握了编程思想你将不在局限于某个特定的编程技术,而是对整个软件系统有了全局的把握,研究的不再是编程技术,而是协议和规范。

大家在学习初期看书。最好不要看电子书,而是买书本看(电子书用来当词典查阅一下还是不错的)。因为电子书看一会眼就花,给人造成一种烦躁的情绪而不能成就的羽毛好好体会书里所说的内容。一本书,一支笔,加一个草稿本,是最佳的学习状态。如果你是在校学生,你可以到http://www.xiangyataclub.com里看看你本校内有没有你想要的二手书或者学习用的电脑设备,这样能使得资源可以重复利用。遇到不懂的地方到论坛里面讨论一下还是不错的,比如http://www.csdn.net里面一般性的问题能够找得到答案。学习计算机需要达到一种状态,就是在任何时候脑海里面都会在隐约的思考:对计算机里面某种原理的理解,或者寻找某种问题的算法。有时一个新想法的闪现会让自己兴奋不已。如果你表现出这种状况,说明你对计算机有着浓厚的兴趣。 

最后补充一点,就是中国的一句老话"尽信书,不如无书"。编程的学习还是需要有一点批判的精神和创造的精神才好。对于某些东西不要过早下定论,或许你某一个智慧的闪光,将为计算机开辟出一个新的发展方向。 

编程思想在我实践看来就是这样一个事情,很多代码你认真的都啊都啊,开始有很多不明白,他们为什么这么做,有的是不明白他们在干什么,有的是不明白他们为什么搞得这么别扭,慢慢的就了解编写过程中一些敲门。在读啊读啊,你就能明白怎么遵守他们之间的那种默契和协定(中国没有),在读啊读啊,你就开始自己想写些什么来表达你对他方法的不认同,然后会有很多国外的文静的西牛会告诉你你的错误(他们真的很好很谦虚,愿意和你探讨的!国内没有遇见过。我所知道的高人都玩潜水可能)。然后你就不感造次了,冷静的读啊读啊,直到有一天你突然觉得就是你自己对了,他们都错了,你就又发表文章了,这回国外的文静的西牛明显少了,只有1,2个人发来邮件详细谈谈,你可能对了可能错了,于是你不仅继续读啊读啊,也开始研究啊研究啊,这时候基本上你开始回人家的问题,等你一旦发表文章的时候就会引起sdhh几个知道你的人注意,你继续努力,注意你的人就会越来越多,这时候你就有了小小小小的名气,开始有人找你希望你能加盟或者帮助开发等等。

可能有人说,我没有谈到编程思想,但是我告诉你,没有编程思想,在这个过程中,你明白了游戏规则,你取得了他人的认可,你就有了编程思想,这是潜移默化产生的,说白了这个思想就是在这个圈子里文静的西牛之间尊从的一种合同,大家都这么做,规则就这么建立了,直到有人提出新的合同方式,大家再去讨论,你在去发展。有人可能问我搞什么,我告诉你搞linux方面的工作(但绝对不再中国那几个linux公司干)。有人问我用了多少时间,我告诉你学习用了将近3年,搞出一点点明堂用了1年多。

因为我不是很聪明,所以用了这么长时间,但是我相信3年时间是肯定要的,我每天至少6个小时埋头学习,4年时间,懂得了编程思想,真的很苦,很寂寞。所以如果你不是非常热爱这项事业,请慎重,如果你热爱,请努力。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。