zoukankan      html  css  js  c++  java
  • 第一章 你要做什么?

    目录
    第一章 你要做什么?
    1.编程是什么
    2.学编程的代价和收益
    3.c++是什么
    4.我怎么布局这本书

    1.编程是什么

    计算机专业有几个方向,第一个是办公自动化,那就是学习office等办公软件,在政府和公司都有办公室,用这些可以管理档案,编辑文件。比如word,是写文字材料的,excel是做报表的,比如公司的业绩就可以用这个报表软件做成很直观表格。比如powerpoint做演讲稿的,公司开会或者学校教学都可以用到。

    第二个方向是做多媒体编辑和设计的,比如photoshop软件,照相铺进场用来修补照片,比如加亮,去掉斑点,裁剪尺寸等。广告公司也会用到这些软件来设计户外广告和产品的包装。当然,这个专业主要还是要经过美术训练,而不是单靠学习使用工具就可以找到工作。

    第三个方向就是计算机程序开发,俗称编程。编程是制作软件。比如QQ就是用来聊天的软件,还有网站也是软件的一种,什么新浪网,163等等。制作软件需要什么技能,首先是调查清楚用户的需求,了解业务,第二个是要把业务用电脑来自动化或半自动化执行。编程是一个制定电脑该如何工作的程序,是一个提高人们工作效率为目的策略规划。

    从外在形式在讲,编程就是书写一些指令性文字,然后交给电脑按步操作的过程。因此,编程和写作很类似,你老板通过文书让你做什么工作,而你通过文书告知电脑进行工作。

    2.学编程的代价和收益

    学编程往往被认为是很难的,为什么?因为学编程和学外语有点类似,都是学习自己不认识的语法,自己不认识的文字,这就是编程的专业性,普通人看不懂这些指令文书,只有经过专业训练的程序员才能知道写了什么内容。第二个,编程被认为是需要很强逻辑性的工作,编程需要组织一些低级指令来做高级任务,何为低级指令?比如操作一个人去复印,但是你只有以下指令:a、向左转;b、前进一步;c、打开复印机盖子;d、把原件放下去;e、盖好盖子;f、按复印键。

    假设你要操作的人离复印机有3米,中间有一些障碍物,你该如何编写指令文书,让这个人顺利复印呢?这就需要你用低级指令组织完成高级任务,而不是你一句:“去给我复印这个文件”便可。电脑编程也是一样的道理,你往往只能有很低级的指令,而需要通过你根据具体要求来组织他们。上面那些指令你会发现好像缺少了向右转的,向后退的指令,你会怀疑是否真的可以依赖这些指令来完成任务,但是事实上是可以的。比如向右转只需要三次向左转就是向右转了,向后退只需要两次向左转,然后向前一步,再两次向左转,调整面对方向就是了。电脑指令也是如此,他们是经过专家设计的,虽然很低级很基础,但是他们都是“完备”的,你可以理解为不需要担心因为指令不够而无法完成任务,而只需要明白,只要自己善于组织,一定能完成你所要的效果。

    因为学习编程有一定的难度,所以你学习的代价就是时间+少量的金钱(买电脑和买书),而你选择编程的机会成本是你没有时间做其他好玩的东西。大多数编程人员都不会感觉学习编程是一件很容易的事情,他往往需要你付出数年的努力,因此你必须要有心理准备,编程不是三分钟热度可以掌握的事情。因此我建议你要学会“爱”编程,对编程产生自主性。

    编程工作是有前途的,据调查,程序员比一般的社会工作人员要高工资。第二,学会编程等于你真正掌握了电脑这个工具普通人只能够依赖程序员制作出的软件来使用电脑,软件的功能都是其他人制定的,但是如果你本身会编程,那么你就可以设计自己的软件,设计自己需要的功能。

    3.c++是什么?

    编程就是组织低级指令,书写“指令文书”的过程。指令文书用专业语言来说就是“源代码”,相对于“目标代码”,源代码是给程序员阅读和书写的文本,目标代码是计算机阅读和执行的“文本”。中间有个转换过程,是由一个叫做“编译器”的软件负责。

    源代码是有格式和规范的,不能乱写一通,这个格式和规范称为“语法”。世界上不止一种语法,每一个语言就有一套语法,比如中文有中文的语法,英文有英文的语法,电脑世界也是类似,借用了现实世界的一些概念,把一套规则称为一种语言,并给他起一个名称。“c++”就是其中一套比较流行的编程语言。

    c++编程语言的语法特点主要有:一、位置很重要;二、顺序很重要;三、只有一种解释,也就是没有二义性。大家知道,中文是比较艺术化的,有些话不同的角度有不同的解释,意味深长,但是编程语言是控制性语言,是需要明确的告知电脑该做怎样的操作,所以是不会存在两个意思让电脑去猜测的:毕竟电脑没学过厚黑学。正是因为这种特点,所以初学者会很不习惯,很容易碰到语法错误,不是少写一个字符,就是少写一个标点符号,或者把位置给调换了,但是这种严格是有好处的,可以保证电脑按照你的意思去工作。

    4.我怎么布局这本书

    学习“c++”就是学习语法规则,本身是很简单的,只需要懂得替换占位符就可以。但是要能够用基础的东西完成任务,这种组织指令的能力就不是语法的范畴,而是经验和科学的范畴。类似于:我们可以很容易掌握中文,但是很难成为一个优秀的作家。在布局谋篇的过程中,我会考虑两点:一、告诉各位语法的规则;二、产生怎样的效果,有哪些应用范例。当然,怎么运用完全是开放性的,在于你的创造性思维,我只能给出我本人所能看得到的有限范围。

    第一部分,我会说明如何去定义一个容器,存放数据的容器。从某种角度来说,编程的目的就是进行数据的变换,比如数学里面的函数关系,代数关系,就是数的变换。

    第二部分,我将说明算法的概念。何谓算法,大家有没有学过辗转相除法?本来很复杂的计算,通过不断重复几个很基础的步骤,就求出最终的结果。算法,其实就是解答复杂问题所运用步骤的统称。计算机不懂复杂的问题的直接求解,但是它能通过不断进行繁重的简单步骤来完成任务,这个是计算机的强项。也就是计算机能计算复杂问题的理论基础。我们就是要掌握如何把复杂问题分解为简单步骤的方法。

    第三部分,理论要联系实际,学那么多语法,那么多局部的东西,是时候要介绍如何把它们组合起来,成为一个可以运行的程序了。开发程序不是光知道语法,光知道算法就可以,还要知道开发程序的整体工序是什么,知道怎么从零做到一个完整的没有错误的程序。这里面就有很多实际要注意问题,要掌握的技巧。很多编程教科书一开始就会介绍怎么开发一个完整的程序,我觉得没有必要,反正你也做不了什么,不如掌握了相关的理论知识,有一定基础后再来学习这些我认为是相对细节和繁琐的东西,同时也能够检验你以往学过的知识。掌握了这些东西不能让你变得聪明起来,但是可以让你编程的效率得到实质的提高。要想更加聪明,那个不是一本书所能做到的,只有不断实践,不断获取新知识,才能不断的进步。正所谓师傅领入门,修行靠个人,道理就是如此而已。

    第四部分,附录。很重要的东西,等你有基础后,我认为就不需要手把手的教你怎么去编程,你要能从附录提供的资料中,得到新的养分,全面的巩固自己的知识结构。

  • 相关阅读:
    (转)android res文件夹里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)
    ListView模拟微信好友功能
    最小生成树(普利姆算法、克鲁斯卡尔算法)
    Android Afinal框架学习(二) FinalActivity 一个IOC框架
    浅谈WebLogic和Tomcat
    变量定义和声明的差别(整理)
    浏览器内核分类
    设计模式 之 享元
    FPGA中浮点运算实现方法——定标
    兔子--Android中的五大布局
  • 原文地址:https://www.cnblogs.com/Nobel/p/2084214.html
Copyright © 2011-2022 走看看