经历一次方知书中千百蕴意 ——读《人月神话》有感

“读万卷书,不如行万里路”,每一本书都凝结了作者或者前人的心血与智慧的结晶,当我们作为一名后辈去欣赏与学习的时候,我们是否能真正的体会到前辈在当时的那种心情与想法?我们是否可以真正的理解书中的每一个字与词语所构成的含义?我们从书中收获的东西是否是作者希望我们学到的(不是捡了芝麻丢了西瓜)?在看过每一句话后,也许会明白,也许会记住,但是绝对不会比亲身经历后得到与作者同感的时候记忆深刻,因为这个时候作者已经在心中成为了你的知己,你会在心中记住,这是一个深入灵魂的感触。这次的结对与这本书带来的是我心中的共鸣。

自己曾经有着一个与千百万的程序员一样的梦想,就是有一个现在站在云巅的巨人过去在小车库的经历,在小小的车库中做出来震惊世界乃至改变世界的东西,但是却没有我想的那么容易。书中问编程是什么?我不禁的在思考,我心中的编程是什么?从一开始接触编程的时候,就觉得这个东西好神奇,我是不是可以自己创造一些属于自己的东西,这就好像自己小的时候在沙堆上玩耍,用沙子或泥土捏出自己喜欢的东西,长大一点就喜欢组合各种东西产生一个特别奇怪的东西,这是一种在创造时的天性,面对编程的时候这种天性自然而然的被激发出来了,于是自己从心底里喜欢上在编程里创造事物,这也是一种创造时的纯粹快乐,作者说,这种快乐是上帝创造世界的折射,一种呈现在每片独特、崭新的树叶和雪花上的喜悦,这句话从一种美学的角度阐释了我心中的那份喜悦。

“需求”是每个人所需要的,同时“被需求”也是每个人所需要的,于是那份满足别人“需求”的满足感就在不知不觉的放大了,这是一种帮助别人的喜悦,正如在这次结对的作业中,我们帮助Core组设计UI界面,在这个过程中我们不断的满足他们的需求,同时我们也产生了一种满满的快乐感,在被别人说“谢谢”的时候就会感到自己的付出并没有白费,这就是在编程中能产生的魔力。

“组装”的魔力,当程序按照你所希望的在运行的时候,此时的迷人魅力与内心的激动可以说是无法用语言描述,就如同相互啮合的零部件毫无瑕疵,让人就在观赏的时候产生莫名的舒服的感觉,我真的体会到了这个感觉,那种感觉就好比自己是全世界最厉害的人一样,一种自信一种激动也是一种信仰,在对接的过程中,由于自己对于这个方面的不熟悉,只能如同幼童一般蹒跚学步,一步步的向自己的目标前进,但是道路上尽是荆棘与陷阱,只有不断的尝试,当最后屏幕上成功的显示了我所需要的东西时,并且运行正常,那个时候感觉自己拥有了全世界,所有的阴霾一扫而空,这就是一种让我无法割舍的魔力。

“学习”是一种痛并快乐的过程,但在程序的世界学习更多的是快乐,首先可以实践学习到的新的知识点,这就很是让我着迷,在学习QT的过程中按照书中所教,一步步完成自己的项目时,成就感就会油然而生,看着自己可以实现原本梦中所希望的东西时,自己真的很快乐,在学习不同的语言以及同的工具时就会发现学习带来的不仅仅在亲自试验的快感,还有的是实现原先的功能时可以使用更简单的步骤,这个就好比现在特别火的游戏《绝地求生》,每个人都希望有一个吉利服一把98k一个8倍镜,玩家就会不断的在地图中搜寻,这就是我们为什么要不断的学习,因为我们也想成为最后活下来的人去享受赢的喜悦感,在编程中知识就是我们身上的装备,装备越精良,胜算越大,实现我心中的梦想就越容易。

一个硬币有正面也有反面,因此编程也有令人头疼的烦恼。

“完美”是我们毕生追求却永远也得不到的东西,这个说起来就有点好笑,我们必须追求完美,不断向完美靠近,然而完美却永远不会出现,这是在学习编程的最困难的部分,在每一次的编程中都会有健壮性一说,我觉得这个就很贴切完美,我们要先设法让我们看起来运行很不错的程序崩溃,然后找到原因最后修改,在一次一次的无奈中提高健壮性,于是就尤为的让我们头疼,在这次的UI设计中,我们尽自己的可能满足用户的需求,但一次一次的增加与调试却发现自己还有很多没有做到,仿佛是一个无底洞,这同样也受限于自己的在这个方面知识储备的不足。

“API”让我充分的理解了为什么由他人来设定目标,供给资源,提供信息是一件苦恼的事情,阅读了15个组的API,让我对人生都有了怀疑,每个接口的不同让我重复的做了很多不必要的工作,但这个我也没有办法去解决,总不能让Core组重新再写一次接口并按照要求,这个肯定是不现实的,所以我只能默默地接受了这个无可奈何的事实。

对他人依赖在这次的结对中我也有颇为深刻的体会,由于自己的水平不足,只能麻烦结对小哥进行大部分的代码编写,但是在自己上手的时候却发现有些自己很难理解,也就是需要去不断的询问有关问题,造成了自己与小哥的时间上的浪费。还有就是自己在找BUG 上还行,到了解决BUG的时候就傻眼了,在找与解决中我无比的痛苦,花的时间比我编码的时间都长。

仅仅一次的经历,就让我明白了书中所说的酸甜苦辣,这本书现在不仅仅变成了自己的一个老师更是一个交心的知己。

原文地址:https://www.cnblogs.com/Whydd/p/8878869.html

时间: 2024-08-10 02:33:30

经历一次方知书中千百蕴意 ——读《人月神话》有感的相关文章

读《人月神话》一书有感

<人月神话>是一本不可多得的软件工程方面的经典著作.作者是被誉为IBM 360之父的Frederick P. Brooks,他在此项目中担任项目经理.他也因此获得美国国家技术奖和计算机领域的“诺贝尔奖”-图灵奖. 我觉得本书语言风趣幽默又不失严肃严谨.尤其是在The Mythical Man-Month和Calling the Shot两章,诙谐的语句间穿插图表和数据,发人深思. 书中给我印象最深的是Brooks提出这样一条定律.“所有的程序员都是乐观主义者,他们倾向于认为事情会如他们想象的那

Java千百问_04异常处理(008)_java中常见的错误有哪些

点击进入_更多_Java千百问 java中常见的错误有哪些 想了解异常看这里:什么是java中的异常 常见的运行时异常看这里:常见的Java异常有哪些(运行时) 常见的非运行时异常看这里:常见的java异常有哪些(非运行时) java中除了异常Exception之外,还有一大类错误,即ERROR,我们常见的ERROR如下: 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 原因: 对系统所访问外部资源,未执

Java千百问_06数据结构(016)_引用类型数组在内存中如何储存

点击进入_更多_Java千百问 1.存放基本类型数组在内存中如何储存 java的数组中可以存放引用类型. 存放引用类型的内存分布相比存放基本类型相对复杂.来看一段存储基本类型的程序: 了解什么是数组看这里:java中的数组是什么 了解数组在内存中的储存看这里:java数组如何存储在内存中 public class TestPrimitiveArray { public static void main(String[] args) { //1.定义数组 int[] numbers; //2.分配

Java千百问_01基本概念(017)_内存物理地址在CPU中如何形成

点击进入_更多_Java千百问 1.什么是内存的物理地址 我们通过8086CPU来说明内存地址是如何形成的. 首先我们要了解物理地址,当CPU需要访问一个内存单元时,需要给出内存单元的地址,而每一个内存单元在物理内存空间中都有一个唯一的地址,即可以通过这个地址定位到内存单元,而这个地址即为物理地址. CPU通过地址总线将一个内存单元的物理地址送入存储器,而后CPU便可以通过这个物理地址来访问这个物理地址所指向的内存单元了. 2.内存物理地址在CPU中如何形成 首先,我们知道8086CPU的地址总

Java千百问_06数据结构(023)_基本数据类型在内存中如何存放

点击进入_更多_Java千百问 1.基本数据类型在内存中如何存放 了解基本数据类型看这里:java有哪8种基本数据类型 对于java中的8种基本数据类型,可以通过如下方式赋值给变量赋值. int a = 3; float b = 4.0f; a = a + 2; 8中基本数据是将具体值直接存放在栈中,在发生变更时,将具体值替换为新的值.具体如下: 了解java如何管理内存看这里:jvm是如何管理内存的 了解java堆和栈的区别看这里:java堆和栈有什么区别 对于基本数据类型,并没有基本数据池的

Java千百问_06数据结构(022)_String在内存中如何存放

点击进入_更多_Java千百问 1.String在内存中如何存放 了解String是什么看这里:String是什么 String是一个特殊的包装类数据. 可以用两种的形式来创建: String str = new String( "abc" ); String str = "abc" ; 了解java如何管理内存看这里:jvm是如何管理内存的 了解java堆和栈的区别看这里:java堆和栈有什么区别 第一种是用new()来新建对象的,它会在存放于堆中,每调用一次就会

Java技术_Java千百问(0038)_java中重载和覆盖有什么关系

点击进入_更多_Java千百问 1.什么是重载 java的重载,简单说,就是方法有同样的名称,但是参数不相同.这样的同名不同参数的方法之间,互相称之为重载方法. 需要注意的是: 1. 方法名相同. 2. 参数不同,这里是说对应位置的参数类型至少有一个不同,当然List和List都是List,算作相同. 3. 返回值可以不同,可以相同. 例子: "` public class Test{ public void a() { System.out.println("a()");

Java技术_Java千百问(0046)_数值中为什么会出现下划线

点击进入_更多_Java千百问 1.数值中为什么会出现下划线 这是Jdk 7之后的一个特性. 从Jdk 7开始,可以在数值型字面值(包括整型字面值和浮点字面值)插入一个或者多个下划线.例如: int x = 123_456_789; 在编译的时候,下划线会自动去掉.但是下划线只能用于分隔数字,不能分隔字符与字符,也不能分隔字符与数字. 可以连续使用下划线,例如: float f = 1.22___33__44; 二进制或者十六进制的字面值也可以使用下划线. 记住一点,下划线只能用于数字与数字之间

Java千百问_06数据结构(014)_java数组如何存储在内存中

点击进入_更多_Java千百问 1.数组的内存空间是何时分配的 java中的数组是用来存储同一种数据类型的数据结构,一旦初始化完成,即所占的空间就已固定下来,初始化的过程就是分配对应内存空间的过程.即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变. 了解什么是数组看这里:java中的数组是什么 当仅定义一个数组变量(int[] numbers)时,该变量还未指向任何有效的内存,因此不能指定数组的长度,只有对数组进行初始化(为数组元素分配内存空间)后才可以使用. 数组初始化分为静