关于编程与人生的片言只语

程序员的哲学思考
服务器君一共花费了164.938 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

下面的文字,有的来自自己微博上的记录,有的来自散写的文章,但总的来看都是自身这些年来的一些思考。也许对喜欢思考的人有点意思,所以汇总下。但也正因为时间跨度和来源比较杂,就没什么体系性了。 

关于编程

  1. 和世界格局一样,软件开发里也是多维力量(商业、公司政治、技术等)在冲突,单纯地斗争和避让其实都不太行。
  2. 很多时候人们争论是因为都不清楚问题自身。比如:软件工厂可能么?软件和工厂都是巨大且模糊的概念,A或B的理解中又为之注入了各自色彩,所以即使讨论激烈,却可能说的根本不是一个东西。这对脑子转数快的人有利,因为面对面讨论时,事实上他可以随便立论。  
  3. 能否处理模糊的东西是判断力的关键。现代管理里老说用数据说话,就给人一种误解,以为数据是判断的基础,但其实不是。如果一切都可量化,判断就半点价值也没有,猪也能干,恰是因为有些东西无法量化,判断才有价值,人才有差异。软件里问题尤甚。 
  4. 如果说抽象是软件设计的核心,那么抽象不充分则是软件要面对的核心问题,可以说本质上讲OO,设计模式等要解决的首先是抽象不充分。但抽象本身并非毫无代价,比如:抽象充分的同时,概念数目、层次往往会增加,究到底在设计上追求的其实是最佳均衡点。  
  5. 如果说软件是固化的思维,那软件就必然同时具备思维以及思维所承载之物之特质。 思维的特质是指:思维的澄清通常是渐进的,思维自身是不可度量的等等。 思维承载之物之特质是指:当思维的对象是数学的时候,思维就有数学的特质;当思维的对象是商业逻辑的时候,思维就具有商业逻辑的特质。  
  6. 在软件这个江湖里,政治和技术是两个完全不同的维度,最怕的就是政治的问题用技术来解决或者技术的问题用政治来解决,两者十有八九都十分惨烈且结局悲催。  
  7. 一个人从代码里看到什么大致取决于其心境。年青的时候往往只能看到技术,可看着看着,就看到了利益纠葛,人生无奈,世道人心。  
  8. 对方法论而言,不只要描述方法自身,还要描述方法论自身的能力边界---除非你是对立统一这个级别的普遍真理。也许是因为人心狂妄,所以后者大多时候做的不好。 
  9. 在软件开发中,数字含义的模糊性会导致使用数字进行评价包含非常多的不公正,这种不公正会对工作意愿构成致命伤害。所以个人层面的量化管理在软件开发面前,必然崩溃。 
  10. 人和项目特征决定了开发模型,而非反过来需要根据开发模型来调整人员配置等。这是因为在特定时空背景下,调整人和项目特征的可能性小。 
  11. 假如人和项目的变化是连续的,那么无疑绝对的瀑布和迭代之间程度的变化也是连续的。作为结果,最优的开发模型必然既不是绝对的瀑布,也不是绝对的迭代,而是一种具体情境下的选择,可能偏向于瀑布,也可能偏向于迭代。  

关于人生

  1. 比神话像神话的其实是科学,据说宇宙是在那么一个时点突然间就从无到有的,据说人是从微生物一点点变来的,从这个角度看,幻想人长翅膀在天上飞,那是相当的现实了。  
  2. 也许思维是神性的残留,在纯思的世界里更容易认知事物的本质,却也真的冰冷无情。相比之下,也许真的是诗词更有价值,可惜的是就搞这个的