近来连续看到这样两个信息,一个是知乎上有个问题叫:如何学习C语言?,这个问题的答案中得票数第二高的是不要最先学习C语言;一个是看到了2012年金旭亮老师写的第一门编程语言选谁?这文章,金老师也是支持不用C做第一门语言的,从投票来看大部分人也比较支持这个观点。 这是比较让我意外的事情,因为我正好持相反的观点。 语言学习的两种道路 我们有两条路来学习编程,一条是厚积薄发,一条则是速成的道路。厚积薄发要一点点打根基,比如学习C语言、学习计算机系统的构造,去看《计算机程序的构造与解释》这类书,去学习算法等,这么走有点吃力不讨好,吭哧半天也还不一定能看到什么结果;速成的就可以先学习IDE,先学习脚本,先学习CSS,JavaScript,这样没多久就可以独立干不少活了,比如创建个漂亮网站什么的。 这种不同道路的选择最终决定了C是不是更适合做第一门语言。走前一条路的显然就适合用C做第一门语言,因为不掌握这种系统级的语言就不太好理解什么是指针,什么Stack,什么是Stack Overflow,什么是写超界,对打基础形成不良影响,也理解不了《深入理解计算机系统》这样的书。走后一条道路的就没关系了,哪个实用学哪个。 想知道适合走哪条道路,请先拷问自己! 初学者到底适合选择哪个方向?首先我们必须承认没有哪种方法是适合所有人的,举个例子来形象地说明这一点:松鼠桂鱼是苏州这边的名菜,但对于不喜欢甜食的人来说,这道菜很糟糕。 因此我不想在技术上展开太多,这更主要是个人成长的现实问题,从怎么做更有利于实现自己的价值(包括现金价值)来探讨可能更有现实意义一点。所以要想回答要不要从C开始,最好先回答下面这样的问题:
上面这类问题的关键在于,如果你一直做程序员而不是做做就干别的去(比如管理、销售等等),那么就要有专业,专业才能更好的创造价值,而专业需要一种高度,高度则需要基础和积累。我们很难讲不学C语言就成不了很专业的高手,但你可以看看身边,很多高手就是打了基础一点点磨练出来。 这么说也许有点抽象,我们来看看具体的故事: 2012年的时候Facebook花10亿美元买下了照片共享应用公司Instagram。这事在当时引起了非常大的轰动。这事之所以引起极大关注,其关键点在于后者只有十几个员工。十几个员工支撑起10亿美元的价值,这绝对是让人震惊的事情。 做个简单的比较就可以知道这个差距有多大。 假设一个公司是做外包的,非常厉害,人月单价有4万RMB。同时这个公司包括支持人员在内有500人,公司里每个人都可以换成收入,那么这个公司一年的收入大概是4000万美元,而Instagram用十几个人达成10亿美元价值只用了差不多2年。两家公司中,单人一年创造价值的比率是差不多500万倍。 这是怎么样的一种杠杆率差异!大家可以想象都是写程序,这两种杠杆率回报上的差异。 这种杠杆率背后隐含了这样一种基本现实:基于很多现有的框架,小而精的团队已经可以通过产品撬动极大的生意,这并不仅局限于Instagram。而为了打造这种小而精的团队,大家在听一些分享时就会发现:很多人都有意愿找ACM上成绩比较好的人,他们认为这类人更有以一当十的可能性等。 从这类现象中我们可以挖掘出来什么东西?
|