《编程匠艺》

来源:互联网 发布:程序员常用浏览器 编辑:程序博客网 时间:2024/06/10 13:05

大一的时候就看过《编程匠艺-编写卓越的代码》,那是我第一本完全看完的关于软件开发的书,当时只学过C语言,没有任何编程经验。看这本书完全是跟看小说一样,对里面讲的东西大部分都只记得名词,不知其意。但也是因为这本书,让我第一次认识了原来编程不是只写一个Hello World,编程是一门艺术。


对于这本书的优秀之处,只有看过的人自己心里最清楚,在这里我觉得如果我妄自评价这本书,可能会对他人产生负面的影响,毕竟每个读者思考的角度不尽相同。


昨天在图书馆重新借阅了这本书,让我影响最深的是里面的代码猴子这章,我马上就要毕业,这几年大学生涯也写过几行代码,实习的时候也参与过开发,对软件开发的理解更深。和大一的时候比起来,昨天翻这本书感觉完全不一样,以前我看这章真的是觉得很搞笑,程序员居然会有这么多种类,在当年看这一章的时候从来都没想过现在的我会变成了一个“半权威”,原来自己的变化这么大,当时倒是觉得自己以后很可能只会是个“代码猴子”。


有问题不可怕,可怕的是发现不了问题,这本再一次帮助了我。总结这些时间的工作,我总是想让自己表现的比实际情况要好,但其实真的是自欺欺人,有经验的人一眼就能看出你有几斤几两;在带我的人面前总是要把自己以前的理论方法吹一遍,像敏捷开发、测试驱动、重构,其实这些在实际工作中自己都没用上几个;每次和人讨论,我的话最多,但其实言多必失!在编程方面,我确实很傲慢,自以为会很多种语言,但其实这些语言都不精通,都是只知皮毛,一个应届生如果你觉得懂得很多,其实你不懂的更多,需要多跟人请教!


在某些方面我感觉自己是个“牛仔”,有时也会逃避自己不擅长的工作,去年做Java web开发的时候,我从不写jsp和javascript,不是因为我不懂这些语法,是因为我对界面的感觉非常差。我也喜欢研究新东西,新事物,但很少深入研究,真的是很少深入研究!


对自己很多的缺点,以前试着去改正,但是没有成功,真的是没有成功,为此甚至一度不做软件开发,去做技术支持。但是做技术支持又暴露了另外一个没有办法解决的问题:经常在外面跑太累了。所以前端时间我又开始做软件开发了,只是这次我写的是C语言。


刚转到做软件开发,我的以前的问题通通都暴露出来了,可能是自己的控制力太差了,一提到软件开发,那种激情、表现欲就不由自主的上来了。几乎是要将自己所知道全都告诉给对方,以此证明:我真的很牛。但其实我肚子里有多少货自己最清楚了,在编程方面我最大的弱点就是写具体的实现,我的优点就是设计、重构。让我设计一个程序可以,让我实现具体的函数、方法我真的很费力。所以在写程序的时候,我都是先把框架搭起来,把功能细分为N多个函数或方法,在这些方法里先用简单的代码实现,比如:return 0; 当非要实现这些功能的时候,我第一反应是到相应的官方文档找例子,如果刚好有,直接copy过来,像前两个星期写的一个断点续传需要用到TCP连接,直接到MSDN copy了一份代码,然后自己进行简单得封装,在Main.c文件中看起来尽可能简单。我当时要实现一个函数,这个函数的功能是提取一个文件的最后一行的数据,可是这个函数写了我将近两个小时,依然没有完成,因为在换行符方面Windows操作系统不是简单的“\n”,最后把方法改了,改成用空格开分割数据,不用换行。


在书中其实有个表格可以帮助每个人

我是一个:半权威 、牛仔

我的优点是:自信 、 喜欢研究新事物 、掌握软件开发理论 、学过很多编程语言 

我的缺点是:爱吹牛 、没有深入研究任何一种语言 、理论没有应用于实践

在保持优点的前提下,一定要控制自己,少说多做,用我们老师的话说就是:夹起尾巴做人!尾巴不要翘得天一样高

按下心,好好专心研究一门语言,目前来看C语言是重点。将敏捷先运用到自己的开发中来,再将其推广到其他成员。


后面两项没办法写,对团队目前并不了解。


最后,我建议任何一位想提高自己编程素养的人都应该看一下这本《编程匠艺》。