前言 PROFACE
我从来没有想过自己会写一本关于程序员的书,正如你后面将会读到的,这本书中的大部分文章都来自于我平时的杂记(我以“技匠”为笔名在自己的博客和一些专栏中写文章)。虽然也包含一些实用的技术类文章,但大部分是我作为一名程序员,或跳出自己的职业去看待程序员这个群体时,所记录下的心得、感悟。
在我们所处的这个互联网时代,软件技术正快速地渗透到每一个行业和几乎所有的专业领域,并加速推动着社会的变革与发展。而这一切的背后正是千千万万像你我这样的普通程序员不断努力的成果。然而,我们是否已经做好准备去应对那些挑战,或者说我们是否清楚应该成为一个怎样的自己呢?这些问题曾不断困扰着我,但也正是通过对这些问题的深入思考及不断解答,才使自身获得了进步和提升。回想这十几年来的成长经历,给我最大帮助的莫过于自己对职业生涯、对个人发展、对编程本身,以及对美的本质的追求。
还是来谈谈这本书吧。由于都是闲时所记,本不成什么体系,但由于出版的需要,最终将全书归纳为五个章节,但我却从心底里建议读者朋友们按照自己的喜好与兴趣挑选阅读,因为它们之间并无关联,也不存在学习某一技术时所必须遵循的顺序,况且相似题材的文章堆在一起阅读反而不那么易于消化。
第一章 谈职业生涯:从程序员职业生涯的角度,阐述了我的一些观点和意见。其中,大部分内容是我的亲身经历,还有一些则是从他人身上获得的经验教训。经过多年积累,深深觉得,如果能让更多年轻程序员或是那些即将走上这条道路的在校大学生早些了解这些经验教训,或许能让他们在将来少走些弯路吧。
第二章 谈编程中的实践与认知:讲的则是自己多年的编程实践,以及从中获得的感悟。既有《全栈工程师如何快速构建一个Web应用》《一名全栈设计师的Mac工具箱(设计、开发、效率)》这样的实践类文章,又包含了《突破程序员思维》《我似乎理解了编程的意义》这样看上去很“湿”,却是我真正希望能够启发年轻程序员们去思考编程本身,以及体会编程意义的文章。
第三章 谈程序员的个人发展:以程序员如何变得优秀为话题,从当下有关程序员的各个热点(包括创业、自由职业、建立个人品牌等)入手,为你分析那些优秀程序员身上的共同特质,未来的发展方向,以及值得每一名程序员去做的有益尝试。
第四章 谈编程中的教与学:鼓励大家在通过大量技术干货获取技能的同时,也关注那些优秀湿货对于自己成长的重要性。同时,我也对编程教学提出了一些自己的意见和观点。
第五章 谈自学设计:在我看来,自学设计是对“美”的意识的重新唤醒,而这一章正是我在自学设计过程中写下的心得及学习笔记。在本章中,我与读者朋友们分享的不是那些设计中的应用技巧,而是如何尝试去理解设计的本质,希望读者朋友们也能以这种态度去学习设计,你会逐渐获得感知并创造美的能力,而这反过来也会促进你编程能力的提升。
除了以上章节内容之外,我还为此书构建了一个主题网站,取名“技匠社”(jijiangshe.com),读者们(程序员或设计师朋友们)可以在此分享和推荐他们认为有价值的工具、资源和教程。目前,网站已收录了会员们分享的将近500个各类资源,涵盖了从前端、移动、后端、数据库、大数据开发到设计中的色彩、字体、图标、模板等各个方面。希望这个网站也能像它的名字所表达的那样,能够成为技术匠们汇聚的地方,并帮助更多的程序员或设计师获得成长。
写文章对于我来说是一件轻松愉快的事情,我从未感受到写作本身带来的压力,反而是在完成之后,发现会有一些不足之处,而无法给读者带来真正帮助的时候,感到颇为沮丧。但我仍将这些文章收入到这本书里,因为这就是我当前所能达到的思考深度,也是一个匠人经过十几年成长后所形成的完整思想框架。这本书中的一些文章可能让你产生共鸣,一些可能对你有所帮助,而另一些你可能并不喜欢甚至感到厌恶,但这恰恰说明你在阅读的过程中进行了思考,我的想法蹦到了你的脑子里,衍生出你的新想法,这个连锁反应在你脑中反复激荡,最终让你看得更加透彻,思考得更深入,而这才应该是本书的真正目的和意义所在。
这本书能够完成,需要感谢很多人,他们在我写作的过程中给予了我极大的帮助和鼓励。首先,要感谢指导我完成这本书的清华大学出版社编辑,她在目录的修订,封面与排版的设计等方面给了我很多意见。其次,要感谢我的妻子,她时常鼓励我进行写作,也总是我文章的第一个读者。还要感谢我的儿子,由于利用业余时间写作,陪伴他的时间少了很多,但他很懂事,从不在我写作时打扰。此外,我还要特别感谢我的母亲,是她给予了我写作的力量,激励我去做一些更有意义的事情。最后,我想感谢所有我文章的读者,是你们的喜爱促使我不断思考并写出更好的文章,你们的反馈更是我不断修正思想获得提升的来源。
编者