为什么我不推荐JavsScript为首选编程语言

对于软件职业生涯,JavsScript不应该是首选

几天前,我写了一篇《what programming language you should learn first for a career in programming》的文章,引来了很多的争论(Google+ 上有很多没有读文章就提交的)。

我的推荐语言队列中的主要因素是我不认为JavaScript是竞争者。我之前没有详细说明这一点,但是许多人很快就提出:A)JavaScript是明智的选择;B)我的疏忽导致。这篇文章我会详细写一下,对于那些想把软件开发做为职业生涯的人,我通常不会推荐首选JavaScript。然后,我再接受你们的评价。

这不是好的起点

...

15个热门编程趋势---15个正在变冷的

程序员喜欢嘲笑流行趋势像微风吹过的时尚界,裙子长度长了短了、彩色来了走了、领带胖了又瘦了。但是,在技术界,严谨、科学、数学和精确牢牢占统治地位。

这并不是说,编程是一个缺乏流行趋势的行业。不同点在于其趋势被更高效率、增加的定制化和易用性驱动着。实现了三者中至少一种的新技术使得旧技术黯然失色。它是知识界的精华,而非奇思妙想。

【译者注:这段多引用了网站的其他文章,且与主旨关联不大,故略去不译】

下面列出了在今天的程序员当中热门的和不热门的技术,不是每个人都认可被列出的A、D、还有被落下的。但是,这正是编程永无止境的迷人之处:快节奏、激烈的争论、突然复出。

很久以前发明新编程语言的人不得不build所有东西,才能将代码转换到进入芯片的位(bit)。然后有人在作业到来之前用搭载来解决。现在人们用更聪明的办法,仅仅写一个预处理程序,借助丰富的类库和API就可以把新代码翻译成以前的。

喜欢动态类型【注1】的人发明了Groovy,一种语法简洁的Java版本。想修复JavaScript的人发明了CoffeeScript,一种让人们写简洁代码的预处理器。有很多像Scala或Clojure的语言运行在JVM上,可是只有一个JVM。为什么重复发现轮子呢?

Hot: JavaScript MV* frameworks

Not: JavaScript files

很早以前,每个学习JavaScript的人是为了弹出一个对话框或者检查表单里的email地址是否包含了@符号。如今HTML Ajax 应用程序太复杂了,以致于人们很少再从头写起。借助一个优秀的框架,写些胶水代码【注2】就可以轻松实现业务逻辑。现在有了大量的框架,像Kendo, Sencha, jQuery Mobile,...

软件执行官给开发者的建议

简介

领导技术团队的乐趣之一是有机会和很多聪明、葆有激情以及具有创新精神的工程师打成一片,我的主要职责是保持他们的精力并转换成尽可能多的富有生产力的方法。

美好的回忆

我待在技术行业也许有37年了,大部分时间在软件上。我看到很多变化,比如代码的开发与管理、团队运作与合作,个体如何评估职业生涯。“我多久才能变成一名架构师?”“这对于当领导意味着什么?”“我怎样才能担任管理角色?”“我需要哪些技能才可进阶到较高位置?”我并不认为,每天某人至少不会暗示其中一个问题。

在微软的那些日子(1987-1998),没人会过多关注职级。我先回忆一下在Uinx Business Unit(是这样的……那时的微软持有的Unix证书拷贝要比其他所有Unix厂商加起来的总和还要多)的第一天。

Unix团队有一大把超级聪明的家伙。开发的高性能内存管理,还有处理器从ring 0切换到ring 1保护【注1】(这还是在非常有限的设备上)都是硬货。没有人想当管理者,做领导是非常酷的,因为除了指导小团队,还意味着他比团队其他人有更高的水平。

开发人员成功的关键特点是永恒不变的,非常肯定的是:技术变化的节奏非常快。除了找到擅长最新编程框架的开发人员,我常常寻找基础扎实、对学习新技术、极端沉迷于解决问题的有浓厚好奇心的人。

在微软时,我看到了桌面操作系统跟随多用户分布式处理系统的崛起。桌面进化成了客户端-服务器端范式,这就需要开发人员有更好的网络概念的基础。

后来,有了因特网和基于web的应用程序的兴起。性能和可伸缩性仍然受到关注,但是集中在技术的不同领域。然后,新的框架和编程语言多了,寻找精通makeup、管理代码等技术的开发人员变得有挑战了。

我们有了来自微软和“开放系统”【注2】新的开发框架,这进一步增加了雇人的挑战。对我而言,当我需要具备这些技能的工程师时,我选择去雇佣聪明、有激情和创新能力的人。我发现这种人能够做任何事情。一个聪明、有激情的开发人员能够快速掌握最新的编程语言;然而,你不能把一个编程语言专家“培训”成有激情和创新能力的人。

最终,我离开了微软,去BMC Softwar和Citrix Systems这样的大公司以及一些非常小的硅谷创业公司工作。那时候我们需要解决较难的问题,比如面向成千上万用户的可缩放UI界面、管理数亿的数据文件或email文件夹/消息,我们就需要招聘深谙架构和严格的编程技巧的开发人员。但是,我招聘的任何开发人员需要聪明、有激情和创新能力。