
首先简单说一下,为什么我会想到这个话题。主要有这么几方面的原因。
当我试图回过头去总结大学在计算机所学习的一些理论和知识的时候。发现,在学校里面学习的一些东西,走了两个极端。 一个极端是偏向了细节。比如我们学习的那些《***程序设计》的课程。看这几门课的名称的我们能够很明显的看出,***是一个形容词定语,用来修饰主题“程序设计”。但是,你却非常意外的意识到《C面向对象程序设计》和面向对象程序设计貌关系不大,整门课程主要讲了一个更好用的C,比C好用的地方是在于人家有对象。学习了这一系列《***程序设计》的课程之后的结果是:你知道了汇编的语法,知道了C的语法,知道了C的语法;但是用他们能做些什么却不知道。 另外一个极端是偏向了宏观。在我们对工程是个什么东西,项目是个什么东西,软件又是个什么东东还没有构建起最基本概念的时候。我们上了《软件工程》这样的课程。劈头盖脸的理论砸下来了,没有消化也没有吸收。你甚至找不到,学这些课程对于你的编程实践有什么样的版主。等你写代码的时候,你真真切切的发现软件工程这个东西对于我这个函数怎么命名,模块怎么划分真的帮助不是很大啊。 其实,随着时间一点点的流逝,工作年限的增加。你能够发现,这两个极端的东西还是有作用的。只不过,学校里面的课程少了一些能够把它们融会贯通,串联起来的东西。而这个中间起到粘连作用的东西就是我所思考的。
还有一个原因。和上面的原因有点类,在编程中接触到的很多同事。或者同样是编程的人。我发现他们的能力参差不齐。而且,有些时候这种能力的参差不齐不止是因为经验造成的。当然,一个有十年多编程经验的人肯定比一个刚刚入门的小孩写的程序靠谱。但是,你会惊奇的发现有些人写了四五年程序后,程序的质量甚至比十几年经验的人要好很多。与他们聊天的时候,就发现导致这种现象的原因在于他们思维方式的不同。有很多十几年编程经验的同事,很多时候只是在用感觉编程。在长期编程时间中形成的某些思维定势帮助他们能够快速的完成编码工作,但是仅限于此。而那些年少却有能力的同事,虽然年轻但是能够编写高质量的代码。因为他们不是通过经验积累获得编码能力;而是通过理论学习,并且快速的消化掌握了和十年多经验同事一样的思维定势。不一样的是,他们还能通过理论触类旁通。写出更高质量的代码。 以前有个同事(他不是干程序员的,而是产品经理),他和其他同龄人最大的不同就是思维方式。他总喜欢干一件事情就是找规律。后来,他想自己做点东西,一时又没有拉到程序员一起干,就自己操刀学习JS。你看他的代码,才一两个月的时间,代码质量和以JS为职业的人已经有的一拼了。每当想到这,我就想:我们还能说对于编程这件事情经验是最重要的吗?
总结一下上面的原因就是,在我们的编程实践中,我们需要找到一种思维框架来帮助我们设计和解释我们的程序。这个东西就是要讨论的程序员思维。
从哪里来,是什么
先讲一个笑话,说是一个外国的哲学家来中国做客。中途去一个小区找一个朋友,然后就发现原来中国的小区保安都是哲学家。他进门的时候,保安问了哲学家三个问题: 你从哪里来? 你是谁? 你到哪里去? 哲学家就感慨这是终极问题啊,自己穷其一生也没能解答,没想到这么个小地方还有人关心哲学的终极问题。其实人家保安就是想搞明白这个“哲学家”嘛。因为你要弄明白一个概念,只要能够回答好这三个问题,基本上就比较OK了。同样我们要弄明白“程序员思维”,也要问三个问题?
程序员思维是什么?
程序员思维从哪里来?
程序员思维到哪里去?
好吧,这是三个终极的问题。没有标准答案,也没有什么不标准的答案。我只是试图给出自己的一个思考的总结。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-37952-1.html
人家十几年前的军舰区域防空能力都远超052D
再来击沉
估计这次小米公关费用花了不少