The First Post

本文分享了一次关于软件开发思维模式的培训心得,强调了敢于提问、问题简化、全局视角、团队协作等核心理念,并结合贝尔实验室文化及图灵机等经典案例进行解读。

          昨天参加了公司组织的一次据说是“洗脑”的培训课,主讲者是清华大学的一位博士,现在是一名Software Architect,他第一份工作在贝尔实验室。主要讲解的是面向欧美软件开发的思维模式,这位老兄从古至今,旁征博引,侃侃而谈(一口气讲了3小时),阐述了他对软件开发之外或者说是软件开发更高层次的理解,事后也有些启发,闲暇时间做一些整理,加上自己的理解,权当开山之作,以期与大家共勉!

1.一切皆有本源,敢问 多问,敢做。他在谈到他在Bell Labs里的工作经验时,讲到很多UNIX操作系统,编程语言的发展历史(我想很多新手都不会很了解的),谈到了Bell Labs的文化氛围,当时就问了一个问题:为什么D.M.Ritchie把他开发出的系统描述语言取名为C语言,当时大家哑口无言,答案其实很简单:因为Ritchie在推出C语言之前,已经有2个测试版本,取名分别为A语言,B语言,C语言当然就是Release版了,大家顿悟;当时就提到:“问”在一定程度时体现了个人的工作能力和工作态度;

2.善于复杂问题简单化。世界是复杂的,所以生活是复杂的,程序开发不能解决所有问题,就像计算机不能解决所有问题一样。当年图灵在开发出自己的图灵机时,它用非常简单的工作原理诠释了所有的逻辑命题,可以肯定,当今所有计算模型都没有超出图灵的运算范畴,然而,即使是在这样的前提下,图灵机并不能解决现实世界的所有问题,我们软件开发的目标即是:在我们的预设前提下,简化复杂应用,解决或半解决实际问题;

3.计算机不能解决所有问题,善于简化,妥协。生活所有的问题分为两类:Undecidablity和Decidablity,我们能解决Decidablity非常有限,计算机能解决的Decidablity就更是微乎其微,况且,我们现在所用的计算机所能解决的都是Undecidablity,为什么我们还要解决?这是因为:我们在现实的生活中,预设了太多的前提,计算机只能做在这个前提下做的工作,于是我们简化了问题,对Undecidablity做了妥协,这样,软件便应运而生了;但是,你丝毫不能认为你已经解决了问题或者是了解了软件,正如那句话:真理只能永远的接近,却始终不能达到它;

4.把握整个picture,知道自己的位置和发展方向。计算机技术日新月异,发展迅猛,计算机技术领域犹如汪洋大海,我们就如沧海之一粟,来往何方,去归何处,需要认真地定位,恰当的寻找自己的立足点,不要随波逐流,否则,最终也只能望洋兴叹;

5.团队,协作,沟通。这一点我就不用罗嗦了

   O了。

 

转载于:https://www.cnblogs.com/lanshh/archive/2006/05/16/401343.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值