zoukankan
html css js c++ java
程序为本,代码方式仅是语言 ———《大道至简软件工程实践者的思想》
程序为本,代码方式仅是语言
——《大道至简--软件工程实践者的思想》读后感
历时15天终于读完了这本很薄的书,也不知道是因为我的阅读速度太慢还是阅读方法比较笨拙,这本书看了很久。当然就像书中写的那样,这本书没有教会读者任何敲代码时候的技巧,但是对于我这种刚刚入门的程序员来说,这本书教会的思想产生的影响更大。就像是刚刚学会走路的小孩,教他什么样子他就学什么样子,这思想也一样将会扎在心底潜移默化的影响我一生。
这本书的开篇第一章讲的便是一个路人皆知的故事“愚公移山”,没有看这本书之前我是无论如何也不会将愚公和编程联系到一起的。看完之后确实觉得有几分道理,编程无非就是一个工程实现的方法,按部就班的解决问题。在脑海中思考出来解决问题的方法,用代码来将自己的语言表达出来的这个过程就是编程。这样看来确实简单,我想作者也是想传递给我们这样一个思想,编程是一个简单的事情,也许并不轻松。其实第一章“编程的精义”我反复读了好几遍,刚开始只是出于对标题的理解,我功利的想从这一章的内容中获取一些编程代码的实质性的一些技巧和方法,但是事实证明里面确实没有包含任何我想找到的东西。不过文章多看几遍总是能看到一些新的东西,我确实按照作者的思路去思考了下这个问题,愚公的工作好像跟编程别无两样,但是那是一个没有工程的时代,自然而然的像愚公这样“勤快的人”是没有精力来开发新方法的,随即引出下一章的内容“是懒人造就了方法”。看到这里的时候不禁想起来初中老师曾夸奖过我总是喜欢想办法,是我真的比别人聪明嘛?是我比别人懒比别人闲罢了。回到正题,李冰也是这样,正因为有个这样闲的领导,他才有精力跳到外面来纵观全局,总结经验,开发一个效率更高的方法。
结合我自己之前的经历来讲,我就经常犯书中讲的一个错误“走过场”。实现不是目的,目的是解决问题,如果我写的代码不是针对问题,那么这段代码的意义何在?无非就是想当然罢了。之前在敲代码的时候总是犯这样的错误,看完题目之后脑子里想出了问题的解决方法就立刻投入到代码的书写当中去,写着写着就忘了自己写的是什么了或者是写完了运行出来和问题驴唇不对马嘴。这样实在是不对的,应该在确定方法之后像写文章一样(确实敲代码就像写文章)写下一个提纲或者是先把代码的结构写出来,然后再往里面填内容。
相比较前面两章由浅入深通过小故事来引申入编程的道理,后面更多讲的是软件工程和团队协作的事情。那些专业术语和名词确实我看的一头雾水,即使百度之后也是这样,倒是那个牛屎图让我不禁笑出了声。后面还有一个软件工程层状模型,相比较牛屎图而言我感觉后者更加的简单易懂。前面的程序是编程的根本,C语言JAVA等等是编程的方法(就像国语和英语一样只是语言)这一层的实现交给开发人员来完成,紧接着就是团队的维护和对产品的迭代这个是需要队长来组织,经营则需要项目经理来管理,这便是一个理想化的工程。(当然这只是我个人的理解,可能有些偏颇)不过说实话现在这些对我来说意义并不大,我现在只需要做好眼前事,加强之后作为一个程序员的基本功就好了。
看到后语的时候莫名的有那么一点点感动,道是规律,是自然,什么都有道。当我通过实践真正悟出编程里面的道我想我也会成为一个高手。这本书是高手的总结,就像是老僧必须先经过看山是山看水是水然后看山不是山看水不是水再回到看山是山看水是水的这一过程之后才能真正悟道一样,我现在还只是第一阶段,虽然结果相同但是心境还是不一样,想要达到真正的把代码只是当成一种语言(像平常交流一样得心应手)还需要后期的不断努力。
看到书的最后感觉更像是在与作者面对面交谈,他就像一个老朋友一样与我分享经验,分享他成长路上的坎坷和经验,看到的是一个大师的坦然心境,我仍然需要不断的努力去追赶,去超越!
查看全文
相关阅读:
pip install MySQL-python 失败
E: Unable to correct problems, you have held broken packages
git 提交顺序
git 分支
ubuntu 安装git
ubuntu 有些软件中不能输入中文
ubuntu 完全卸载mysql
Linux中常用操作命令
基于注解的Spring AOP的配置和使用
log4j配置详解
原文地址:https://www.cnblogs.com/suanai/p/11273930.html
最新文章
mysql 导入出csv
ubuntu fiddler firefox http网页不能访问 Secure Connection Failed
mysql 导入出csv
mysqldump 导出
python 学习
rsync 远程拷贝
备忘
jenkins
键盘紊乱调整方法
IBM rational rose画时序图软件破解安装
热门文章
git放弃修改,强制覆盖本地代码
logging 实例
django celery redis 定时任务
docker
build/temp.linux-x86_64-2.7/_openssl.c:493:30: fatal error: openssl/opensslv.h: No such file or directory
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptool
pip 升级
timestamp 与 nonce 防止重放攻击
Django数据库操作中You are trying to add a non-nullable field 'name' to contact without a default错误处理
django mysql数据库使用自己的User
Copyright © 2011-2022 走看看