关于写软件的一些思考,是吗?我不太确定

Posted freesfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于写软件的一些思考,是吗?我不太确定相关的知识,希望对你有一定的参考价值。

嘛。其实我从一开始学编程其实就是很有疑惑的。

为啥我写的C就只是能是在那个黑色的小框框里面运行,然后就是做一些算数运算。那个时候我就在想。哈,为什么?这就是编程吗,好像和我想象中的不是太一样啊。为啥我写的程序就是只能在这个黑色的框框里面运行,Windos是怎么写出来的,QQ又是怎么写出来的,那些网页上的游戏又是怎么写出来的。PC上的那么多的软件那么的绚丽的界面。为啥我学的C就只是能在一个黑色的框框里面运行,为什么他就只能干些加减乘除依次之类的鬼东西。

虽然我的承认,一开始计算机的出现就是因为数学的需要,就是为了做算数运算的。但是现在是什么样的一个,嗯,世界。所以,我们的学习应该是叫做返璞归真吗。这可真奇怪,明明现在的计算机已经不只是为了我们来解决算数运算(诸如此类)的问题了,实际上他对我们的影响很,超级大和广泛。他可以为我们解决各种各样子的问题。他应该为我们解决各种各样子的问题。怎么解决呢?通过计算机软件来解决。计算机软件通过各种编程语言来编写。

嘛,记得是在那本书上见到过这么一段话,说是编程语言是人和计算机沟通的桥梁,是让人和机器对话的。额….话说当时那对话到底是怎么样子来写的我忘记了。反正到现在我只是想起了他错误的地方。他错误在哪里呢,他错误在把人和计算机描述在有个平等的地位,就好像是什么。就好像是计算机本来就知道怎么做,你只要告诉他做什么就可以了。你可以和他沟通和他交流。事实上根本就不是这样的。计算机根本就不知道什么是什么,所有的一切对他来说都是一样的,都是一连串的0和1。他完全不知道什么有意义,什么没有意义。所有的这一切都是人类自己在心里面YY,就好像是说,一张钞票。那东西实际上就是一张纸嘛,是呀,没错呀,就是一张纸。那他是如何成为钱的,是因为所有人都承认了他的兑换价值他才成为了钱。当某一天所有的人都不承认他作为钱的兑换价值了,那他也就只是一张纸了。至多也就不过是一张印刷精美的纸罢了。卧槽,明明这里我是想说指令的。嘛,现在不上指令这个词也不晚。

我突然想起来了一个小故事,具体细节记的不太清楚了。

话说有一个外星人来到了地球,他要对地球上面所有的信息进行一个记录,什么地理呀,人文呀。然后他要把这些数据带回去,碰巧飞船上的存储设备坏了一部分(请忽略这能够跨星际旅行的飞船突然变成了渣渣科技),然后他必须要想出一个方法来将这些所有的数据完整无缺的带回去。可是自己的飞船又没有足够的存储容量了。所以一开始他是想把这些数据都转化为0101的数字编码来带回到母星。但是发现这样依然行不通,存储容量还是不够呀。于是他就想到了一个好方法,在飞船的中央刻下一个合适小点,然后这个小点距离飞船尾部距离的,不满一个单位量的小数部分就成为了所有信息的载体。

哇,这个故事说明了什么,我也不知道它说明了什么,我只是觉得他很有趣罢了。所以,就当我放了个屁。

我总是喜欢跑题。事实上是我想要说些什么我都要忘记了,好吧。我好像有了那么一点点的印象了。

记得是一个很liuB的人说过吧,是谁就别管了好吧,反正又不沾亲带故的,你说是吧。他不认识我我不认识他的,·.·突然有点莫名的羞愧。

那。这个人说 :

程序 = 算法 + 数据结构 。

另外呢,还有一个网友是这样子说的。他说:

实际上算法和数据结构并不是搭建一个应用程序所必须的,就像是搭积木一样。真正组成一个程序的是系统提供的各种API,而算法和数据结构是优化程序用的。

我觉得两个人说的都挺好,解释了他们各自对一个应用程序的看法吧。两个人都是很厉害的,我没法判断对错,不过就我个人而言的话。至少现在我认为在大多数时候后者是正确的。

对了,我前面好像是说到了写应用程序对吧。那说到这里就不得不说一下学校。对于学校嘛,教C实际上怎么说呢。反正我觉得那时候他就是教了一下子基本语法,什么for呀while呀if啥的,至于数组指针啥的都没交。怎么说呢,成天就是各种各样的算法题(有一点算法题的影子)。不过我更感觉像是在用计算机自己给自己创造难题,而不是解决难题。

然后其实我就不太喜欢上编程课了。因为每次看着电脑上运行的软件,我想着。这些东西可都不是运行在我那个又黑有丑的框框里面的,要能写出这样子的一个带图形界面的软件要有多厉害呀。然后就有些心灰意冷了,我想。学这些有什么用,如果不能创造出来一个有意义的程序的话。学编程有屁用。

呀,这里还要插播一嘴。以前呢,我也一直以为C语言是一门很不适合入门的语言,因为我自己就是这么感觉的,在加上知乎(B乎?)上的大多数人也是这么说的。但其实我现在我的看法有些不同了。因为C语言语法简单,没有很多语言设计上的坑,并且呢…并且啥我给忘了,那就算了吧。总的来说呢C就是编程语言江湖里面的郭靖郭大侠。看起来傻傻憨憨的,但其实身负绝世武功,B极了。( ̄▽ ̄)"好像又扯远了。总之呢,其实不我觉得不是C不适合入门,而是大多数老师都不**(我怕被打死)。很奇怪的,他们从来------------------哦,我想起并且啥来了,并且C可以让你明白一些程序设计的细节。------------在让我们回来。他们从来都不教我们怎么样子去构建一个程序,程序又是怎么样的一个东西,等等。

额,我突然又想起了。那个"C和C++学会了,其他的语言几个小时就可以上手了。"其实我一开始是很奇怪这句话的。当时我想,不同的语言是有很多不同的语法细节的,还有很多的坑(?)。怎么可能几个小时就上手了呢,难道几个小时你就了解到了一个语言的全部了吗。后来我想了想,或与是这样子的一个理由。C是面向过程的典范,C++是(据说没写过十几年的C++都不好意思说精通)面向对象?的典范。并且不少语言的底层(/实现)就是C/C++。实际上不同语言的语法共同之处是很多的,if,else,for好像每个语言都有。。。嘛实际其他的语言学起来也就是多了几个关键字的这样子,一些细节和特色可以慢慢了解。至于那些坑吗,其实一开始我并不以为意,反而我当时是认为这是一件很有趣的东西,了解他还是蛮B的。不过后来我在网上逐渐参悟到,也不知道对不对。

凡是对程序设计没有帮助的,不利于程序设计的,妨碍程序设计的语言特性。都可以说是一门语言的错误设计。

不过我发现程序猿还是蛮厉害,因为网上很多人都喷javascript的垃圾设计,但是他毕竟成为了世界上最流行的语言之一。并且也很少听过主写一门编程语言的人出来喷他从事的这门语言。同时在我学JavaScript的时候,我也从来都没有觉得(意识到),那些js的坑是JavaScript的错误设计。甚至我看不少人还是能利用错误设计来搞出不少B的玩儿来的。

….2600多个字了我都不知道TM在说啥,感觉我想说的都还没说。然后还放了一大堆没啥用的狗屁。

蛋,睡觉!

我发现我的所有表情符号都没有出来。嘛,算了。就这样子吧!!

以上是关于关于写软件的一些思考,是吗?我不太确定的主要内容,如果未能解决你的问题,请参考以下文章

关于在线教学软件一些发现和思考

原!关于java 单元测试的一些总结

黄东旭: 关于基础软件产品价值的思考

关于面向对象的一些思考

[转]关于项目管理软件开发的一些思考

关于特征工程的一些学习思考与错误的纠正