Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

Kaiyun·开云(中国)·体育·平台·官网·APP下载·入口·全站·买球 - 软件工程师入门教程(连载)开云 开云体育平台
Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

咨询热线

410-143-5697

Classification

新闻动态

410-143-5697
传真:18973896382
手机:18973896382
邮箱:support@jiaonichi.com
地址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
当前位置: 首页 > 新闻动态 > 公司动态

软件工程师入门教程(连载)开云 开云体育平台

发布时间:2023-09-15 15:38:28 丨 浏览次数:801

  开云 开云体育开云 开云体育作为一个程序员和培训师在过去的一些年里写了很多程序上了很多课。一直以来我都想写一本能够帮助那些想要学习软件开发的人轻松地进入学习的教程现在终于可以动笔了。我无法为这本“教程”想出一个很好的名称就暂且叫它《软件工程师入门教程》吧。

  这本教程主要是从初学者的角度介绍软件开发是怎么回事以及怎么学习它。相信我做软件开发其实是个很简单的事情程序员也只是个很普通的工作而已。

  这不是一本关于某种特定的编程语言的教程比如Java或C#这也不是一本能够让人能成为顶尖高手的书因为本人都不认为自己是个高手如果我写的内容大家觉得有错误、或者有待商榷的内容欢迎写邮件给我#xff0c; 或者在这里回帖。

  所谓写程序就是编写一系列计算机可以执行的命令让它做你想让它做的事情。这些命令一般和英语很类似也有人想用中文来写这些指令比如“易语言”但是以我的看法还是英语比较爽试想有下面的程序用中文写是这样的

  编写这些“程序”可以使用不同的语言其实就是不同的标准和规范而已这个问题暂时我们不展开讨论我也不愿意讨论Java和C#谁更有前途这样的问题尽管这个问题会被很多初学者问到。这个就如同我问你包子和米饭谁更好吃一样不同的情况下有不同的答案。

  是的我们需要学习使用一种类似英文的语言来控制计算机这不是一件很难的事情。

  而我们的客户通常我们把它们叫做“最终客户”他们并不愿意学习怎么来写程序所以他们出钱我们来帮他们写程序我们可以把自己叫做“软件工程师”这样听上去更体面。

  我想我们首先要明白的是——软件工程师是为客户服务的。一个好的软件工程师他不仅仅要能够写程序还能够使客户满意只有这样客户才会给我们开支票。

  因为只有客户才知道他自己需要什么样的软件至少听上去应该是这样的所以我们首先要能够和客户进行有效的沟通了解客户需要的是什么。

  看起来这是一件很容易的事但实行起来却是最麻烦的事很多耗资不菲的项目最后失败就失败在这里原因很简单——软件工程师做出来的东西并不是客户想要的。

  软件开发过程中首先要做的就是了解客户的需求但我们和客户之间有一道“沟”简单来说客户不是学计算机的我们也不懂客户的专业所以与客户的沟通总是存在障碍的。开云APP 开云官网入口客户心里会想“这么简单的东西还需要我跟你讲吗”而软件开发人员会嘀咕“这人什么智商怎么说话总也说不清楚”。

  很多时候客户以为他说清楚了软件开发人员也真的以为自己听明白了这种情形下下做出的软件系统就南辕北辙了再加上有些千刀的销售人员给客户承诺了一个根本不可能实现的工期在多方的压力下我们不得不很快进入设计和开发阶段而忽视了最重要的需求调研这样我们就可以成功地做出一个客户不想要的软件系统。

  很遗憾我们是为客户服务的如果我们做不出来客户想要的东西还是那句话——拿不到支票这是很悲催的。

  还有一个原因其实很多时候客户自己也不明白自己想要什么这也很荒谬但事实也是如此。在软件开发领域有一个词叫做“需求变更”所有人除了客户自己都很痛恨它却又无法避免所以经常出现开发方认为系统已经可以验收了而客户却觉得差的很远的悲惨局面。

  所以理解客户的需求帮助客户找出对软件系统的需求并确认它就是软件开发过程中最重要的一步。这个比写程序要难得多。

  可以松一口气的是如果你是一个刚入门的程序员公司通常不会把这个任务交给你产品经理或者项目经理或者其他水平比你高的程序员会去做这个工作。但凡事都有例外如果你所在的公司只有三五个人那这项工作也有可能让你来做不要轻视它。

  关于做需求调研的一些经验和方法比如如何防止客户耍赖在后面有专门的章节来阐述我在这里首先提到只是我在这上面吃过不少苦头以至于我无法忽视它。

  介绍 作为一个程序员和培训师,在过去的一些年里写了很多程序,上了很多课。一直以来我都想写一本能够帮助那些想要学习软件开发的人轻松地进入学习的教程,现在终于可以动笔了。我无法为这本“教程”想出一个很好的名称,就暂且叫它《软件工程师入门教程》吧。 这本教程主要是从初学者的角度介绍软件开发是怎么回事,以及怎么学习它。相信我,做软件开发其实是个很简单的事情,程序员也只是个很普通的工作而已。开云APP 开云官网入口 这不是一本关于某种特定的编程语言的教程,比如Java或C#;这也不是一本能够让人能成为顶尖高手的书,开云APP 开云官网入口因为本人都不认

  按照惯例接下来我似乎应该讲讲怎么安装Visual C# Express 2010, 然后讲这个工具如何使用如何写一个”Hello world”或者“Good bye world”的程序再一句句来分析它然后讲变量判断循环……打住我线c;尽管以前在学校我是按照这样的顺序来的但是相信我我是被逼的。

  我希望能够按照一个实际的软件项目的顺序一步步地记录作为项目经理和程序员是如何接手一个项目如何把这个项目分解成一个个的小任务再逐个完成它们直到客户满意。

  这个项目是销售人员和客户接洽的等项目部的人介入的时候合作意向已经基本确定了作为项目经理需要和客户沟通弄清楚客户需要做什么其实往往弄不清楚然后给他们一个“方案”。所谓方案就是一个Word文件有时候也用Excel,我见过最短的方案只有一页A4纸最长的有几百页。

  无论是什么样的“方案”它的主体内容主要包括下面几个部分

  通常是吹嘘一下自己公司多么厉害如果这公司干过几票听上去很牛的项目那一定要写上去。

  通常是从乙方的角度复述一下项目开发的内容好让甲方知道我们知道他们要做什么。这一部分可以很简短也可以很冗长但是如同我一再提出的这一部分很重要。

  其实这一部分我们也把他叫做“项目范围”就是说清楚在这个项目中哪些是要做的同时也含蓄地说明了哪些是不做的。这样在最后客户迷糊要求我们多做一些工作的时候可以告诉他一开始我们就划定了“项目的范围“白纸黑字的客户也不好意思否认。

  通常是描述我们打算用什么样的手段来实现他们的项目网络结构是什么样的要几台服务器软件系统是如何设计的有哪些子系统和功能模块准备使用什么开发工具和平台比如使用微软的#xff0c;还是Java, 并且言之凿凿地告诉甲方我们之所以这样做是非常有道理的比如它符合世界发展的潮流是最适合甲方这个项目的技术云云。其实最有可能的原因是乙方目前的技术团队最熟悉这个技术。

  这一部分还有一些内容等将来我们真正写这个方案的时候再来看具体的例子。

  作为乙方你还需要向甲方提供一个具体的工作计划这个计划包括

  尽管很多项目最后都没有按照这个计划来执行但这计划还是要有的这会让你自己能够知道当前的工作进度是快了还是慢了当然大多数的情况下我们只会慢不会快同时也让甲方知道你是做事情靠谱的人。

  这是最关键的一部分。你需要告诉甲方需要花多少钱为什么要花。哪些是给你的哪些是用在其他的采购上面这通常是一个Excel的表格。

  我们说编程语言是一组规范学习编程的人需要学习某个具体的规范比如C#, 比如Java.

  但是只有规范是不够的你学习了C#这个语言的规范可以在记事本里写出一个程序如

  但是这个程序是无法运行的。计算机并不能够直接理解这段代码目前所有的计算机的CPU只能执行由1和0组成的指令这种语言叫做机器语言而我们使用的C#和Java是用类似英语的词句编写的叫做高级语言。

  于是在“高级语言”和“机器语言”之间需要一个转换器就像一个中国人和一个西班牙人交谈如果他们不懂对方的语言就需要一个翻译来转达他们的意思这个翻译叫做编译器。

  所以如果你想你编写的C#程序能够运行那你还需要一个编译器来编译它。当然他们是免费的。

  我们还要面临一个问题就是我们不想做一些重复的、枯燥的工作。而这些枯燥的工作可能是很多人都在做的。我这么说好像有点绕。举个例子以前我们在写Turbo C程序的时候如果想要取得鼠标所在的位置就需要自己写一段代码这听起来很麻烦而当时确实有很多程序员都在做这件事。在软件开发领域里我们称这种行为为“重复地发明轮子”。

  为了提高软件开发的效率有很多聪明人和大公司都把一些大多数程序员都需要做的工作比如在屏幕上写一行子、画一条线c;或者控制打印机操作、或者发送一条短信都写成一个个子程序这样一来其他的大多数程序员就轻松了他们只需要在自己的程序里调用这个子程序就可以快速实现自己想要的功能了。

  有了这个一个C程序员如果想在屏幕上写一行字只需要使用:

  如果不使用这个子程序呢就要麻烦的多这种事情过需要算出要输出的屏幕位置对应的显存地址然后把hello,world送过去这个太麻烦了我们忘了它吧。

  库是一个好东西我们需要用它来提高我们的效率。库不一定是免费的有些公司就专门做这些“库”来卖给别的软件公司和开发人员帮助别人节约时间也是可以收钱的。

  对于C#来说它也有强大的库来方便开发人员不然谁用它呢微软把它叫做“Framework 类库”。至于为什么称作“类库”我们将来再来纠结。

  有了编程语言这个规范有了编译器来帮我们编译程序再借助于强大的库我们基本上就可以写程序了。你可以用记事本来编写你的程序然后调用C#的编译器来编译它它就真的可以运行了线c;没错。

  但事实上大多数开发人员是不愿意用记事本来写程序的因为我们要的更多。我们希望可以在一个友好的程序里编写我们的程序而不是单调的、CtrlZ只有一次有效的记事本我们希望这个程序甚至能帮助我们发现程序中的错误或者给我一些提示而且可以方便的编译它…..等等这个时候我们需要另一个东西就是“开发工具”。

  每种语言都有流行的开发工具比如你可以使用一个叫做Eclipse的软件来开发Java程序Websphere也是用来开发Java程序的开发工具。

  这些软件都不是免费的当然如果你非要用一个下载的破解版本我也无线c;而且一般不会有人来追究你。

  当然微软是很欢迎我们学习他的变成语言的所以他提供了一个精简版本一个叫做Visual C# Express的开发工具我们完全可以使用它来学习C#的开发而且在我的工作中我也主要使用它。

  这是一个麻烦的话题。我必须讲一下C#是什么以及它和它的冤家Java之间的关系。

  我们不需要一一学习这些前辈使用的语言计算机语言其实就是一组规范它描述了使用这种语言编写程序的规则。学习一种编程语言首先要学习它的规则就像我们学汉语、学英语一样。

  上面讲的这些语言所编写的程序他们都有一个共同的缺点——“可移植性”不是那么好。所谓可移植性打个比方一棵植物从一个地方移栽到另一个地方如果能立刻成活枝繁叶茂那么我们就说这个植物的可移植性好我想仙人球的移植性一定不错。

  那么一个程序的可移植性就是指这个程序从一个类型的计算机不加改动的复制到另一种类型的计算机上如果能够直接运行起来我们就说这个程序的移植性好。在软件开发过程中如果程序的移植性好就可以大大降低软件开发和部署的成本。

  因为Basic, C和C等等这些语言的移植性不是很好所以在1994年出现了Java它的标准是由Sun公司制定的。这种语言的卖点就在于强大的可移植性号称“一处编译处处运行”而实际的情况可能是“一处编译、处处调试”。但总体而言Java还是实现了强大的可移植性也可以叫做“跨平台”。举个例子一个Java游戏在你的Nokia手机和我的Moto手机上都可以玩而不一定需要软件公司为两款手机开发两套不同的程序。

  所以我们说Java和C#其实很有渊源它的代码风格非常类似类似到如果只给出一个程序片段你都无法分辨它到底是Java还是C#写成的。

  如果你看一个人不爽以至于想扁他一顿那你首先要选择扁他的方式和工具。至于用拳头还是大棒取决于你的身体素质和你的心情也影响了最终的效果。

  如果你想要编程序那你首先要选择编程的语言和工具。这个比扁人要麻烦一点因为一旦做出选择那么你在接下来的几年里将主要使用它作为你学习和谋生的工具。

  因为我们这个教程是写给即将进入这个行业的人看的所以我个人希望我们选择的语言符合下面的要求

  如果你是一个技术爱好者需要研究一下DOS下的QBasic如何实现一个常驻内存程序TSR我很有兴趣和你探讨但是很显然这个我学习的第一个语言不能使你或者我在人力资源市场上找到工作所以我们选择的语言应该是现在比较主流的编程语言。

  如果你是到了快要毕业才想着学软件开发的你显然不想再用四年来学习它我们希望这个语言尽可能简单一点使用的工具尽可能好上手一些。

  关于这个线c;我打算打住了因为你在google上搜索“哪个编程语言更好”你会找到约 5,100,000 条结果。

  而事实上我即使再列出更多的选择语言的原则最终我也会在这本教程里选择C#因为这是我吃饭的家伙我最熟悉它学习C#不麻烦而且用它也找得到工作。

  需要指出的是在入行的初期你可能只需要使用一种编程语言你通过这种语言积累了项目经验理解了程序设计的思想。那么在今后的工作中你可以轻松地过度到另一个编程语言。事实上我学习Java更早一些因为在一个项目里客户需要使用C#, 所以我找了本书看了前面的几个章节就开始能写C#的程序然后开始慢慢积累经验了。

  3-第五章符号计算.doc word 文档  教程内容比较多 都制作了目录 方便查询和阅读完毕 这是我收藏的 MATLAB 入门经典教程 希望对大家学习 有所帮助 也希望大家在论坛里多多交流 共同分享教程和资料  达到  一起学习  共同进步的效果完毕 这是我收藏的 MATLAB 入门经典教程 希望对大家学习 有所帮助 也希望大家在论坛里多多交流 共同分享教程和资料  达到  一起学习  共同进步的效果





Copyright © 2012-2023 Kaiyun 开云体育 - 运动让生活更美好 版权所有
电 话:410-143-5697    手 机:18973896382   传 真:18973896382    E-mail:support@jiaonichi.com
地 址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
湘ICP备20011479号

扫一扫关注微信公众帐号

免费咨询 投诉建议