这是一个经验丰富的程序员和新手之间交流的片段:
老程序员:嘿,我听说你在学编程。太酷了,你学的啥?
初学者:我用我Mac上的TextMate(译者注:Mac下的一款文本编辑器)学习PHP和HTML。
老程序员:哎呀呀呀,PHP太差劲了。你应该学习Ruby on Rails,在HeroKu(译者注:一个云平台)上配置,用Vim写代码。TextMate是给菜鸟用的。然后搞搞Node.js,那特别特别棒,非阻塞I/O啊啊啊啊啊啊啊,太酷了。
初学者:额……好吧
每次我看听说这种事我就想骂街。当初学者听到他们瞻仰的人否定其努力,说他们努力学习的东西不像“真正的编程”的时候,会强烈地打击初学者的信心。
如果你是一个程序员,请不要诋毁新手正在学习的东西…除非你确保你会投入大量的时间来确保他们学会你想要他们学的。仅仅是随口讽刺一下他们选择的语言和工具不像你的选择那样酷,这会让他们泄气。
我知道,忍住不去机智地吐槽PHP或是任何现在大家都喜欢黑的语言是很困难的(我忏悔,我曾经也是这种人)。尤其是,因为你打心底清楚,你给他们提供的语言、框架、库、编辑器、主机环境、人体工学键盘、站立式办公桌等等,比菜鸟们正在学习的任何垃圾都要好的多。但是请坚持住。
只要让他们开始学习一些(任何!!!)能吸引住他们编程的东西就行了,随后你可以给他们提供一点帮助。如果他们学的东西真的很糟糕,他们就总是会卡住然后问你是不是有更加容易的途径。这时候,你就可以发泄出你准备好的在函数式编程或hygenic macros或任何其他的论述。
你可能不是唯一一个这样和新手说的程序员。许多程序员(特别是在网络论坛里!)都会有相似的讽刺言论,除非是谈论他们最喜欢的语言/包/框架/文本编辑器/主机环境。噢,现在初学者真的很困惑了。新人们一而再,再而三的被告知自己选的工具有多么的糟,尽管他们可能也能做一些事情。但是更糟的是,每个说教的老手都会推荐不同的工具集让他们学习。到底谁是对的?他们下一步该做什么?关于永无休止的挫折的更多细节,请阅读《一个很有借鉴价值的编程故事》。
好了,关于上面的对话,这里有一个建设性的意见:
老程序员:嘿,我听说你在学编程。太酷了,你学的啥?
初学者:我用我Mac上的TextMate学习PHP和HTML。
老程序员:很不错,当你完成了你的第一个PHP程序后,记得给我看看它有多么的酷!当你更加熟悉基本的web编程以后,我给你看看我最喜欢的框架,Ruby on Rails。我们再来看看它和PHP的异同点。
初学者:谢谢你的鼓励,希望能保持联系。