Aaron Griffin写了一篇精彩的牢骚文章,主要是关于各种框架和它们能把程序员从主要业务编程中抽离出来的功能特征。概括一下他的主要论点,当你成为了一个“Rails程序员”,你使用的是一种易于理解但不通用的东西,它是从易于理解且通用的东西,如HTTP,SQL上抽象出来的一种东西。Rails上的知识是不通用的,如果你转向使用一种新的框架,你只得扔掉你现在的技能。Rails和你的新框架上没有交集的知识。

Aaron的论点有很多可以讨论的,他干的不错,我不想再总结了,你可以自己去阅读一下

但我要谈一个小插曲。在文中,他说:

有太多太多太多的‘开发人员’喜欢愚蠢的把自己标榜为 – “PHP程序员” 或 “Ruby程序员” 或 “C++程序员” – 这毫无意义。编程语言只是一种工具。各自都有各自专长的问题领域。称自己为“C程序员”就像是在说你是个“锤子木匠”,一个只会使用锤子的木匠。我们都知道这听起来有多傻。

我想说的是,“这是在他所有的精彩观点中一个明显不对题,不合适的说法。”我觉得他比喻的问题的级别完全不对等,“C程序员”这个词语所蕴含的知识和经验跟“锤子木匠”所表达的东西完全不在一个重量级上。如果我们要找相同级别的东西,我们可以找到一些跟这个行业工具相关的头衔:起重机操作员,火车司机,数控设备操作员。

但这个问题并不重要。我同意Araon所说的人们把工具和任务混淆了。只做为一个工具专家,而不是任务专家,会使你在工作中有些偏跛。成为一个工具专家会使你在有工具使用时工作效率非常的高,但当你需要离开这个工具环境,或者更糟糕,需要使用其它的环境时,你就显得有些无能为力了。

如果你不懂关系型数据库和SQL(现行的标准语言),当你从ActiveRecord转向LINQ时,你会发现那是相当的痛苦,因为你需要在LINQ和ActiveRecord之间找映射关系,而不是从LINQ和SQL之间找。Aaron这点说的很对。

上面的段落中我认为把”C程序员”的称呼和“锤子木匠”相比较有问题。我还发现了另外一个问题,这个问题使我更接近了Aaron的视角。我不认为编程语言是一种工具,我认为它是思想的记号。如果说我们有什么东西能和木工业做类比,我认为语言是编程建筑中的木材.

C不能比作锤子,C应该是木头。所以,一个C程序员应该是个木匠。你精通所有木工上的技艺并不能表示你的技艺可以通用于处理电线电缆,光线铺设,或铝制品。但对于做各种的木制品工作却是足够胜任的。

用于处理木材的工具就是我们用的IDE。如果你称自己为一个“Eclipse程序员”,在不需要知道它在做自动编译和自动反射,不知道如何使用git或SVN或不知道它的那些插件…的情况下你开发出来程序,那么,你就很像是个锤子木匠了。

我就是这么认为的。感谢Aaron。不错的讨论。

为什么我要称自己为Javascript程序员的更多相关文章

  1. 如何成为一个伟大的 JavaScript 程序员

    这篇文章主要概述在我5年工作经验的基础上,我成为优秀JavaScript开发人员所使用的技术和资源. 当前大多数Web开发人员面临着这样一个共同的问题:他们必须在多个不同的领域领先于他人——从数据库到 ...

  2. 要当好JavaScript程序员:5个debug技巧

    我一直使用printf调试程序,一般来说都是比较顺利,但有时候,你会发现需要更好的方法.下面几个JavaScript技巧相信你一定会觉得十分有用: 1. debugger; 我以前也说过,你可以在Ja ...

  3. JavaScript程序员必备的5个debug技巧

    1. debugger:我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果.需要带有条件的断点吗?你只需要用if语句包围它: if (somethingH ...

  4. 初中级Javascript程序员必修学习目录

    很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持个3个月,你的js层级会提高一个档次,无他,唯 ...

  5. [JavaScript] 初中级Javascript程序员必修学习目录

    很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认 为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持 个3个月,你的js层级会提高一个档次,无他 ...

  6. 每个JavaScript程序员都需要知道的5个数组方法

    Array.forEach() .forEach() 方法能够方便的让你 遍历数组里的每个元素,你可以在回调函数里对每个元素进行操作..forEach()方法没有返回值,你不需要在回调函数里写retu ...

  7. 每个程序员都需要学习 JavaScript 的7个理由

    最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaScript.Web开发人员尤其如此.所以,如果你是一个程序员,那么你应该去学习JavaScript ...

  8. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  9. 新手程序员随笔2——初识html、css和javascript

    翻看博客,发现好久木有发blog了.纠其原因,一则是近来工作上卡到了一个编程难题,我是一个单线程的小猿,当我手头有事情做的时候,我不想分心去做其它事情,如写blog.二则是我个人的写作能力不佳,想到写 ...

随机推荐

  1. android 源码编译中的错误 解决

    1.编译种错误提示: arm-none-linux-gnueabi-gcc: directory: No such file or directory arm-none-linux-gnueabi-g ...

  2. HDU 5833 Zhu and 772002 (高斯消元)

    Zhu and 772002 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5833 Description Zhu and 772002 are b ...

  3. UVALive 7276 Wooden Signs (DP)

    Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...

  4. HDU 5754 Life Winner Bo (博弈)

    Life Winner Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754 Description Bo is a "Life W ...

  5. Linux下常用的shell命令记录

     硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 ...

  6. ajax 源生,jquery封装 例子 相同哈哈

    http://hi.baidu.com/7636553/item/bbcf5fc93c8c950aac092f22 ajax使用回调函数的例子(原生代码和jquery代码) 一. ajax代码存在的问 ...

  7. C#学习笔记(四):委托和事件

    刚开始学习C#的时候就写过了,直接给地址了: 委托.匿名函数.Lambda表达式和事件的学习 委托学习续:Action.Func和Predicate

  8. windbg命令分类与概述

    WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令. =============== 标准命令 =============== 标准命令用 ...

  9. 对iOS中MVC的理解

    总结于斯坦福大学的白头发老头的公开课 模型-控制器-视图(MVC)是一种将应用中给所有类组织起来的策略 模型(Model)实际上考虑的是“什么”的问题,即你的程序是什么? 以纸牌匹配游戏为例子,模型就 ...

  10. Cocos2d-x——CocosBuilder官方帮助文档翻译2 多分辨率支持

    Working with Multiple Resolutions 多分辨率设置 A common scenario when creating apps or games is to target ...