读《黑客与画家》

176 阅读5分钟

这是我参与更文挑战的第1天,活动详情查看: 更文挑战

黑客与画家

这本书告诉我们应该把黑客与画家当作同一种人看待. 和画家一样, 黑客只是怀有一门特殊手艺, 有创造天赋的普通人. 即编程是一种艺术创作, 黑客就是艺术家, 开发软件与画家作画, 雕塑家雕刻, 建筑师设计房屋并没有本质不同. 画家学习绘画的方法是动手去画, 黑客学习编程的方法也应该是动手去写程序. 在实践中学习, 在实践中成长 只有勇于尝试, 我们才能知道怎么做是对的,

坚持与投入

任何一种艺术, 不管是否重要, 如果你想要在该领域出类拔萃, 就必须全身心投入, 在多数人认为, 绘画能力与生俱来, 画家就像高个子一样, 是天生的. 事实上, 大多数"会画"的人, 本身就很喜欢画画, 将许许多多的时间投入其中, 这就是为什么他们擅长画画的原因

在大多数领域, 看上去容易的事情, 背后都需要大量的练习. 练习的作用也是训练你把刻意为之的事情变成一种自觉的行为, 有时, 我们的训练只是为了让身体养成下意识的反应

因此让我想到了一万小时定律: "人们眼中的天才这所以卓越非凡, 并非天资超人一等, 而是付出了持续不断的努力. 一万小时的锤炼是任何人从平凡变成世界大师的必要条件. "

时刻准备着

当我们不能很好的去做一件事情时, 首先想到的不应该是放弃, 而应该去主动思考, 是不是我们投入的时间和精力还不够多, 是不是坚持的时间还不够长, 再多坚持一下, 会不会就能有更好的结果, 实现我们的目标呢?

当我们失败的时候, 不要总是将问题归结于运气不好之类的, 诚然运气也是实力的一部分, 但是当机遇到来的时候, 我们是不是已经做好万全的准备了呢? 如果没有准备好, 就会眼睁睁看着机会从自己身边溜走. 我们要做到的是"时刻准备着"

过早设计和过早优化

不要过早设计, 不要盼望有一个完美的规格设计, 然后动手编程, 这样是不现实的. 如果你预先承认规格设计是不完美的, 在编程的时候, 可以根据需要修改规格, 最终才会有一个更好的结果 不要过早优化, 应该根据用户和市场的反馈进行相应的优化

过早设计和过早优化都会使我们限于项目泥潭, 不可自拔. 项目开发的早期版本要做到精简, 易用, 不追求复杂的设计, 不臆想用户的使用场景和使用习惯, 要根据用户的反馈来修改我们的设计, 迭代我们的产品

语言的战争

如果长期使用某种语言, 就会慢慢按照这种语言的思维模式进行思考. 所以, 后来当遇到其他任何一种有重大差异的语言, 即使那种语言没有任何不对的地方, 也会觉得它极其难用. 缺乏经验的工程师对于各种语言的优缺点的判断经常被这种心态误导. 因此, 我们不要只是局限于自己经常使用的某一种或者几种语言, 要经常去学习和使用其他新的语言, 了解每个语言的特性特点, 分析他们的不同以及该语言所擅长的领域, 扬长避短, 活学活用. 评价一种语言的优劣不同简单的看最后的程序是否表达的很漂亮, 而要看程序从无到有的那条完成路径是否很漂亮

给予自己肯定与怀疑

为了写出优秀软件, 你必须同时具备两种相互冲突的信念. 一方面, 你要像初生牛犊一样, 对自己的能力信心万丈; 另一方面, 你又要像历经沧桑的老人一样, 对自己的能力抱着怀疑态度. 在你的大脑中, 有一个声音说"千难万险只等闲", 还有一个声音说"早岁哪知世事艰". 如果你能平衡好希望和担惊, 它们就会推动项目前进, 就像自行车在保持平衡中前进一样.

设计与研究

设计与研究的区别在于, 前者追求"好(good)", 后者追求"新(new)". 优秀的设计不一定很新, 但必须是好的, 优秀的研究不一定很好, 但必须是新的. 最后这两条道路会发生交叉, 只有应用新的创意和理论, 才会诞生超越前人的最佳设计; 只有解决那些值得解决的难题, 才会诞生最佳研究. 设计和研究通向一个地方, 只是前进的路线不同罢了

给自己的寄语

以学徒的心态, 去追求极致的美, 不要坐井观天, 要去知识的海洋中遨游. 不要在5年或者10年后的今天, 还只是原地踏步! 而如今展现在我们眼前的是星辰大海, 让我们扬帆起航!!!