面对一个浩如烟海的世界,每一个新奇事物的探寻都仿佛是充满惊讶与欢乐的寻宝冒险。初入编程的大门,自己仿佛置身于一个空白但可无限创造、深奥但触手可及、未知但充满惊奇的世界,正如自己过去玩过的一个游戏《我的世界》,初进游戏,自己是迷茫的,是无助的,是不知所措的,一次次在广阔无垠的世界中探索时,从木材、石头到煤、铁等材料的获得,甚至是找到了第一颗钻石,再利用各类材料在那个世界中搭建出一个属于自己的天地,这个过程就如同自己现在进行的软件开发一样,从入门C语言到接触各类编程语言以及利用各种途径进行软件开发,最终交出一份令人满意的答卷。
毫不夸张的说,我对于软件开发是一窍不通的,只是自己在大一时候学习了C语言和大二时学习了数据结构,但仅仅这两项内容就仿佛是打开那扇大门的钥匙以及在我的内心种下了一颗种子,看向这个充满无限可能的世界,种子逐渐成为充满向往与渴望的幼苗。在一张空白的纸上写一篇文章,或作一首诗,或画一幅画,都记录了一段满是愉悦的创作旅途,而在这个无比庞大的世界中,我问自己:我可以做些什么呢?
读了老师推荐的《程序员修炼之道》,自己也就明白这条路并非自己所想的那么容易,是需要自己不懈的努力与坚韧的内心,才有机会看见前路的风景。首先自己要做好一名优秀的程序员,也就是书中所讲注重实效的程序员,其特征让我明白自己任重而道远,尤其是其中的改编者与思考者最为困难,自身缺点所致无法有效的快速做出决策,仅这一点就在软件开发中极为致命,希望在接下来的学习中逐步弥补与改正自己的不足。对于思考者,自己很是羞愧,再此要有一个深刻的检讨,每次将代码编完并自认为调试好后,便抛在脑后不管不顾,没有过对自己的批判与对代码的重新思考,这是一个很愚蠢的做法,导致自己错过一次次可以提升自己的机会。在过去的半年里,感觉自己的编程技术在原地踏步,甚至是有退步的趋势,所以书中所说的程序员不仅要提炼自我拥有的技能,也要将新的工具增加到技能表中,很是深得我心,这也教会了我接下来该怎么去做。对于无知与错误,自己更加要诚实与坦率,这些都是路上的绊脚石,有时间寻找借口还不如静下心来提供解决方案。近两次的项目会议里,我可以说是“吃了文化的亏”,每当组长与其他伙伴口中跳出一个个专业名词时,都感觉自己仿佛是在听天书一般,全程尴尬,自然是万分的痛苦,也坚定了我大量学习有关知识的决心,每年至少学会一种语言,每个季度至少读一本书,现在的学习与经验的积累都是在积累财富,这是一种隐形的资产,要学会对自己进行长期的投资,不可一味的自满,也不能无谓的内疚,这需要的是我勇敢地抬起头,在这漫长的路上走下去……
原以为代码只是一个个字符在一定条件下结合起来,从而产生了奇妙的化学反应,但从书中明白其中需要的不仅仅是催化剂,还要有大量的容器也就是规则才能构建出令人满意的软件,毕竟“无规矩,不成方圆”。令人印象深刻的一条性质便是正交性,意思是如同两条垂直的直线,两个或更多的事物中的一个发生改变不会影响其他事物,这是在作软件开发时最令人向往的一种性质,想象程序的一个组件发现了bug,但在修改甚至是重写中不会影响到其他组件,是一件多么美好的事情。事实上,书中所讲完美的正交性很难出现,但是我们依旧要向其靠拢。至于书中介绍的曳光代码与原型制作以及领域语言与估算,作为一个小白,对此没有什么概念,费尽脑筋也无法理解,只能从表面来了解其功能与优缺点,这不得不说是一种遗憾。
比较实用的方面,是我在看介绍工具箱时了解到的,比如一名注重实效的程序员用纯文本保存知识,不仅可以更加容易阅读与理解,而且没有过时的风险,还有学会利用shell命令,可能会很晦涩,或是太简略,但是却很强大、很简炼,可以实现GUI不支持的操作。回想以前,伴我入门的第一个编译器是Dev C++,这个编译器陪伴我经过了大一的C语言与大二的数据结构,其功能可能不是最强大的,但是毕竟也产生了感情,如今面临一个新的挑战便是学会Visual Studio,正如前面所说技多不压身,尽管选择一个特别有用、特别合适并且比较高级的编译器是一名好的程序员的必备,但是我认为编译器之间应该有共通之处,可以同时进行,这样可以让自己在任何情况下做出最好的判断。有关调试的问题,由于时间过于仓促,只是大致了解了心理上应该如何处理,不要恐慌,不要指责,不要假定,要冷静,要修正,要证明。
请原谅我没能把这本对于我至关重要的的书在规定时候读完并能够理解,但之后的时间里我会静静品味书中滋味,一本书便是一个世界,也是一场旅行,更是一种人生。