借力而行。
聪明的人意识到, 自己与这个世界息息相关, 只有一起作战, 共同分享分担, 才能战胜重重困难, 收获双赢。
意识到自己只是世界的一个分子, 并主动积极地去了解外部世界, 是一个根本性的转变。 因为人的思维惯性是自我中心的, 习惯关注自己的问题, 自己的事情, 即便涉及到别人, 别人也只是配角, 就像人们认为地球是宇宙的中心一样。 将这种思维反转一下, 或许会发现更广阔的空间。
单纯地练习一百遍, 可能还没有观摩一场高水平比赛来得更有收获; 因为练习可能变成低水平重复劳动, 收效微薄; 而学习高水平的作品, 则使人领悟甚多。 如果学习更有成效的话, 学习和干活的时间, 实际上至少应该是持平的, 也就是说, 干活的时间应该更少一些, 但成效更大;反之,如果学习的时间过少或收获甚微, 干活的时间就会大大加长而且成效很小。学习决定你的未来。 所以古人说, 读万卷书, 行万里路, 下笔如有神, 而没有说, 写一万篇文章, 你就变成作家了。
问题一: 工程师做什么?
工程师的使命就是借助各种实用好用的工具,及自己的才智, 使用程序方式来解决各种现实问题, 或提高工作效率(相比原来的手工方式) , 或者创造新的事物, 给人带来美的享受。
优秀的工具可使人事半功倍,做最少的事,完成最多的效能; 所以, 工具的重要性不逊于那些高级编程技能的学习;
如果原来每天花2小时写程序, 可以考虑抽出半小时专门来寻找有益的工具, 提升对常用工具的使用能力。
问题二: 如何追上技术的潮流?
每分每秒, 有成千上万的人在热情地探索着某个领域, 但只有你一个人在学习和应用, 你怎么可能追上技术的潮流呢? 这是无法胜出的比赛;
幸运的是, 我们可以借力而行, 使用成千上万的人已经开发出来的各种组件、库来加快自己的开发效能;
水流是客观的存在; 你可以选择逆流而上, 奋力击水, 也可以选择顺流而下, 乘顺风而行;
这就是对学习能力的真正考验了。要能快速学习和识别出那些对自己有用的组件、库和框架,并合理地使用它们。
问题三: 如何识别有用的组件、库和框架?
多关注开源世界, 了解那些主流常用的, 这是最基本的要求;
阅读API 文档, 尝试使用; 不要看网络文章, 锻炼自己对API文档的理解能力、学习能力和直觉力;
阅读源代码, 领会其中的妙处; 同时搜集优秀的代码以供工作之用;
这是必经的历练, 只有跨过这道关, 才能收获强劲的生存能力, —— 学习与适应;
问题四: 改善者? 变革者?
如果觉得自己创新的资质比较缺乏, 那就致力于做一个杰出的改善者吧!
善于借鉴, 改善, 传播, 分享, 影响。
问题五: 巨大的开源代码库, 开源促进商业
程序员是注定要拿做软件来吃饭的, 新的软件和应用永不会枯竭, 开源世界不会对商业世界构成威胁,反而有益处;
我们希望有一个巨大的开源代码库, 能够供我们学习和使用, 以减少开发商业软件的成本;
使用开源代码库, 同时也贡献自己的一份力量, 最大的受益者实际上就是我们这些自称“苦逼” 的程序员。
真正的工程师, 他更善于使用现有组件、库和框架来完成自己的工作;
但是, —— 不是简单的 Ctrl + c / v ,
—— 他透彻理解其中的工作机制和原理, 善于改进现有的东西, 创造更优秀的代码、产品和方案;
真正的工程师, 他能够辨别出什么是优秀的风格, 什么是拙劣的做法,
这是他能够阅读和改进的基础;
他改进别人的半成品, 使之更成熟, 从而为自己所用, 省时省力。
辨别优秀的能力也是通过大量阅读而获得的,
囿于自己的见识和视野永远难有长进。
因此,到最后,
真正的工程师, 他更倾向于去积极了解别人的工作,而不是局限于自己的视野;
读万卷代码, 行万里路, 而后下笔有神。
多阅读, 多思考, 适量地写;
每天 8 个小时的时间, 对于一个创新者来说, 写程序相当足够了;
Copy 永远不嫌时间多;
学会全局考虑, 为每一个问题寻找一个优雅地解决方案;
更多的时间, 扩展见识;
我们为自己所遇到的问题所困扰, 以自己为中心去寻求解决方案, 对别人的工作漠不关心;
—— 让控制反转一下, 多去关心别人的事情, 或许自己的问题就不攻自破了;
从初级工程师到高级工程师, 请多了解别人的工作吧,
学会协作、 交流、 互动, 而不是埋头独干;
善于借鉴、 改进、 传播, 而不是一味地写。