码农 骇客 程序员 开发者和计算机科学家的区别

一个朋友最近对我说:“我想学习如何编程,那么,我该从哪里学起呢?”

我想学习编程 - 我是去宜家购买呢还是去从种树开始呢

就像一个木匠。在你制作桌子之前,你可以从种树开始,然后等树木长大,伐树,最后制作成桌子,最后把桌子打磨的漂漂亮亮。

修改一个Wordpress模板就如同去宜家购物。你自己写一个Web开发框架,就如同你去先种树一样,因为你不喜欢现有的树木。你必须决定什么是你想要的。从开始成为顾客的家具制造,或者是预定别人的组件。

OK,从哪里开始

很好,当有人开始想学编程时我总是很高兴,在Facebook上有一些建议:

那么,编码员,黑客,程序员,开发者和计算机科学家的区别是什么呢?

你可以认为这些词的意思都一样。也许你还听过Geek,nerd和dweeb,但知道他们的不同还是非常重要的。了解这些不同你就可以清楚地知道你到底所属哪一个层次:

  • 编码员 可以找到问题并解决的人,但解决方案并不完美
  • 黑客 通常是底层专家,技术过硬,曾深入某领域研究,并且非常精通。
  • 程序员 写代码并了解算法,经常独自专注地工作。
  • 开发者 是真正厉害的多面手,熟悉多种系统和语言,可以熟练交叉使用。知识广泛的专业人士,有良好的沟通和团队协作能力。
  • 计算机科学家 知道并了解计算机的工作原理,精通理论层面,数学达人

如果你已经接近其中的一个程次,你可以想想今后应该朝哪个方向迈进。

难道我们在假设如何编程么?

每个人都想过很多种思路的Web编程,这是显而易见的。2013,几乎每个人都在使用互联网。然而,在几年前,我们和朋友坐在一起,在控制台上写出"hello world",或者也许装上VB,创建一个按钮,然后用消息框弹出一个'Hello world'

标记语言?很多人说学习HTML和CSS。但是我不认为这是传统意义上的编程。作为基于Javascript的Web服务,我不认为是一个好的开始。问题不是每一个Web服务都是通过编写HTML在浏览器里打开的。App需要从服务器上取数据,发送通知,文本,邮件和Tweets。几乎所有的应用某种方面需要分布请求。甚至一个简单的应用都需要服务器的支持和数据。

如果你从今天开始想要成为一个程序员,或者我进一步的说,你想成为一个“高效的程序员”,你要明白WEB,要知道当你在浏览器里输入twitter.com,会发生什么。就像你必须了解树木是如何厂长的,作为木匠。如果你想成为一个赛车手,你就必须了解赛车的引擎是如何工作的。哎呀,你要明白的事情简直是太多了,在你想成为一个高效的程序员之前。

WHAT DO WE REALLY MEAN BY "I WANT TO LEARN TO CODE?"

问题中还包括什么问题呢?如何制作一个网站,设计该网站的主题?如何制作一个移动网站,然后让它运行等等,这些都是不一样的idae,我们会有一个比较好的开始,让我们一点点的慢慢来。

翻译的不好,凑合着看吧

原文