造挖掘机or开挖掘机

造挖掘机or开挖掘机

副标题:读知乎-新手关于如何看编程经典书的一些疑惑?

问题描述

1.《csapp》
2.《sicp》
3.《算法导论》
4.脚踏实地学2+年
小白问题来了:
1.学了这些如何实践到现实的项目中去,小白的意思是,如何应用到现在的Web开发,移动开发,类似做出一个Demo中去,小白太菜,描述不好,囧。
2.很多公司要求参与过什么项目,学了这些能做出什么?
3.这几本书学习的先后顺序?

回答

一、

CS-软件:操作系统、虚拟机、编程语言、软件设计/开发/验证的工具和方法论等。
再说那三本书:操作系统和编程语言,是软件领域中小领域,而算法分析是计算理论中的小领域,这是那三本书在计算机科学中的位置。
整个计算机科学,研究的都是非常底层或基础的东西,与你说的“现实中的产品开发”,基本上是没有关系的。就像机械动力学不是教你开挖掘机的。
实际上,国内大学极少有独立的CS专业,都是加个“与技术”,全称叫“计算机科学与技术”。顾名思义,这就包括计算机科学、计算机技术两部分。你想学的这些,就属于那个“与技术”。你想学的是技术方向,别人推荐的却是科学方向的经典,这个就是你困惑的根本原因。
1、如果我想搞技术,那么学习科学部分还有没有必要?
这不是有没有必要的问题。这两者之间的区别,是追求的目标不同:科学追求尽量深入,探索原理;而技术追求尽量封装,提高效率。而应该选择学习内容的标准,就看它能否显著提高你的生产力。有些技术高度依赖底层细节或原理,造成了效率瓶颈,就应该学。但具体到Web、APP开发,最能提高你生产力的,就是那些前/后端框架和脚本,学完了你马上就能做产品,而不是《计算机程序的构造和解释》什么的。
有些朋友告诉你,你要学挖掘机,一定要先学机械动力学,否则你就没有内功,永远不可能成为挖掘机高手,机械动力学才是真正的知识,只是现在社会太浮躁,没人愿意花时间学。然而,我并没否认机械动力学的价值,它能让你把挖掘机分析得头头是道,甚至设计制造挖掘机。但是,如果你的目标是开挖掘机,那你就不该这样入门,因为这是两回事。
2、我现在应该如何提高技术水平?
学技术的关键思路是两点:一个是模仿,一个是边实践边学。

是计算机的基础学科,学好了基础,迁移技术和往高处爬都很容易。
以学算法为例,第一步完成之后,也就是大致的算法你都知道优劣和实现了,那你以后一辈子的光景,都不必为这些分析啊性能啊最佳数据结构之类的问题发愁困惑。
这个境界,只要把算法导论上的算法看看熟就好了,甚至公式证明习题你都完全可以不看,一点关系都没有。
编程高手的能力无非是对特定问题像语言,算法,平台,库,底层设施等知识的理解程度高以及对设计和思想的透彻理解。

二、

越深入理解,越能掌控全局。预备进BAT或以上级别的牛公司的路子。
做项目看例子可以速成。

我的思考

  1. 深入的学习理论、探索科学以后是造挖掘机的,但现在的项目开发都是开挖掘机的。造挖掘机的固然比开挖掘机的牛逼,要有志气应该学习造挖掘机,选择开挖掘机的是没有志气的行为。但。
  2. 有能力学习造挖掘机吗?人人都想造挖掘机,造出挖掘机的有几个呢?!
  3. 我的方向:我自认为我是没有能力学习造挖掘机的,我只能开挖掘机。

我的最终目标是高效益地开发出程序,那么我关心的是如何高效地开发出程序,原理有多么美、造挖掘机是一件多么美好的令人向往的事都不再是我应该关注的了。

那么如何高效益的开发出程序呢?

这说的是两回事:

  1. 高效率
  2. 高收益

软件是算法到底是什么?

大体上
软件 —— 操作系统、虚拟机、编程语言、软件设计/开发/验证的工具和方法论等。
计算方法 —— 数值计算、符号计算、并行计算、计算机图形学、人工智能、机器学习等。
有些技术高度依赖底层细节或原理,造成了效率瓶颈,就应该学。但具体到Web、APP开发,最能提高你生产力的,就是那些前/后端框架和脚本,学完了你马上就能做产品,而不是《计算机程序的构造和解释》什么的。

就先到这。

你可能感兴趣的:(造挖掘机or开挖掘机)