软件世界: 生存法则(2)


      借力而行。  

     聪明的人意识到, 自己与这个世界息息相关, 只有一起作战, 共同分享分担, 才能战胜重重困难, 收获双赢。


    意识到自己只是世界的一个分子, 并主动积极地去了解外部世界, 是一个根本性的转变。 因为人的思维惯性是自我中心的, 习惯关注自己的问题, 自己的事情, 即便涉及到别人, 别人也只是配角, 就像人们认为地球是宇宙的中心一样。 将这种思维反转一下, 或许会发现更广阔的空间。   


     单纯地练习一百遍, 可能还没有观摩一场高水平比赛来得更有收获; 因为练习可能变成低水平重复劳动, 收效微薄;  而学习高水平的作品, 则使人领悟甚多。 如果学习更有成效的话, 学习和干活的时间, 实际上至少应该是持平的, 也就是说, 干活的时间应该更少一些, 但成效更大;反之,如果学习的时间过少或收获甚微, 干活的时间就会大大加长而且成效很小。学习决定你的未来。 所以古人说, 读万卷书, 行万里路, 下笔如有神, 而没有说, 写一万篇文章, 你就变成作家了。  


        问题一: 工程师做什么?

        工程师的使命就是借助各种实用好用的工具,及自己的才智, 使用程序方式来解决各种现实问题, 或提高工作效率(相比原来的手工方式) , 或者创造新的事物, 给人带来美的享受。

        优秀的工具可使人事半功倍,做最少的事,完成最多的效能; 所以, 工具的重要性不逊于那些高级编程技能的学习;

        如果原来每天花2小时写程序, 可以考虑抽出半小时专门来寻找有益的工具, 提升对常用工具的使用能力。

        

        问题二: 如何追上技术的潮流?

        每分每秒, 有成千上万的人在热情地探索着某个领域, 但只有你一个人在学习和应用, 你怎么可能追上技术的潮流呢? 这是无法胜出的比赛;

        幸运的是, 我们可以借力而行, 使用成千上万的人已经开发出来的各种组件、库来加快自己的开发效能; 

        水流是客观的存在; 你可以选择逆流而上, 奋力击水, 也可以选择顺流而下, 乘顺风而行;

        这就是对学习能力的真正考验了。要能快速学习和识别出那些对自己有用的组件、库和框架,并合理地使用它们。


        问题三: 如何识别有用的组件、库和框架? 

        多关注开源世界, 了解那些主流常用的, 这是最基本的要求; 

        阅读API 文档, 尝试使用; 不要看网络文章, 锻炼自己对API文档的理解能力、学习能力和直觉力; 

        阅读源代码, 领会其中的妙处; 同时搜集优秀的代码以供工作之用; 

        这是必经的历练, 只有跨过这道关, 才能收获强劲的生存能力, —— 学习与适应;


        问题四:  改善者?  变革者?

        如果觉得自己创新的资质比较缺乏,  那就致力于做一个杰出的改善者吧!

        善于借鉴, 改善, 传播, 分享, 影响。


       问题五:  巨大的开源代码库, 开源促进商业

        程序员是注定要拿做软件来吃饭的, 新的软件和应用永不会枯竭, 开源世界不会对商业世界构成威胁,反而有益处;

       我们希望有一个巨大的开源代码库, 能够供我们学习和使用, 以减少开发商业软件的成本; 

       使用开源代码库, 同时也贡献自己的一份力量, 最大的受益者实际上就是我们这些自称“苦逼” 的程序员。   

        

        真正的工程师,  他更善于使用现有组件、库和框架来完成自己的工作;

        但是, —— 不是简单的 Ctrl + c / v ,

        —— 他透彻理解其中的工作机制和原理,  善于改进现有的东西, 创造更优秀的代码、产品和方案;

  

        真正的工程师, 他能够辨别出什么是优秀的风格, 什么是拙劣的做法, 

        这是他能够阅读和改进的基础;

        他改进别人的半成品, 使之更成熟, 从而为自己所用, 省时省力。


        辨别优秀的能力也是通过大量阅读而获得的, 

        囿于自己的见识和视野永远难有长进。


        因此,到最后, 

        真正的工程师, 他更倾向于去积极了解别人的工作,而不是局限于自己的视野;

        读万卷代码, 行万里路, 而后下笔有神。


        多阅读, 多思考, 适量地写;  

        每天 8 个小时的时间, 对于一个创新者来说, 写程序相当足够了;

        Copy 永远不嫌时间多;

        学会全局考虑, 为每一个问题寻找一个优雅地解决方案; 

        更多的时间, 扩展见识; 



       我们为自己所遇到的问题所困扰, 以自己为中心去寻求解决方案, 对别人的工作漠不关心;

       ——  让控制反转一下,  多去关心别人的事情, 或许自己的问题就不攻自破了;


        从初级工程师到高级工程师, 请多了解别人的工作吧, 

        学会协作、 交流、 互动, 而不是埋头独干;

        善于借鉴、 改进、 传播, 而不是一味地写。 



原文地址:https://www.cnblogs.com/javawebsoa/p/3086096.html