zoukankan      html  css  js  c++  java
  • 梦断代码阅读笔记01

      个人感受部分:

      01.从前陷入瓶颈的时候,总是一边不停想着“死定了,死定了”,却一边什么都不做。总觉得代码是一个无底洞,山穷水尽,柳暗花明。

      02.这样的想法和态度注定不会成功,陷入绝望是经常的事情,看你怎么走出来,代码不可怕,虽然会令人绝望,但也会让人欣喜。

      03.以后不要经常说“死定了”,写不出代码不会死,更没有定,努力的去从代码中获取快乐,而不是将它放在对立面。

      读后感:

      打开电子版的《梦断代码》,看到封面我就知道这书有些年头了,也可能是pdf版照片是黑白的问题,感觉有种宝藏洞里发现秘籍的感觉。我迫不及待的划着鼠标滑轮,看了看它的目录。首先我看到的是第0章,我甚至在怀疑是不是印刷上的错误,因为我还从来没有见过写着第0章的书,我满是疑问,接着看下去。说实话看到目录我就对这本书有着很大的兴趣,乐高王国还有管束奇客与狗这些有趣的目录真的不是从前那些软件工程书目给我的感觉。

      我迫不及待的打开了第0章——“软件时间”。开头作者穿越回了自己15岁的时候,在一台终端机上面玩着一款我没有听说过的游戏,但是据作者描述应该是一个角色扮演游戏,推演国家治理,历史进程。那时候还是用打孔的纸带存储,这对我来说简直难以想象,好像是上古时代一样。但相同的都是玩游戏的那种感觉,我记得我15岁时接触英雄联盟时的感觉,恨不得不睡觉也要玩个痛快,那是属于我们的共同的回忆。但不同的是那时候作者已经试着自己往游戏里加自己的代码,开创自己的新玩法,在我看来真的难能可贵,以后一定可以成为一个优秀的程序工作者。

      转眼就到了2000年,作者40岁。我仿佛看到一个西方金发碧眼的少年在一瞬间变成了胡子拉渣的大叔,感慨时间飞逝。作者当时正在做一个关于新闻的项目,是一个在线的新闻网站,他们面临着数据库数据不能显示到网页上的问题,这就导致了新闻内容不能更新,在新闻界这可就是大事故了。终于在所有程序员的艰苦努力下,几星期后,软件重大bug被解决,软件逐渐趋于平稳。在那个时代,“互联网时间”是一个很流行的短语,在做软件的过程中,时间似乎确实时快时慢。如果一切顺利,你会沉浸在心理学家称之为“流逝”的状态中,全然忘记了时间,如果事有不协,则会感觉度日如年,痛苦万分。无论哪种情况,时钟都被抛之脑后,你用的是软件时间。

      确实如作者所说,当你学习或者从事计算机编程时,你对它是又爱又恨。当编写自己的游戏或者软件的时候,你能体会到编写代码的巨大快乐,但同时也见证了软件世界很多悲惨的故事,很多惨痛的教训叫我们担心不已,体会到了“软件难做”。接着看就找到了前面问题的答案,第0章不是作者有意搞笑,而是我们程序员都是以0开始计数的。确实是这样,我们每天与数组打交道,数组下标从0开始,计算机也是从0开始计数。时代在进步,互联网行业急速发展,软件创作就像摩天大楼和大坝一样,是一个伟大而艰巨的工程。每一年都因软件错误导致损失几千亿美元,程序员们似乎没有找到趋于完美的进化方向,依然写着错误一大堆的软件,软件总是麻烦一堆,程序员更多的开始仇恨代码,恨不得把软件这座摩天大厦推塌。但是我们的需求总是远远的大于仇恨,现在这个时代已经离不开软件了,所以我们梦想着得到更好更新的东西。梦之所寄,行之所为——地狱之门就此打开。

      作者刻画了一个画面,一堆程序员坐在会议桌之前,听着经理的发言。其中有一个人手里捏着几百个任务,心里不停的想着死定了,死定了。这个场景似曾相识,我们在收到老师的软件工程任务的时候,总是在前面的阶段肆无忌惮的玩,到最后一周期限的时候,一边痛苦的写着代码,一边心里想着“死定了,这次一定死定了”。他们面临着特别棘手的问题,在某个窗体上有着闪烁的缺陷,但他们丝毫没有意识到这是一个相当棘手的问题,很多小时过去后,还有没有丝毫进展。最终他们在会议桌前达成共识,这是一个黑洞式缺陷——即无法确定修正时长的缺陷。就这样一个缺陷,最终导致了项目的彻底失败。

      黑洞,蛇,龙,是我们经常听到用在软件项目中的词汇。,这些隐喻给软件项目披上了一层神话英雄的外衣。当然每个领域都存在延误的问题,建筑承包商要是按期完工,就会招来怀疑的目光,然而软件时间自我扭曲又头尾相接,如同莫比乌斯环一样让人费解。进度忽而突飞猛进,忽而不知何故驻足道中,在你认为大功告成的时候却又山穷水尽,花上整半年时间,一无所得。既然软件时间能带来这么多的问题,那我们又该如何诊断和解决呢?

  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/Aduorisk/p/11033169.html
Copyright © 2011-2022 走看看